{
  "abi": [
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "contractName",
          "type": "bytes32"
        }
      ],
      "name": "getContract",
      "outputs": [
        {
          "internalType": "address",
          "name": "contractAddress",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "instanceService",
          "type": "address"
        }
      ],
      "name": "setInstanceServiceAddress",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "allSourcePaths": {
    "38": "contracts/registry/IInstanceRegistryFacade.sol",
    "62": "contracts/test/MockInstanceRegistry.sol"
  },
  "ast": {
    "absolutePath": "contracts/test/MockInstanceRegistry.sol",
    "exportedSymbols": {
      "IInstanceRegistryFacade": [
        4190
      ],
      "MockInstanceRegistry": [
        10943
      ]
    },
    "id": 10944,
    "license": "Apache-2.0",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 10906,
        "literals": [
          "solidity",
          "^",
          "0.8",
          ".19"
        ],
        "nodeType": "PragmaDirective",
        "src": "39:24:62"
      },
      {
        "absolutePath": "contracts/registry/IInstanceRegistryFacade.sol",
        "file": "../registry/IInstanceRegistryFacade.sol",
        "id": 10908,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 10944,
        "sourceUnit": 4191,
        "src": "65:80:62",
        "symbolAliases": [
          {
            "foreign": {
              "id": 10907,
              "name": "IInstanceRegistryFacade",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 4190,
              "src": "73:23:62",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 10909,
              "name": "IInstanceRegistryFacade",
              "nameLocations": [
                "180:23:62"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 4190,
              "src": "180:23:62"
            },
            "id": 10910,
            "nodeType": "InheritanceSpecifier",
            "src": "180:23:62"
          }
        ],
        "canonicalName": "MockInstanceRegistry",
        "contractDependencies": [],
        "contractKind": "contract",
        "fullyImplemented": true,
        "id": 10943,
        "linearizedBaseContracts": [
          10943,
          4190
        ],
        "name": "MockInstanceRegistry",
        "nameLocation": "156:20:62",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 10912,
            "mutability": "mutable",
            "name": "_instanceService",
            "nameLocation": "227:16:62",
            "nodeType": "VariableDeclaration",
            "scope": 10943,
            "src": "211:32:62",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 10911,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "211:7:62",
              "stateMutability": "nonpayable",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "visibility": "private"
          },
          {
            "body": {
              "id": 10921,
              "nodeType": "Block",
              "src": "319:51:62",
              "statements": [
                {
                  "expression": {
                    "id": 10919,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 10917,
                      "name": "_instanceService",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10912,
                      "src": "329:16:62",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 10918,
                      "name": "instanceService",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10914,
                      "src": "348:15:62",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "329:34:62",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 10920,
                  "nodeType": "ExpressionStatement",
                  "src": "329:34:62"
                }
              ]
            },
            "functionSelector": "e8f4ce0f",
            "id": 10922,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setInstanceServiceAddress",
            "nameLocation": "259:25:62",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10915,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10914,
                  "mutability": "mutable",
                  "name": "instanceService",
                  "nameLocation": "293:15:62",
                  "nodeType": "VariableDeclaration",
                  "scope": 10922,
                  "src": "285:23:62",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 10913,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "285:7:62",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "284:25:62"
            },
            "returnParameters": {
              "id": 10916,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "319:0:62"
            },
            "scope": 10943,
            "src": "250:120:62",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              4189
            ],
            "body": {
              "id": 10941,
              "nodeType": "Block",
              "src": "495:142:62",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 10935,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 10930,
                          "name": "contractName",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10924,
                          "src": "513:12:62",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "arguments": [
                            {
                              "hexValue": "496e7374616e636553657276696365",
                              "id": 10933,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "537:17:62",
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_9d0370d7b33c0a7e946fd67f2013156c598b4d6a70b1490bc73aacf4dc1a6f52",
                                "typeString": "literal_string \"InstanceService\""
                              },
                              "value": "InstanceService"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_stringliteral_9d0370d7b33c0a7e946fd67f2013156c598b4d6a70b1490bc73aacf4dc1a6f52",
                                "typeString": "literal_string \"InstanceService\""
                              }
                            ],
                            "id": 10932,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "529:7:62",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": {
                              "id": 10931,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "529:7:62",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 10934,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "529:26:62",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "513:42:62",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4552524f523a4452472d3030313a434f4e54524143545f4e4f545f52454749535445524544",
                        "id": 10936,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "557:39:62",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_522d00c6fa061f2340d8ba0a3ea3e5e0f731b0f0fac145a91bb23bd528a3eb08",
                          "typeString": "literal_string \"ERROR:DRG-001:CONTRACT_NOT_REGISTERED\""
                        },
                        "value": "ERROR:DRG-001:CONTRACT_NOT_REGISTERED"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_522d00c6fa061f2340d8ba0a3ea3e5e0f731b0f0fac145a91bb23bd528a3eb08",
                          "typeString": "literal_string \"ERROR:DRG-001:CONTRACT_NOT_REGISTERED\""
                        }
                      ],
                      "id": 10929,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "505:7:62",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 10937,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "505:92:62",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10938,
                  "nodeType": "ExpressionStatement",
                  "src": "505:92:62"
                },
                {
                  "expression": {
                    "id": 10939,
                    "name": "_instanceService",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 10912,
                    "src": "614:16:62",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 10928,
                  "id": 10940,
                  "nodeType": "Return",
                  "src": "607:23:62"
                }
              ]
            },
            "functionSelector": "e16c7d98",
            "id": 10942,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getContract",
            "nameLocation": "385:11:62",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10925,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10924,
                  "mutability": "mutable",
                  "name": "contractName",
                  "nameLocation": "405:12:62",
                  "nodeType": "VariableDeclaration",
                  "scope": 10942,
                  "src": "397:20:62",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 10923,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "397:7:62",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "396:22:62"
            },
            "returnParameters": {
              "id": 10928,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10927,
                  "mutability": "mutable",
                  "name": "contractAddress",
                  "nameLocation": "474:15:62",
                  "nodeType": "VariableDeclaration",
                  "scope": 10942,
                  "src": "466:23:62",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 10926,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "466:7:62",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "465:25:62"
            },
            "scope": 10943,
            "src": "376:261:62",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 10944,
        "src": "147:492:62",
        "usedErrors": []
      }
    ],
    "src": "39:601:62"
  },
  "bytecode": "608060405234801561001057600080fd5b506101a1806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063e16c7d981461003b578063e8f4ce0f1461006a575b600080fd5b61004e610049366004610122565b61009c565b6040516001600160a01b03909116815260200160405180910390f35b61009a61007836600461013b565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b005b60006e496e7374616e63655365727669636560881b82146101115760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4452472d3030313a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b606482015260840160405180910390fd5b50506000546001600160a01b031690565b60006020828403121561013457600080fd5b5035919050565b60006020828403121561014d57600080fd5b81356001600160a01b038116811461016457600080fd5b939250505056fea26469706673582212206177c75a5f89c4c198798418d4202a1755336576fef61eb30648e8e35bb96df964736f6c63430008130033",
  "bytecodeSha1": "f5d2982319c59078320f70d1620739e2652a2ea0",
  "compiler": {
    "evm_version": "istanbul",
    "optimizer": {
      "enabled": true,
      "runs": 200
    },
    "version": "0.8.19+commit.7dd6d404"
  },
  "contractName": "MockInstanceRegistry",
  "coverageMap": {
    "branches": {
      "38": {},
      "62": {
        "MockInstanceRegistry.getContract": {
          "3": [
            513,
            555,
            true
          ]
        }
      }
    },
    "statements": {
      "38": {},
      "62": {
        "MockInstanceRegistry.getContract": {
          "1": [
            505,
            597
          ],
          "2": [
            607,
            630
          ]
        },
        "MockInstanceRegistry.setInstanceServiceAddress": {
          "0": [
            329,
            363
          ]
        }
      }
    }
  },
  "dependencies": [
    "IInstanceRegistryFacade"
  ],
  "deployedBytecode": "608060405234801561001057600080fd5b50600436106100365760003560e01c8063e16c7d981461003b578063e8f4ce0f1461006a575b600080fd5b61004e610049366004610122565b61009c565b6040516001600160a01b03909116815260200160405180910390f35b61009a61007836600461013b565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b005b60006e496e7374616e63655365727669636560881b82146101115760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4452472d3030313a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b606482015260840160405180910390fd5b50506000546001600160a01b031690565b60006020828403121561013457600080fd5b5035919050565b60006020828403121561014d57600080fd5b81356001600160a01b038116811461016457600080fd5b939250505056fea26469706673582212206177c75a5f89c4c198798418d4202a1755336576fef61eb30648e8e35bb96df964736f6c63430008130033",
  "deployedSourceMap": "147:492:62:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;376:261;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;363:32:67;;;345:51;;333:2;318:18;376:261:62;;;;;;;250:120;;;;;;:::i;:::-;329:16;:34;;-1:-1:-1;;;;;;329:34:62;-1:-1:-1;;;;;329:34:62;;;;;;;;;;250:120;;;376:261;466:23;-1:-1:-1;;;513:12:62;:42;505:92;;;;-1:-1:-1;;;505:92:62;;900:2:67;505:92:62;;;882:21:67;939:2;919:18;;;912:30;978:34;958:18;;;951:62;-1:-1:-1;;;1029:18:67;;;1022:35;1074:19;;505:92:62;;;;;;;;-1:-1:-1;;614:16:62;;-1:-1:-1;;;;;614:16:62;;376:261::o;14:180:67:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:67;;14:180;-1:-1:-1;14:180:67:o;407:286::-;466:6;519:2;507:9;498:7;494:23;490:32;487:52;;;535:1;532;525:12;487:52;561:23;;-1:-1:-1;;;;;613:31:67;;603:42;;593:70;;659:1;656;649:12;593:70;682:5;407:286;-1:-1:-1;;;407:286:67:o",
  "language": "Solidity",
  "natspec": {
    "kind": "dev",
    "methods": {},
    "version": 1
  },
  "offset": [
    147,
    639
  ],
  "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 0xE16C7D98 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xE8F4CE0F EQ PUSH2 0x6A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x49 CALLDATASIZE PUSH1 0x4 PUSH2 0x122 JUMP JUMPDEST PUSH2 0x9C 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 0x9A PUSH2 0x78 CALLDATASIZE PUSH1 0x4 PUSH2 0x13B JUMP 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 STOP JUMPDEST PUSH1 0x0 PUSH15 0x496E7374616E636553657276696365 PUSH1 0x88 SHL DUP3 EQ PUSH2 0x111 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4452472D3030313A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x134 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x164 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH2 0x77C7 GAS 0x5F DUP10 0xC4 0xC1 SWAP9 PUSH26 0x8418D4202A1755336576FEF61EB30648E8E35BB96DF964736F6C PUSH4 0x43000813 STOP CALLER ",
  "pcMap": {
    "0": {
      "offset": [
        147,
        639
      ],
      "op": "PUSH1",
      "path": "62",
      "value": "0x80"
    },
    "2": {
      "fn": null,
      "offset": [
        147,
        639
      ],
      "op": "PUSH1",
      "path": "62",
      "value": "0x40"
    },
    "4": {
      "fn": null,
      "offset": [
        147,
        639
      ],
      "op": "MSTORE",
      "path": "62"
    },
    "5": {
      "fn": null,
      "offset": [
        147,
        639
      ],
      "op": "CALLVALUE",
      "path": "62"
    },
    "6": {
      "fn": null,
      "offset": [
        147,
        639
      ],
      "op": "DUP1",
      "path": "62"
    },
    "7": {
      "fn": null,
      "offset": [
        147,
        639
      ],
      "op": "ISZERO",
      "path": "62"
    },
    "8": {
      "fn": null,
      "offset": [
        147,
        639
      ],
      "op": "PUSH2",
      "path": "62",
      "value": "0x10"
    },
    "11": {
      "fn": null,
      "offset": [
        147,
        639
      ],
      "op": "JUMPI",
      "path": "62"
    },
    "12": {
      "fn": null,
      "offset": [
        147,
        639
      ],
      "op": "PUSH1",
      "path": "62",
      "value": "0x0"
    },
    "14": {
      "fn": null,
      "offset": [
        147,
        639
      ],
      "op": "DUP1",
      "path": "62"
    },
    "15": {
      "dev": "Cannot send ether to nonpayable function",
      "fn": null,
      "offset": [
        147,
        639
      ],
      "op": "REVERT",
      "path": "62"
    },
    "16": {
      "fn": null,
      "offset": [
        147,
        639
      ],
      "op": "JUMPDEST",
      "path": "62"
    },
    "17": {
      "fn": null,
      "offset": [
        147,
        639
      ],
      "op": "POP",
      "path": "62"
    },
    "18": {
      "fn": null,
      "offset": [
        147,
        639
      ],
      "op": "PUSH1",
      "path": "62",
      "value": "0x4"
    },
    "20": {
      "fn": null,
      "offset": [
        147,
        639
      ],
      "op": "CALLDATASIZE",
      "path": "62"
    },
    "21": {
      "fn": null,
      "offset": [
        147,
        639
      ],
      "op": "LT",
      "path": "62"
    },
    "22": {
      "fn": null,
      "offset": [
        147,
        639
      ],
      "op": "PUSH2",
      "path": "62",
      "value": "0x36"
    },
    "25": {
      "fn": null,
      "offset": [
        147,
        639
      ],
      "op": "JUMPI",
      "path": "62"
    },
    "26": {
      "fn": null,
      "offset": [
        147,
        639
      ],
      "op": "PUSH1",
      "path": "62",
      "value": "0x0"
    },
    "28": {
      "fn": null,
      "offset": [
        147,
        639
      ],
      "op": "CALLDATALOAD",
      "path": "62"
    },
    "29": {
      "fn": null,
      "offset": [
        147,
        639
      ],
      "op": "PUSH1",
      "path": "62",
      "value": "0xE0"
    },
    "31": {
      "fn": null,
      "offset": [
        147,
        639
      ],
      "op": "SHR",
      "path": "62"
    },
    "32": {
      "fn": null,
      "offset": [
        147,
        639
      ],
      "op": "DUP1",
      "path": "62"
    },
    "33": {
      "fn": null,
      "offset": [
        147,
        639
      ],
      "op": "PUSH4",
      "path": "62",
      "value": "0xE16C7D98"
    },
    "38": {
      "fn": null,
      "offset": [
        147,
        639
      ],
      "op": "EQ",
      "path": "62"
    },
    "39": {
      "fn": null,
      "offset": [
        147,
        639
      ],
      "op": "PUSH2",
      "path": "62",
      "value": "0x3B"
    },
    "42": {
      "fn": null,
      "offset": [
        147,
        639
      ],
      "op": "JUMPI",
      "path": "62"
    },
    "43": {
      "fn": null,
      "offset": [
        147,
        639
      ],
      "op": "DUP1",
      "path": "62"
    },
    "44": {
      "fn": null,
      "offset": [
        147,
        639
      ],
      "op": "PUSH4",
      "path": "62",
      "value": "0xE8F4CE0F"
    },
    "49": {
      "fn": null,
      "offset": [
        147,
        639
      ],
      "op": "EQ",
      "path": "62"
    },
    "50": {
      "fn": null,
      "offset": [
        147,
        639
      ],
      "op": "PUSH2",
      "path": "62",
      "value": "0x6A"
    },
    "53": {
      "fn": null,
      "offset": [
        147,
        639
      ],
      "op": "JUMPI",
      "path": "62"
    },
    "54": {
      "fn": null,
      "offset": [
        147,
        639
      ],
      "op": "JUMPDEST",
      "path": "62"
    },
    "55": {
      "fn": null,
      "offset": [
        147,
        639
      ],
      "op": "PUSH1",
      "path": "62",
      "value": "0x0"
    },
    "57": {
      "fn": null,
      "offset": [
        147,
        639
      ],
      "op": "DUP1",
      "path": "62"
    },
    "58": {
      "first_revert": true,
      "fn": null,
      "offset": [
        147,
        639
      ],
      "op": "REVERT",
      "path": "62"
    },
    "59": {
      "fn": "MockInstanceRegistry.getContract",
      "offset": [
        376,
        637
      ],
      "op": "JUMPDEST",
      "path": "62"
    },
    "60": {
      "fn": "MockInstanceRegistry.getContract",
      "offset": [
        376,
        637
      ],
      "op": "PUSH2",
      "path": "62",
      "value": "0x4E"
    },
    "63": {
      "fn": "MockInstanceRegistry.getContract",
      "offset": [
        376,
        637
      ],
      "op": "PUSH2",
      "path": "62",
      "value": "0x49"
    },
    "66": {
      "fn": "MockInstanceRegistry.getContract",
      "offset": [
        376,
        637
      ],
      "op": "CALLDATASIZE",
      "path": "62"
    },
    "67": {
      "fn": "MockInstanceRegistry.getContract",
      "offset": [
        376,
        637
      ],
      "op": "PUSH1",
      "path": "62",
      "value": "0x4"
    },
    "69": {
      "fn": "MockInstanceRegistry.getContract",
      "offset": [
        376,
        637
      ],
      "op": "PUSH2",
      "path": "62",
      "value": "0x122"
    },
    "72": {
      "fn": "MockInstanceRegistry.getContract",
      "jump": "i",
      "offset": [
        376,
        637
      ],
      "op": "JUMP",
      "path": "62"
    },
    "73": {
      "fn": "MockInstanceRegistry.getContract",
      "offset": [
        376,
        637
      ],
      "op": "JUMPDEST",
      "path": "62"
    },
    "74": {
      "fn": "MockInstanceRegistry.getContract",
      "offset": [
        376,
        637
      ],
      "op": "PUSH2",
      "path": "62",
      "value": "0x9C"
    },
    "77": {
      "fn": "MockInstanceRegistry.getContract",
      "jump": "i",
      "offset": [
        376,
        637
      ],
      "op": "JUMP",
      "path": "62"
    },
    "78": {
      "fn": "MockInstanceRegistry.getContract",
      "offset": [
        376,
        637
      ],
      "op": "JUMPDEST",
      "path": "62"
    },
    "79": {
      "fn": "MockInstanceRegistry.getContract",
      "offset": [
        376,
        637
      ],
      "op": "PUSH1",
      "path": "62",
      "value": "0x40"
    },
    "81": {
      "fn": "MockInstanceRegistry.getContract",
      "offset": [
        376,
        637
      ],
      "op": "MLOAD",
      "path": "62"
    },
    "82": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "84": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "86": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "88": {
      "op": "SHL"
    },
    "89": {
      "op": "SUB"
    },
    "90": {
      "op": "SWAP1"
    },
    "91": {
      "op": "SWAP2"
    },
    "92": {
      "op": "AND"
    },
    "93": {
      "op": "DUP2"
    },
    "94": {
      "op": "MSTORE"
    },
    "95": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "97": {
      "op": "ADD"
    },
    "98": {
      "fn": "MockInstanceRegistry.getContract",
      "offset": [
        376,
        637
      ],
      "op": "PUSH1",
      "path": "62",
      "value": "0x40"
    },
    "100": {
      "fn": "MockInstanceRegistry.getContract",
      "offset": [
        376,
        637
      ],
      "op": "MLOAD",
      "path": "62"
    },
    "101": {
      "fn": "MockInstanceRegistry.getContract",
      "offset": [
        376,
        637
      ],
      "op": "DUP1",
      "path": "62"
    },
    "102": {
      "fn": "MockInstanceRegistry.getContract",
      "offset": [
        376,
        637
      ],
      "op": "SWAP2",
      "path": "62"
    },
    "103": {
      "fn": "MockInstanceRegistry.getContract",
      "offset": [
        376,
        637
      ],
      "op": "SUB",
      "path": "62"
    },
    "104": {
      "fn": "MockInstanceRegistry.getContract",
      "offset": [
        376,
        637
      ],
      "op": "SWAP1",
      "path": "62"
    },
    "105": {
      "fn": "MockInstanceRegistry.getContract",
      "offset": [
        376,
        637
      ],
      "op": "RETURN",
      "path": "62"
    },
    "106": {
      "fn": "MockInstanceRegistry.setInstanceServiceAddress",
      "offset": [
        250,
        370
      ],
      "op": "JUMPDEST",
      "path": "62"
    },
    "107": {
      "fn": "MockInstanceRegistry.setInstanceServiceAddress",
      "offset": [
        250,
        370
      ],
      "op": "PUSH2",
      "path": "62",
      "value": "0x9A"
    },
    "110": {
      "fn": "MockInstanceRegistry.setInstanceServiceAddress",
      "offset": [
        250,
        370
      ],
      "op": "PUSH2",
      "path": "62",
      "value": "0x78"
    },
    "113": {
      "fn": "MockInstanceRegistry.setInstanceServiceAddress",
      "offset": [
        250,
        370
      ],
      "op": "CALLDATASIZE",
      "path": "62"
    },
    "114": {
      "fn": "MockInstanceRegistry.setInstanceServiceAddress",
      "offset": [
        250,
        370
      ],
      "op": "PUSH1",
      "path": "62",
      "value": "0x4"
    },
    "116": {
      "fn": "MockInstanceRegistry.setInstanceServiceAddress",
      "offset": [
        250,
        370
      ],
      "op": "PUSH2",
      "path": "62",
      "value": "0x13B"
    },
    "119": {
      "fn": "MockInstanceRegistry.setInstanceServiceAddress",
      "jump": "i",
      "offset": [
        250,
        370
      ],
      "op": "JUMP",
      "path": "62"
    },
    "120": {
      "fn": "MockInstanceRegistry.setInstanceServiceAddress",
      "offset": [
        250,
        370
      ],
      "op": "JUMPDEST",
      "path": "62"
    },
    "121": {
      "fn": "MockInstanceRegistry.setInstanceServiceAddress",
      "offset": [
        329,
        345
      ],
      "op": "PUSH1",
      "path": "62",
      "statement": 0,
      "value": "0x0"
    },
    "123": {
      "fn": "MockInstanceRegistry.setInstanceServiceAddress",
      "offset": [
        329,
        363
      ],
      "op": "DUP1",
      "path": "62"
    },
    "124": {
      "fn": "MockInstanceRegistry.setInstanceServiceAddress",
      "offset": [
        329,
        363
      ],
      "op": "SLOAD",
      "path": "62"
    },
    "125": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "127": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "129": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "131": {
      "op": "SHL"
    },
    "132": {
      "op": "SUB"
    },
    "133": {
      "op": "NOT"
    },
    "134": {
      "fn": "MockInstanceRegistry.setInstanceServiceAddress",
      "offset": [
        329,
        363
      ],
      "op": "AND",
      "path": "62"
    },
    "135": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "137": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "139": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "141": {
      "op": "SHL"
    },
    "142": {
      "op": "SUB"
    },
    "143": {
      "fn": "MockInstanceRegistry.setInstanceServiceAddress",
      "offset": [
        329,
        363
      ],
      "op": "SWAP3",
      "path": "62"
    },
    "144": {
      "fn": "MockInstanceRegistry.setInstanceServiceAddress",
      "offset": [
        329,
        363
      ],
      "op": "SWAP1",
      "path": "62"
    },
    "145": {
      "fn": "MockInstanceRegistry.setInstanceServiceAddress",
      "offset": [
        329,
        363
      ],
      "op": "SWAP3",
      "path": "62"
    },
    "146": {
      "fn": "MockInstanceRegistry.setInstanceServiceAddress",
      "offset": [
        329,
        363
      ],
      "op": "AND",
      "path": "62"
    },
    "147": {
      "fn": "MockInstanceRegistry.setInstanceServiceAddress",
      "offset": [
        329,
        363
      ],
      "op": "SWAP2",
      "path": "62"
    },
    "148": {
      "fn": "MockInstanceRegistry.setInstanceServiceAddress",
      "offset": [
        329,
        363
      ],
      "op": "SWAP1",
      "path": "62"
    },
    "149": {
      "fn": "MockInstanceRegistry.setInstanceServiceAddress",
      "offset": [
        329,
        363
      ],
      "op": "SWAP2",
      "path": "62"
    },
    "150": {
      "fn": "MockInstanceRegistry.setInstanceServiceAddress",
      "offset": [
        329,
        363
      ],
      "op": "OR",
      "path": "62"
    },
    "151": {
      "fn": "MockInstanceRegistry.setInstanceServiceAddress",
      "offset": [
        329,
        363
      ],
      "op": "SWAP1",
      "path": "62"
    },
    "152": {
      "fn": "MockInstanceRegistry.setInstanceServiceAddress",
      "offset": [
        329,
        363
      ],
      "op": "SSTORE",
      "path": "62"
    },
    "153": {
      "fn": "MockInstanceRegistry.setInstanceServiceAddress",
      "offset": [
        250,
        370
      ],
      "op": "JUMP",
      "path": "62"
    },
    "154": {
      "fn": "MockInstanceRegistry.setInstanceServiceAddress",
      "offset": [
        250,
        370
      ],
      "op": "JUMPDEST",
      "path": "62"
    },
    "155": {
      "fn": "MockInstanceRegistry.setInstanceServiceAddress",
      "offset": [
        250,
        370
      ],
      "op": "STOP",
      "path": "62"
    },
    "156": {
      "fn": "MockInstanceRegistry.getContract",
      "offset": [
        376,
        637
      ],
      "op": "JUMPDEST",
      "path": "62"
    },
    "157": {
      "fn": "MockInstanceRegistry.getContract",
      "offset": [
        466,
        489
      ],
      "op": "PUSH1",
      "path": "62",
      "value": "0x0"
    },
    "159": {
      "op": "PUSH15",
      "value": "0x496E7374616E636553657276696365"
    },
    "175": {
      "op": "PUSH1",
      "value": "0x88"
    },
    "177": {
      "op": "SHL"
    },
    "178": {
      "fn": "MockInstanceRegistry.getContract",
      "offset": [
        513,
        525
      ],
      "op": "DUP3",
      "path": "62",
      "statement": 1
    },
    "179": {
      "branch": 3,
      "fn": "MockInstanceRegistry.getContract",
      "offset": [
        513,
        555
      ],
      "op": "EQ",
      "path": "62"
    },
    "180": {
      "fn": "MockInstanceRegistry.getContract",
      "offset": [
        505,
        597
      ],
      "op": "PUSH2",
      "path": "62",
      "value": "0x111"
    },
    "183": {
      "branch": 3,
      "fn": "MockInstanceRegistry.getContract",
      "offset": [
        505,
        597
      ],
      "op": "JUMPI",
      "path": "62"
    },
    "184": {
      "fn": "MockInstanceRegistry.getContract",
      "offset": [
        505,
        597
      ],
      "op": "PUSH1",
      "path": "62",
      "value": "0x40"
    },
    "186": {
      "fn": "MockInstanceRegistry.getContract",
      "offset": [
        505,
        597
      ],
      "op": "MLOAD",
      "path": "62"
    },
    "187": {
      "op": "PUSH3",
      "value": "0x461BCD"
    },
    "191": {
      "op": "PUSH1",
      "value": "0xE5"
    },
    "193": {
      "op": "SHL"
    },
    "194": {
      "fn": "MockInstanceRegistry.getContract",
      "offset": [
        505,
        597
      ],
      "op": "DUP2",
      "path": "62"
    },
    "195": {
      "fn": "MockInstanceRegistry.getContract",
      "offset": [
        505,
        597
      ],
      "op": "MSTORE",
      "path": "62"
    },
    "196": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "198": {
      "fn": "MockInstanceRegistry.getContract",
      "offset": [
        505,
        597
      ],
      "op": "PUSH1",
      "path": "62",
      "value": "0x4"
    },
    "200": {
      "fn": "MockInstanceRegistry.getContract",
      "offset": [
        505,
        597
      ],
      "op": "DUP3",
      "path": "62"
    },
    "201": {
      "fn": "MockInstanceRegistry.getContract",
      "offset": [
        505,
        597
      ],
      "op": "ADD",
      "path": "62"
    },
    "202": {
      "op": "MSTORE"
    },
    "203": {
      "op": "PUSH1",
      "value": "0x25"
    },
    "205": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "207": {
      "op": "DUP3"
    },
    "208": {
      "op": "ADD"
    },
    "209": {
      "op": "MSTORE"
    },
    "210": {
      "op": "PUSH32",
      "value": "0x4552524F523A4452472D3030313A434F4E54524143545F4E4F545F5245474953"
    },
    "243": {
      "op": "PUSH1",
      "value": "0x44"
    },
    "245": {
      "op": "DUP3"
    },
    "246": {
      "op": "ADD"
    },
    "247": {
      "op": "MSTORE"
    },
    "248": {
      "op": "PUSH5",
      "value": "0x1511549151"
    },
    "254": {
      "op": "PUSH1",
      "value": "0xDA"
    },
    "256": {
      "op": "SHL"
    },
    "257": {
      "op": "PUSH1",
      "value": "0x64"
    },
    "259": {
      "op": "DUP3"
    },
    "260": {
      "op": "ADD"
    },
    "261": {
      "op": "MSTORE"
    },
    "262": {
      "op": "PUSH1",
      "value": "0x84"
    },
    "264": {
      "op": "ADD"
    },
    "265": {
      "fn": "MockInstanceRegistry.getContract",
      "offset": [
        505,
        597
      ],
      "op": "PUSH1",
      "path": "62",
      "value": "0x40"
    },
    "267": {
      "fn": "MockInstanceRegistry.getContract",
      "offset": [
        505,
        597
      ],
      "op": "MLOAD",
      "path": "62"
    },
    "268": {
      "fn": "MockInstanceRegistry.getContract",
      "offset": [
        505,
        597
      ],
      "op": "DUP1",
      "path": "62"
    },
    "269": {
      "fn": "MockInstanceRegistry.getContract",
      "offset": [
        505,
        597
      ],
      "op": "SWAP2",
      "path": "62"
    },
    "270": {
      "fn": "MockInstanceRegistry.getContract",
      "offset": [
        505,
        597
      ],
      "op": "SUB",
      "path": "62"
    },
    "271": {
      "fn": "MockInstanceRegistry.getContract",
      "offset": [
        505,
        597
      ],
      "op": "SWAP1",
      "path": "62"
    },
    "272": {
      "fn": "MockInstanceRegistry.getContract",
      "offset": [
        505,
        597
      ],
      "op": "REVERT",
      "optimizer_revert": true,
      "path": "62"
    },
    "273": {
      "fn": "MockInstanceRegistry.getContract",
      "offset": [
        505,
        597
      ],
      "op": "JUMPDEST",
      "path": "62"
    },
    "274": {
      "op": "POP"
    },
    "275": {
      "op": "POP"
    },
    "276": {
      "fn": "MockInstanceRegistry.getContract",
      "offset": [
        614,
        630
      ],
      "op": "PUSH1",
      "path": "62",
      "statement": 2,
      "value": "0x0"
    },
    "278": {
      "fn": "MockInstanceRegistry.getContract",
      "offset": [
        614,
        630
      ],
      "op": "SLOAD",
      "path": "62"
    },
    "279": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "281": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "283": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "285": {
      "op": "SHL"
    },
    "286": {
      "op": "SUB"
    },
    "287": {
      "fn": "MockInstanceRegistry.getContract",
      "offset": [
        614,
        630
      ],
      "op": "AND",
      "path": "62"
    },
    "288": {
      "fn": "MockInstanceRegistry.getContract",
      "offset": [
        614,
        630
      ],
      "op": "SWAP1",
      "path": "62"
    },
    "289": {
      "fn": "MockInstanceRegistry.getContract",
      "jump": "o",
      "offset": [
        376,
        637
      ],
      "op": "JUMP",
      "path": "62"
    },
    "290": {
      "op": "JUMPDEST"
    },
    "291": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "293": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "295": {
      "op": "DUP3"
    },
    "296": {
      "op": "DUP5"
    },
    "297": {
      "op": "SUB"
    },
    "298": {
      "op": "SLT"
    },
    "299": {
      "op": "ISZERO"
    },
    "300": {
      "op": "PUSH2",
      "value": "0x134"
    },
    "303": {
      "op": "JUMPI"
    },
    "304": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "306": {
      "op": "DUP1"
    },
    "307": {
      "op": "REVERT"
    },
    "308": {
      "op": "JUMPDEST"
    },
    "309": {
      "op": "POP"
    },
    "310": {
      "op": "CALLDATALOAD"
    },
    "311": {
      "op": "SWAP2"
    },
    "312": {
      "op": "SWAP1"
    },
    "313": {
      "op": "POP"
    },
    "314": {
      "jump": "o",
      "op": "JUMP"
    },
    "315": {
      "op": "JUMPDEST"
    },
    "316": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "318": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "320": {
      "op": "DUP3"
    },
    "321": {
      "op": "DUP5"
    },
    "322": {
      "op": "SUB"
    },
    "323": {
      "op": "SLT"
    },
    "324": {
      "op": "ISZERO"
    },
    "325": {
      "op": "PUSH2",
      "value": "0x14D"
    },
    "328": {
      "op": "JUMPI"
    },
    "329": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "331": {
      "op": "DUP1"
    },
    "332": {
      "op": "REVERT"
    },
    "333": {
      "op": "JUMPDEST"
    },
    "334": {
      "op": "DUP2"
    },
    "335": {
      "op": "CALLDATALOAD"
    },
    "336": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "338": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "340": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "342": {
      "op": "SHL"
    },
    "343": {
      "op": "SUB"
    },
    "344": {
      "op": "DUP2"
    },
    "345": {
      "op": "AND"
    },
    "346": {
      "op": "DUP2"
    },
    "347": {
      "op": "EQ"
    },
    "348": {
      "op": "PUSH2",
      "value": "0x164"
    },
    "351": {
      "op": "JUMPI"
    },
    "352": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "354": {
      "op": "DUP1"
    },
    "355": {
      "op": "REVERT"
    },
    "356": {
      "op": "JUMPDEST"
    },
    "357": {
      "op": "SWAP4"
    },
    "358": {
      "op": "SWAP3"
    },
    "359": {
      "op": "POP"
    },
    "360": {
      "op": "POP"
    },
    "361": {
      "op": "POP"
    },
    "362": {
      "jump": "o",
      "op": "JUMP"
    }
  },
  "sha1": "c9e88971c0ab556474768d301be741591cfd6bf2",
  "source": "// SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.8.19;\n\nimport {IInstanceRegistryFacade} from \"../registry/IInstanceRegistryFacade.sol\";\n\ncontract MockInstanceRegistry is IInstanceRegistryFacade {\n\n    address private _instanceService;\n\n    function setInstanceServiceAddress(address instanceService) external {\n        _instanceService = instanceService;\n    }\n\n    function getContract(bytes32 contractName)\n        external\n        view\n        returns (address contractAddress)\n    {\n        require(contractName == bytes32(\"InstanceService\"), \"ERROR:DRG-001:CONTRACT_NOT_REGISTERED\");\n        return _instanceService;\n    }\n}\n",
  "sourceMap": "147:492:62:-:0;;;;;;;;;;;;;;;;;;;",
  "sourcePath": "contracts/test/MockInstanceRegistry.sol",
  "type": "contract"
}