{"diffoscope-json-version": 1, "source1": "/input1", "source2": "/input2", "unified_diff": null, "details": [{"source1": "zipinfo {}", "source2": "zipinfo {}", "unified_diff": "@@ -1,10 +1,10 @@\n-Zip file size: 185603 bytes, number of entries: 177\n+Zip file size: 186720 bytes, number of entries: 177\n drwxr-xr-x  2.0 unx        0 b- stor 24-Jan-19 14:51 META-INF/\n--rw-r--r--  2.0 unx       82 b- defN 24-Jan-19 14:51 META-INF/MANIFEST.MF\n+-rw-r--r--  2.0 unx       81 b- defN 24-Jan-19 14:51 META-INF/MANIFEST.MF\n drwxr-xr-x  2.0 unx        0 b- stor 24-Jan-19 14:51 META-INF/services/\n drwxr-xr-x  2.0 unx        0 b- stor 24-Jan-19 14:51 dev/\n drwxr-xr-x  2.0 unx        0 b- stor 24-Jan-19 14:51 dev/langchain4j/\n drwxr-xr-x  2.0 unx        0 b- stor 24-Jan-19 14:51 dev/langchain4j/agent/\n drwxr-xr-x  2.0 unx        0 b- stor 24-Jan-19 14:51 dev/langchain4j/agent/tool/\n drwxr-xr-x  2.0 unx        0 b- stor 24-Jan-19 14:51 dev/langchain4j/classification/\n drwxr-xr-x  2.0 unx        0 b- stor 24-Jan-19 14:51 dev/langchain4j/data/\n@@ -41,30 +41,30 @@\n drwxr-xr-x  2.0 unx        0 b- stor 24-Jan-19 14:51 dev/langchain4j/store/memory/\n drwxr-xr-x  2.0 unx        0 b- stor 24-Jan-19 14:51 dev/langchain4j/store/memory/chat/\n drwxr-xr-x  2.0 unx        0 b- stor 24-Jan-19 14:51 META-INF/maven/\n drwxr-xr-x  2.0 unx        0 b- stor 24-Jan-19 14:51 META-INF/maven/dev.langchain4j/\n drwxr-xr-x  2.0 unx        0 b- stor 24-Jan-19 14:51 META-INF/maven/dev.langchain4j/langchain4j-core/\n -rw-r--r--  2.0 unx       82 b- defN 24-Jan-19 14:51 META-INF/services/dev.langchain4j.spi.ExampleService\n -rw-r--r--  2.0 unx       39 b- defN 24-Jan-19 14:51 META-INF/services/dev.langchain4j.spi.SupplierService\n--rw-r--r--  2.0 unx     1273 b- defN 24-Jan-19 14:51 dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest.class\n--rw-r--r--  2.0 unx     6167 b- defN 24-Jan-19 14:51 dev/langchain4j/agent/tool/JsonSchemaPropertyTest.class\n+-rw-r--r--  2.0 unx     1332 b- defN 24-Jan-19 14:51 dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest.class\n+-rw-r--r--  2.0 unx     6158 b- defN 24-Jan-19 14:51 dev/langchain4j/agent/tool/JsonSchemaPropertyTest.class\n -rw-r--r--  2.0 unx     2507 b- defN 24-Jan-19 14:51 dev/langchain4j/agent/tool/ToolExecutionRequestTest.class\n -rw-r--r--  2.0 unx     2198 b- defN 24-Jan-19 14:51 dev/langchain4j/agent/tool/ToolExecutionRequestUtilTest.class\n -rw-r--r--  2.0 unx     3090 b- defN 24-Jan-19 14:51 dev/langchain4j/agent/tool/ToolParametersTest.class\n -rw-r--r--  2.0 unx     5097 b- defN 24-Jan-19 14:51 dev/langchain4j/agent/tool/ToolSpecificationTest.class\n--rw-r--r--  2.0 unx     1258 b- defN 24-Jan-19 14:51 dev/langchain4j/agent/tool/ToolSpecificationsTest$E.class\n+-rw-r--r--  2.0 unx     1317 b- defN 24-Jan-19 14:51 dev/langchain4j/agent/tool/ToolSpecificationsTest$E.class\n -rw-r--r--  2.0 unx     2721 b- defN 24-Jan-19 14:51 dev/langchain4j/agent/tool/ToolSpecificationsTest$Wrapper.class\n--rw-r--r--  2.0 unx     9413 b- defN 24-Jan-19 14:51 dev/langchain4j/agent/tool/ToolSpecificationsTest.class\n--rw-r--r--  2.0 unx     1682 b- defN 24-Jan-19 14:51 dev/langchain4j/classification/TextClassifierTest$CatClassifier.class\n--rw-r--r--  2.0 unx     1324 b- defN 24-Jan-19 14:51 dev/langchain4j/classification/TextClassifierTest$Categories.class\n+-rw-r--r--  2.0 unx     9418 b- defN 24-Jan-19 14:51 dev/langchain4j/agent/tool/ToolSpecificationsTest.class\n+-rw-r--r--  2.0 unx     1679 b- defN 24-Jan-19 14:51 dev/langchain4j/classification/TextClassifierTest$CatClassifier.class\n+-rw-r--r--  2.0 unx     1383 b- defN 24-Jan-19 14:51 dev/langchain4j/classification/TextClassifierTest$Categories.class\n -rw-r--r--  2.0 unx     1754 b- defN 24-Jan-19 14:51 dev/langchain4j/classification/TextClassifierTest.class\n--rw-r--r--  2.0 unx     1075 b- defN 24-Jan-19 14:51 dev/langchain4j/data/document/DocumentLoaderTest$1.class\n+-rw-r--r--  2.0 unx     1066 b- defN 24-Jan-19 14:51 dev/langchain4j/data/document/DocumentLoaderTest$1.class\n -rw-r--r--  2.0 unx     1178 b- defN 24-Jan-19 14:51 dev/langchain4j/data/document/DocumentLoaderTest$StringSource.class\n--rw-r--r--  2.0 unx     1356 b- defN 24-Jan-19 14:51 dev/langchain4j/data/document/DocumentLoaderTest$TrivialParser.class\n--rw-r--r--  2.0 unx     5190 b- defN 24-Jan-19 14:51 dev/langchain4j/data/document/DocumentLoaderTest.class\n+-rw-r--r--  2.0 unx     1350 b- defN 24-Jan-19 14:51 dev/langchain4j/data/document/DocumentLoaderTest$TrivialParser.class\n+-rw-r--r--  2.0 unx     5046 b- defN 24-Jan-19 14:51 dev/langchain4j/data/document/DocumentLoaderTest.class\n -rw-r--r--  2.0 unx     2966 b- defN 24-Jan-19 14:51 dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter.class\n -rw-r--r--  2.0 unx     1991 b- defN 24-Jan-19 14:51 dev/langchain4j/data/document/DocumentSplitterTest.class\n -rw-r--r--  2.0 unx     3689 b- defN 24-Jan-19 14:51 dev/langchain4j/data/document/DocumentTest.class\n -rw-r--r--  2.0 unx     2808 b- defN 24-Jan-19 14:51 dev/langchain4j/data/document/DocumentTransformerTest.class\n -rw-r--r--  2.0 unx     3966 b- defN 24-Jan-19 14:51 dev/langchain4j/data/document/MetadataTest.class\n -rw-r--r--  2.0 unx     2927 b- defN 24-Jan-19 14:51 dev/langchain4j/data/embedding/EmbeddingTest.class\n -rw-r--r--  2.0 unx     3239 b- defN 24-Jan-19 14:51 dev/langchain4j/data/image/ImageTest.class\n@@ -72,42 +72,42 @@\n -rw-r--r--  2.0 unx     6592 b- defN 24-Jan-19 14:51 dev/langchain4j/data/message/ChatMessageSerializerTest.class\n -rw-r--r--  2.0 unx     1231 b- defN 24-Jan-19 14:51 dev/langchain4j/data/message/ChatMessageTypeTest.class\n -rw-r--r--  2.0 unx     4936 b- defN 24-Jan-19 14:51 dev/langchain4j/data/message/ImageContentTest.class\n -rw-r--r--  2.0 unx     2245 b- defN 24-Jan-19 14:51 dev/langchain4j/data/message/SystemMessageTest.class\n -rw-r--r--  2.0 unx     3381 b- defN 24-Jan-19 14:51 dev/langchain4j/data/message/ToolExecutionResultMessageTest.class\n -rw-r--r--  2.0 unx     6692 b- defN 24-Jan-19 14:51 dev/langchain4j/data/message/UserMessageTest.class\n -rw-r--r--  2.0 unx     4470 b- defN 24-Jan-19 14:51 dev/langchain4j/data/segment/TextSegmentTest.class\n--rw-r--r--  2.0 unx     1309 b- defN 24-Jan-19 14:51 dev/langchain4j/data/segment/TextSegmentTransformerTest$LowercaseFnordTransformer.class\n+-rw-r--r--  2.0 unx     1306 b- defN 24-Jan-19 14:51 dev/langchain4j/data/segment/TextSegmentTransformerTest$LowercaseFnordTransformer.class\n -rw-r--r--  2.0 unx     2226 b- defN 24-Jan-19 14:51 dev/langchain4j/data/segment/TextSegmentTransformerTest.class\n -rw-r--r--  2.0 unx     1351 b- defN 24-Jan-19 14:51 dev/langchain4j/internal/ExceptionsTest.class\n -rw-r--r--  2.0 unx      722 b- defN 24-Jan-19 14:51 dev/langchain4j/internal/GsonJsonCodecTest$1.class\n--rw-r--r--  2.0 unx      975 b- defN 24-Jan-19 14:51 dev/langchain4j/internal/GsonJsonCodecTest$DateExample.class\n--rw-r--r--  2.0 unx      857 b- defN 24-Jan-19 14:51 dev/langchain4j/internal/GsonJsonCodecTest$Example.class\n--rw-r--r--  2.0 unx     6044 b- defN 24-Jan-19 14:51 dev/langchain4j/internal/GsonJsonCodecTest.class\n+-rw-r--r--  2.0 unx      972 b- defN 24-Jan-19 14:51 dev/langchain4j/internal/GsonJsonCodecTest$DateExample.class\n+-rw-r--r--  2.0 unx      854 b- defN 24-Jan-19 14:51 dev/langchain4j/internal/GsonJsonCodecTest$Example.class\n+-rw-r--r--  2.0 unx     5932 b- defN 24-Jan-19 14:51 dev/langchain4j/internal/GsonJsonCodecTest.class\n -rw-r--r--  2.0 unx      222 b- defN 24-Jan-19 14:51 dev/langchain4j/internal/JsonTest$1.class\n -rw-r--r--  2.0 unx     1567 b- defN 24-Jan-19 14:51 dev/langchain4j/internal/JsonTest$TestData.class\n -rw-r--r--  2.0 unx      687 b- defN 24-Jan-19 14:51 dev/langchain4j/internal/JsonTest$TestObject.class\n--rw-r--r--  2.0 unx     4228 b- defN 24-Jan-19 14:51 dev/langchain4j/internal/JsonTest.class\n--rw-r--r--  2.0 unx     5792 b- defN 24-Jan-19 14:51 dev/langchain4j/internal/RetryUtilsTest.class\n--rw-r--r--  2.0 unx     9684 b- defN 24-Jan-19 14:51 dev/langchain4j/internal/UtilsTest.class\n--rw-r--r--  2.0 unx    10130 b- defN 24-Jan-19 14:51 dev/langchain4j/internal/ValidationUtilsTest.class\n--rw-r--r--  2.0 unx     2655 b- defN 24-Jan-19 14:51 dev/langchain4j/model/ExampleTestTokenizer.class\n+-rw-r--r--  2.0 unx     4092 b- defN 24-Jan-19 14:51 dev/langchain4j/internal/JsonTest.class\n+-rw-r--r--  2.0 unx     5804 b- defN 24-Jan-19 14:51 dev/langchain4j/internal/RetryUtilsTest.class\n+-rw-r--r--  2.0 unx     9682 b- defN 24-Jan-19 14:51 dev/langchain4j/internal/UtilsTest.class\n+-rw-r--r--  2.0 unx    10127 b- defN 24-Jan-19 14:51 dev/langchain4j/internal/ValidationUtilsTest.class\n+-rw-r--r--  2.0 unx     2652 b- defN 24-Jan-19 14:51 dev/langchain4j/model/ExampleTestTokenizer.class\n -rw-r--r--  2.0 unx     1144 b- defN 24-Jan-19 14:51 dev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler.class\n -rw-r--r--  2.0 unx     1143 b- defN 24-Jan-19 14:51 dev/langchain4j/model/StreamingResponseHandlerTest.class\n -rw-r--r--  2.0 unx      753 b- defN 24-Jan-19 14:51 dev/langchain4j/model/TokenizerTest$ExampleTools.class\n -rw-r--r--  2.0 unx     2340 b- defN 24-Jan-19 14:51 dev/langchain4j/model/TokenizerTest.class\n -rw-r--r--  2.0 unx     1566 b- defN 24-Jan-19 14:51 dev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel.class\n -rw-r--r--  2.0 unx     5045 b- defN 24-Jan-19 14:51 dev/langchain4j/model/chat/ChatLanguageModelTest.class\n -rw-r--r--  2.0 unx     1874 b- defN 24-Jan-19 14:51 dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler.class\n -rw-r--r--  2.0 unx     2127 b- defN 24-Jan-19 14:51 dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel.class\n -rw-r--r--  2.0 unx     5884 b- defN 24-Jan-19 14:51 dev/langchain4j/model/chat/StreamingChatLanguageModelTest.class\n--rw-r--r--  2.0 unx     2609 b- defN 24-Jan-19 14:51 dev/langchain4j/model/chat/TestStreamingResponseHandler.class\n+-rw-r--r--  2.0 unx     2606 b- defN 24-Jan-19 14:51 dev/langchain4j/model/chat/TestStreamingResponseHandler.class\n -rw-r--r--  2.0 unx     2082 b- defN 24-Jan-19 14:51 dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator.class\n -rw-r--r--  2.0 unx     1991 b- defN 24-Jan-19 14:51 dev/langchain4j/model/chat/TokenCountEstimatorTest.class\n--rw-r--r--  2.0 unx     2792 b- defN 24-Jan-19 14:51 dev/langchain4j/model/chat/mock/ChatModelMock.class\n+-rw-r--r--  2.0 unx     2786 b- defN 24-Jan-19 14:51 dev/langchain4j/model/chat/mock/ChatModelMock.class\n -rw-r--r--  2.0 unx     1344 b- defN 24-Jan-19 14:51 dev/langchain4j/model/embedding/EmbeddingModelTest$BrokenEmbeddingModelImpl.class\n -rw-r--r--  2.0 unx     3378 b- defN 24-Jan-19 14:51 dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl.class\n -rw-r--r--  2.0 unx     3982 b- defN 24-Jan-19 14:51 dev/langchain4j/model/embedding/EmbeddingModelTest.class\n -rw-r--r--  2.0 unx      854 b- defN 24-Jan-19 14:51 dev/langchain4j/model/embedding/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator.class\n -rw-r--r--  2.0 unx     1675 b- defN 24-Jan-19 14:51 dev/langchain4j/model/embedding/TokenCountEstimatorTest.class\n -rw-r--r--  2.0 unx     1041 b- defN 24-Jan-19 14:51 dev/langchain4j/model/image/ImageModelTest$FixedImageModel.class\n -rw-r--r--  2.0 unx     4317 b- defN 24-Jan-19 14:51 dev/langchain4j/model/image/ImageModelTest.class\n@@ -155,25 +155,25 @@\n -rw-r--r--  2.0 unx      899 b- defN 24-Jan-19 14:51 dev/langchain4j/retriever/RetrieverTest$TestRetriever.class\n -rw-r--r--  2.0 unx     3931 b- defN 24-Jan-19 14:51 dev/langchain4j/retriever/RetrieverTest.class\n -rw-r--r--  2.0 unx      174 b- defN 24-Jan-19 14:51 dev/langchain4j/spi/ExampleService.class\n -rw-r--r--  2.0 unx      479 b- defN 24-Jan-19 14:51 dev/langchain4j/spi/ExampleServiceGoodbye.class\n -rw-r--r--  2.0 unx      471 b- defN 24-Jan-19 14:51 dev/langchain4j/spi/ExampleServiceHello.class\n -rw-r--r--  2.0 unx      684 b- defN 24-Jan-19 14:51 dev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders.class\n -rw-r--r--  2.0 unx      296 b- defN 24-Jan-19 14:51 dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders.class\n--rw-r--r--  2.0 unx     5102 b- defN 24-Jan-19 14:51 dev/langchain4j/spi/ServiceHelperTest.class\n+-rw-r--r--  2.0 unx     5104 b- defN 24-Jan-19 14:51 dev/langchain4j/spi/ServiceHelperTest.class\n -rw-r--r--  2.0 unx      256 b- defN 24-Jan-19 14:51 dev/langchain4j/spi/SupplierService.class\n -rw-r--r--  2.0 unx      565 b- defN 24-Jan-19 14:51 dev/langchain4j/spi/SupplierServiceImpl.class\n -rw-r--r--  2.0 unx      272 b- defN 24-Jan-19 14:51 dev/langchain4j/spi/SupplierServiceNotFound.class\n -rw-r--r--  2.0 unx     1604 b- defN 24-Jan-19 14:51 dev/langchain4j/spi/prompt/PromptTemplateFactoryTest.class\n -rw-r--r--  2.0 unx     3474 b- defN 24-Jan-19 14:51 dev/langchain4j/store/embedding/CosineSimilarityTest.class\n -rw-r--r--  2.0 unx     2957 b- defN 24-Jan-19 14:51 dev/langchain4j/store/embedding/EmbeddingMatchTest.class\n--rw-r--r--  2.0 unx     3775 b- defN 24-Jan-19 14:51 dev/langchain4j/store/embedding/EmbeddingStoreIT.class\n+-rw-r--r--  2.0 unx     3778 b- defN 24-Jan-19 14:51 dev/langchain4j/store/embedding/EmbeddingStoreIT.class\n -rw-r--r--  2.0 unx     6448 b- defN 24-Jan-19 14:51 dev/langchain4j/store/embedding/EmbeddingStoreIngestorTest.class\n -rw-r--r--  2.0 unx     1878 b- defN 24-Jan-19 14:51 dev/langchain4j/store/embedding/EmbeddingStoreTest$MemoryIdEmbeddingStore.class\n -rw-r--r--  2.0 unx     3183 b- defN 24-Jan-19 14:51 dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore.class\n -rw-r--r--  2.0 unx     3655 b- defN 24-Jan-19 14:51 dev/langchain4j/store/embedding/EmbeddingStoreTest.class\n--rw-r--r--  2.0 unx     8265 b- defN 24-Jan-19 14:51 dev/langchain4j/store/embedding/EmbeddingStoreWithoutMetadataIT.class\n+-rw-r--r--  2.0 unx     8286 b- defN 24-Jan-19 14:51 dev/langchain4j/store/embedding/EmbeddingStoreWithoutMetadataIT.class\n -rw-r--r--  2.0 unx      867 b- defN 24-Jan-19 14:51 dev/langchain4j/store/embedding/RelevanceScoreTest.class\n -rw-r--r--  2.0 unx     1554 b- defN 24-Jan-19 14:51 dev/langchain4j/store/memory/chat/InMemoryChatMemoryStoreTest.class\n -rw-r--r--  2.0 unx     7181 b- defN 24-Jan-19 14:51 META-INF/maven/dev.langchain4j/langchain4j-core/pom.xml\n -rw-r--r--  2.0 unx       67 b- defN 24-Jan-19 14:51 META-INF/maven/dev.langchain4j/langchain4j-core/pom.properties\n-177 files, 389007 bytes uncompressed, 153397 bytes compressed:  60.6%\n+177 files, 388781 bytes uncompressed, 154514 bytes compressed:  60.3%\n"}, {"source1": "zipdetails --redact --scan --utc {}", "source2": "zipdetails --redact --scan --utc {}", "unified_diff": "@@ -21,17 +21,17 @@\n 0002B Extract Zip Spec      14 (20) '2.0'\n 0002C Extract OS            00 (0) 'MS-DOS'\n 0002D General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n 0002F Compression Method    0008 (8) 'Deflated'\n 00031 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-00035 CRC                   81310700 (2167473920)\n+00035 CRC                   F6680B5C (4134013788)\n 00039 Compressed Size       00000050 (80)\n-0003D Uncompressed Size     00000052 (82)\n+0003D Uncompressed Size     00000051 (81)\n 00041 Filename Length       0014 (20)\n 00043 Extra Length          0000 (0)\n 00045 Filename              'XXXXXXXXXXXXXXXXXXXX'\n #\n # WARNING: Offset 0x45: Filename 'XXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n@@ -837,7985 +837,7985 @@\n 00B3C Extract Zip Spec      14 (20) '2.0'\n 00B3D Extract OS            00 (0) 'MS-DOS'\n 00B3E General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n 00B40 Compression Method    0008 (8) 'Deflated'\n 00B42 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-00B46 CRC                   BF90882F (3213920303)\n-00B4A Compressed Size       0000023E (574)\n-00B4E Uncompressed Size     000004F9 (1273)\n+00B46 CRC                   6502A609 (1694672393)\n+00B4A Compressed Size       00000257 (599)\n+00B4E Uncompressed Size     00000534 (1332)\n 00B52 Filename Length       0040 (64)\n 00B54 Extra Length          0000 (0)\n 00B56 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n # WARNING: Offset 0xB56: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n 00B96 PAYLOAD\n \n-00DD4 LOCAL HEADER #48      04034B50 (67324752)\n-00DD8 Extract Zip Spec      14 (20) '2.0'\n-00DD9 Extract OS            00 (0) 'MS-DOS'\n-00DDA General Purpose Flag  0800 (2048)\n+00DED LOCAL HEADER #48      04034B50 (67324752)\n+00DF1 Extract Zip Spec      14 (20) '2.0'\n+00DF2 Extract OS            00 (0) 'MS-DOS'\n+00DF3 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-00DDC Compression Method    0008 (8) 'Deflated'\n-00DDE Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-00DE2 CRC                   2B935A46 (731077190)\n-00DE6 Compressed Size       000009BF (2495)\n-00DEA Uncompressed Size     00001817 (6167)\n-00DEE Filename Length       0037 (55)\n-00DF0 Extra Length          0000 (0)\n-00DF2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+00DF5 Compression Method    0008 (8) 'Deflated'\n+00DF7 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+00DFB CRC                   E0919879 (3767638137)\n+00DFF Compressed Size       000009C0 (2496)\n+00E03 Uncompressed Size     0000180E (6158)\n+00E07 Filename Length       0037 (55)\n+00E09 Extra Length          0000 (0)\n+00E0B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xDF2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xE0B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-00E29 PAYLOAD\n+00E42 PAYLOAD\n \n-017E8 LOCAL HEADER #49      04034B50 (67324752)\n-017EC Extract Zip Spec      14 (20) '2.0'\n-017ED Extract OS            00 (0) 'MS-DOS'\n-017EE General Purpose Flag  0800 (2048)\n+01802 LOCAL HEADER #49      04034B50 (67324752)\n+01806 Extract Zip Spec      14 (20) '2.0'\n+01807 Extract OS            00 (0) 'MS-DOS'\n+01808 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-017F0 Compression Method    0008 (8) 'Deflated'\n-017F2 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-017F6 CRC                   CE3C4212 (3460055570)\n-017FA Compressed Size       00000473 (1139)\n-017FE Uncompressed Size     000009CB (2507)\n-01802 Filename Length       0039 (57)\n-01804 Extra Length          0000 (0)\n-01806 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0180A Compression Method    0008 (8) 'Deflated'\n+0180C Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+01810 CRC                   00472512 (4662546)\n+01814 Compressed Size       00000477 (1143)\n+01818 Uncompressed Size     000009CB (2507)\n+0181C Filename Length       0039 (57)\n+0181E Extra Length          0000 (0)\n+01820 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1806: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1820: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0183F PAYLOAD\n+01859 PAYLOAD\n \n-01CB2 LOCAL HEADER #50      04034B50 (67324752)\n-01CB6 Extract Zip Spec      14 (20) '2.0'\n-01CB7 Extract OS            00 (0) 'MS-DOS'\n-01CB8 General Purpose Flag  0800 (2048)\n+01CD0 LOCAL HEADER #50      04034B50 (67324752)\n+01CD4 Extract Zip Spec      14 (20) '2.0'\n+01CD5 Extract OS            00 (0) 'MS-DOS'\n+01CD6 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-01CBA Compression Method    0008 (8) 'Deflated'\n-01CBC Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-01CC0 CRC                   057A8D92 (91917714)\n-01CC4 Compressed Size       000003A0 (928)\n-01CC8 Uncompressed Size     00000896 (2198)\n-01CCC Filename Length       003D (61)\n-01CCE Extra Length          0000 (0)\n-01CD0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+01CD8 Compression Method    0008 (8) 'Deflated'\n+01CDA Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+01CDE CRC                   D61222D3 (3591512787)\n+01CE2 Compressed Size       000003A7 (935)\n+01CE6 Uncompressed Size     00000896 (2198)\n+01CEA Filename Length       003D (61)\n+01CEC Extra Length          0000 (0)\n+01CEE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1CD0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1CEE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-01D0D PAYLOAD\n+01D2B PAYLOAD\n \n-020AD LOCAL HEADER #51      04034B50 (67324752)\n-020B1 Extract Zip Spec      14 (20) '2.0'\n-020B2 Extract OS            00 (0) 'MS-DOS'\n-020B3 General Purpose Flag  0800 (2048)\n+020D2 LOCAL HEADER #51      04034B50 (67324752)\n+020D6 Extract Zip Spec      14 (20) '2.0'\n+020D7 Extract OS            00 (0) 'MS-DOS'\n+020D8 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-020B5 Compression Method    0008 (8) 'Deflated'\n-020B7 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-020BB CRC                   CA0A38E7 (3389667559)\n-020BF Compressed Size       00000542 (1346)\n-020C3 Uncompressed Size     00000C12 (3090)\n-020C7 Filename Length       0033 (51)\n-020C9 Extra Length          0000 (0)\n-020CB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+020DA Compression Method    0008 (8) 'Deflated'\n+020DC Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+020E0 CRC                   C83E33B8 (3359519672)\n+020E4 Compressed Size       00000553 (1363)\n+020E8 Uncompressed Size     00000C12 (3090)\n+020EC Filename Length       0033 (51)\n+020EE Extra Length          0000 (0)\n+020F0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x20CB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20F0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-020FE PAYLOAD\n+02123 PAYLOAD\n \n-02640 LOCAL HEADER #52      04034B50 (67324752)\n-02644 Extract Zip Spec      14 (20) '2.0'\n-02645 Extract OS            00 (0) 'MS-DOS'\n-02646 General Purpose Flag  0800 (2048)\n+02676 LOCAL HEADER #52      04034B50 (67324752)\n+0267A Extract Zip Spec      14 (20) '2.0'\n+0267B Extract OS            00 (0) 'MS-DOS'\n+0267C General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-02648 Compression Method    0008 (8) 'Deflated'\n-0264A Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-0264E CRC                   846255CA (2221037002)\n-02652 Compressed Size       000007EC (2028)\n-02656 Uncompressed Size     000013E9 (5097)\n-0265A Filename Length       0036 (54)\n-0265C Extra Length          0000 (0)\n-0265E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0267E Compression Method    0008 (8) 'Deflated'\n+02680 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+02684 CRC                   743D90B3 (1950191795)\n+02688 Compressed Size       00000810 (2064)\n+0268C Uncompressed Size     000013E9 (5097)\n+02690 Filename Length       0036 (54)\n+02692 Extra Length          0000 (0)\n+02694 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x265E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2694: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-02694 PAYLOAD\n+026CA PAYLOAD\n \n-02E80 LOCAL HEADER #53      04034B50 (67324752)\n-02E84 Extract Zip Spec      14 (20) '2.0'\n-02E85 Extract OS            00 (0) 'MS-DOS'\n-02E86 General Purpose Flag  0800 (2048)\n+02EDA LOCAL HEADER #53      04034B50 (67324752)\n+02EDE Extract Zip Spec      14 (20) '2.0'\n+02EDF Extract OS            00 (0) 'MS-DOS'\n+02EE0 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-02E88 Compression Method    0008 (8) 'Deflated'\n-02E8A Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-02E8E CRC                   60EF8975 (1626311029)\n-02E92 Compressed Size       0000024D (589)\n-02E96 Uncompressed Size     000004EA (1258)\n-02E9A Filename Length       0039 (57)\n-02E9C Extra Length          0000 (0)\n-02E9E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+02EE2 Compression Method    0008 (8) 'Deflated'\n+02EE4 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+02EE8 CRC                   330D4B66 (856509286)\n+02EEC Compressed Size       00000267 (615)\n+02EF0 Uncompressed Size     00000525 (1317)\n+02EF4 Filename Length       0039 (57)\n+02EF6 Extra Length          0000 (0)\n+02EF8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2E9E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2EF8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-02ED7 PAYLOAD\n+02F31 PAYLOAD\n \n-03124 LOCAL HEADER #54      04034B50 (67324752)\n-03128 Extract Zip Spec      14 (20) '2.0'\n-03129 Extract OS            00 (0) 'MS-DOS'\n-0312A General Purpose Flag  0800 (2048)\n+03198 LOCAL HEADER #54      04034B50 (67324752)\n+0319C Extract Zip Spec      14 (20) '2.0'\n+0319D Extract OS            00 (0) 'MS-DOS'\n+0319E General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0312C Compression Method    0008 (8) 'Deflated'\n-0312E Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-03132 CRC                   A9DEB6E6 (2849945318)\n-03136 Compressed Size       000003E5 (997)\n-0313A Uncompressed Size     00000AA1 (2721)\n-0313E Filename Length       003F (63)\n-03140 Extra Length          0000 (0)\n-03142 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+031A0 Compression Method    0008 (8) 'Deflated'\n+031A2 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+031A6 CRC                   AA8A4829 (2861189161)\n+031AA Compressed Size       000003E3 (995)\n+031AE Uncompressed Size     00000AA1 (2721)\n+031B2 Filename Length       003F (63)\n+031B4 Extra Length          0000 (0)\n+031B6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x3142: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x31B6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-03181 PAYLOAD\n+031F5 PAYLOAD\n \n-03566 LOCAL HEADER #55      04034B50 (67324752)\n-0356A Extract Zip Spec      14 (20) '2.0'\n-0356B Extract OS            00 (0) 'MS-DOS'\n-0356C General Purpose Flag  0800 (2048)\n+035D8 LOCAL HEADER #55      04034B50 (67324752)\n+035DC Extract Zip Spec      14 (20) '2.0'\n+035DD Extract OS            00 (0) 'MS-DOS'\n+035DE General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0356E Compression Method    0008 (8) 'Deflated'\n-03570 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-03574 CRC                   7023D1A9 (1881395625)\n-03578 Compressed Size       00000EDC (3804)\n-0357C Uncompressed Size     000024C5 (9413)\n-03580 Filename Length       0037 (55)\n-03582 Extra Length          0000 (0)\n-03584 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+035E0 Compression Method    0008 (8) 'Deflated'\n+035E2 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+035E6 CRC                   6D595579 (1834571129)\n+035EA Compressed Size       00000EFC (3836)\n+035EE Uncompressed Size     000024CA (9418)\n+035F2 Filename Length       0037 (55)\n+035F4 Extra Length          0000 (0)\n+035F6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x3584: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x35F6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-035BB PAYLOAD\n+0362D PAYLOAD\n \n-04497 LOCAL HEADER #56      04034B50 (67324752)\n-0449B Extract Zip Spec      14 (20) '2.0'\n-0449C Extract OS            00 (0) 'MS-DOS'\n-0449D General Purpose Flag  0800 (2048)\n+04529 LOCAL HEADER #56      04034B50 (67324752)\n+0452D Extract Zip Spec      14 (20) '2.0'\n+0452E Extract OS            00 (0) 'MS-DOS'\n+0452F General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0449F Compression Method    0008 (8) 'Deflated'\n-044A1 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-044A5 CRC                   27E382EF (669221615)\n-044A9 Compressed Size       000002CE (718)\n-044AD Uncompressed Size     00000692 (1682)\n-044B1 Filename Length       0045 (69)\n-044B3 Extra Length          0000 (0)\n-044B5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+04531 Compression Method    0008 (8) 'Deflated'\n+04533 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+04537 CRC                   7F56624E (2136367694)\n+0453B Compressed Size       000002CF (719)\n+0453F Uncompressed Size     0000068F (1679)\n+04543 Filename Length       0045 (69)\n+04545 Extra Length          0000 (0)\n+04547 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x44B5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x4547: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-044FA PAYLOAD\n+0458C PAYLOAD\n \n-047C8 LOCAL HEADER #57      04034B50 (67324752)\n-047CC Extract Zip Spec      14 (20) '2.0'\n-047CD Extract OS            00 (0) 'MS-DOS'\n-047CE General Purpose Flag  0800 (2048)\n+0485B LOCAL HEADER #57      04034B50 (67324752)\n+0485F Extract Zip Spec      14 (20) '2.0'\n+04860 Extract OS            00 (0) 'MS-DOS'\n+04861 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-047D0 Compression Method    0008 (8) 'Deflated'\n-047D2 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-047D6 CRC                   4A264766 (1244022630)\n-047DA Compressed Size       00000257 (599)\n-047DE Uncompressed Size     0000052C (1324)\n-047E2 Filename Length       0042 (66)\n-047E4 Extra Length          0000 (0)\n-047E6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+04863 Compression Method    0008 (8) 'Deflated'\n+04865 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+04869 CRC                   06D3E6D4 (114550484)\n+0486D Compressed Size       0000026F (623)\n+04871 Uncompressed Size     00000567 (1383)\n+04875 Filename Length       0042 (66)\n+04877 Extra Length          0000 (0)\n+04879 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x47E6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x4879: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-04828 PAYLOAD\n+048BB PAYLOAD\n \n-04A7F LOCAL HEADER #58      04034B50 (67324752)\n-04A83 Extract Zip Spec      14 (20) '2.0'\n-04A84 Extract OS            00 (0) 'MS-DOS'\n-04A85 General Purpose Flag  0800 (2048)\n+04B2A LOCAL HEADER #58      04034B50 (67324752)\n+04B2E Extract Zip Spec      14 (20) '2.0'\n+04B2F Extract OS            00 (0) 'MS-DOS'\n+04B30 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-04A87 Compression Method    0008 (8) 'Deflated'\n-04A89 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-04A8D CRC                   03008853 (50366547)\n-04A91 Compressed Size       000002F3 (755)\n-04A95 Uncompressed Size     000006DA (1754)\n-04A99 Filename Length       0037 (55)\n-04A9B Extra Length          0000 (0)\n-04A9D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+04B32 Compression Method    0008 (8) 'Deflated'\n+04B34 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+04B38 CRC                   8B6E7B6E (2339273582)\n+04B3C Compressed Size       000002F7 (759)\n+04B40 Uncompressed Size     000006DA (1754)\n+04B44 Filename Length       0037 (55)\n+04B46 Extra Length          0000 (0)\n+04B48 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x4A9D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x4B48: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-04AD4 PAYLOAD\n+04B7F PAYLOAD\n \n-04DC7 LOCAL HEADER #59      04034B50 (67324752)\n-04DCB Extract Zip Spec      14 (20) '2.0'\n-04DCC Extract OS            00 (0) 'MS-DOS'\n-04DCD General Purpose Flag  0800 (2048)\n+04E76 LOCAL HEADER #59      04034B50 (67324752)\n+04E7A Extract Zip Spec      14 (20) '2.0'\n+04E7B Extract OS            00 (0) 'MS-DOS'\n+04E7C General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-04DCF Compression Method    0008 (8) 'Deflated'\n-04DD1 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-04DD5 CRC                   E30F75DE (3809441246)\n-04DD9 Compressed Size       0000020A (522)\n-04DDD Uncompressed Size     00000433 (1075)\n-04DE1 Filename Length       0038 (56)\n-04DE3 Extra Length          0000 (0)\n-04DE5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+04E7E Compression Method    0008 (8) 'Deflated'\n+04E80 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+04E84 CRC                   3669465B (912868955)\n+04E88 Compressed Size       00000209 (521)\n+04E8C Uncompressed Size     0000042A (1066)\n+04E90 Filename Length       0038 (56)\n+04E92 Extra Length          0000 (0)\n+04E94 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x4DE5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x4E94: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-04E1D PAYLOAD\n+04ECC PAYLOAD\n \n-05027 LOCAL HEADER #60      04034B50 (67324752)\n-0502B Extract Zip Spec      14 (20) '2.0'\n-0502C Extract OS            00 (0) 'MS-DOS'\n-0502D General Purpose Flag  0800 (2048)\n+050D5 LOCAL HEADER #60      04034B50 (67324752)\n+050D9 Extract Zip Spec      14 (20) '2.0'\n+050DA Extract OS            00 (0) 'MS-DOS'\n+050DB General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0502F Compression Method    0008 (8) 'Deflated'\n-05031 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-05035 CRC                   74C75A24 (1959221796)\n-05039 Compressed Size       00000233 (563)\n-0503D Uncompressed Size     0000049A (1178)\n-05041 Filename Length       0043 (67)\n-05043 Extra Length          0000 (0)\n-05045 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+050DD Compression Method    0008 (8) 'Deflated'\n+050DF Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+050E3 CRC                   7D90A409 (2106631177)\n+050E7 Compressed Size       0000023C (572)\n+050EB Uncompressed Size     0000049A (1178)\n+050EF Filename Length       0043 (67)\n+050F1 Extra Length          0000 (0)\n+050F3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x5045: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x50F3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-05088 PAYLOAD\n+05136 PAYLOAD\n \n-052BB LOCAL HEADER #61      04034B50 (67324752)\n-052BF Extract Zip Spec      14 (20) '2.0'\n-052C0 Extract OS            00 (0) 'MS-DOS'\n-052C1 General Purpose Flag  0800 (2048)\n+05372 LOCAL HEADER #61      04034B50 (67324752)\n+05376 Extract Zip Spec      14 (20) '2.0'\n+05377 Extract OS            00 (0) 'MS-DOS'\n+05378 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-052C3 Compression Method    0008 (8) 'Deflated'\n-052C5 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-052C9 CRC                   5A0F0092 (1510932626)\n-052CD Compressed Size       00000297 (663)\n-052D1 Uncompressed Size     0000054C (1356)\n-052D5 Filename Length       0044 (68)\n-052D7 Extra Length          0000 (0)\n-052D9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0537A Compression Method    0008 (8) 'Deflated'\n+0537C Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+05380 CRC                   0E9F3A5C (245316188)\n+05384 Compressed Size       0000029B (667)\n+05388 Uncompressed Size     00000546 (1350)\n+0538C Filename Length       0044 (68)\n+0538E Extra Length          0000 (0)\n+05390 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x52D9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x5390: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0531D PAYLOAD\n+053D4 PAYLOAD\n \n-055B4 LOCAL HEADER #62      04034B50 (67324752)\n-055B8 Extract Zip Spec      14 (20) '2.0'\n-055B9 Extract OS            00 (0) 'MS-DOS'\n-055BA General Purpose Flag  0800 (2048)\n+0566F LOCAL HEADER #62      04034B50 (67324752)\n+05673 Extract Zip Spec      14 (20) '2.0'\n+05674 Extract OS            00 (0) 'MS-DOS'\n+05675 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-055BC Compression Method    0008 (8) 'Deflated'\n-055BE Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-055C2 CRC                   CFC03DEB (3485482475)\n-055C6 Compressed Size       0000080F (2063)\n-055CA Uncompressed Size     00001446 (5190)\n-055CE Filename Length       0036 (54)\n-055D0 Extra Length          0000 (0)\n-055D2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+05677 Compression Method    0008 (8) 'Deflated'\n+05679 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+0567D CRC                   4EA4211F (1319379231)\n+05681 Compressed Size       000007CE (1998)\n+05685 Uncompressed Size     000013B6 (5046)\n+05689 Filename Length       0036 (54)\n+0568B Extra Length          0000 (0)\n+0568D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x55D2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x568D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-05608 PAYLOAD\n+056C3 PAYLOAD\n \n-05E17 LOCAL HEADER #63      04034B50 (67324752)\n-05E1B Extract Zip Spec      14 (20) '2.0'\n-05E1C Extract OS            00 (0) 'MS-DOS'\n-05E1D General Purpose Flag  0800 (2048)\n+05E91 LOCAL HEADER #63      04034B50 (67324752)\n+05E95 Extract Zip Spec      14 (20) '2.0'\n+05E96 Extract OS            00 (0) 'MS-DOS'\n+05E97 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-05E1F Compression Method    0008 (8) 'Deflated'\n-05E21 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-05E25 CRC                   DAAE3E94 (3668852372)\n-05E29 Compressed Size       0000045A (1114)\n-05E2D Uncompressed Size     00000B96 (2966)\n-05E31 Filename Length       004B (75)\n-05E33 Extra Length          0000 (0)\n-05E35 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+05E99 Compression Method    0008 (8) 'Deflated'\n+05E9B Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+05E9F CRC                   5350F976 (1397815670)\n+05EA3 Compressed Size       00000468 (1128)\n+05EA7 Uncompressed Size     00000B96 (2966)\n+05EAB Filename Length       004B (75)\n+05EAD Extra Length          0000 (0)\n+05EAF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x5E35: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x5EAF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-05E80 PAYLOAD\n+05EFA PAYLOAD\n \n-062DA LOCAL HEADER #64      04034B50 (67324752)\n-062DE Extract Zip Spec      14 (20) '2.0'\n-062DF Extract OS            00 (0) 'MS-DOS'\n-062E0 General Purpose Flag  0800 (2048)\n+06362 LOCAL HEADER #64      04034B50 (67324752)\n+06366 Extract Zip Spec      14 (20) '2.0'\n+06367 Extract OS            00 (0) 'MS-DOS'\n+06368 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-062E2 Compression Method    0008 (8) 'Deflated'\n-062E4 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-062E8 CRC                   8DE30265 (2380464741)\n-062EC Compressed Size       00000364 (868)\n-062F0 Uncompressed Size     000007C7 (1991)\n-062F4 Filename Length       0038 (56)\n-062F6 Extra Length          0000 (0)\n-062F8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0636A Compression Method    0008 (8) 'Deflated'\n+0636C Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+06370 CRC                   10864B8C (277236620)\n+06374 Compressed Size       00000366 (870)\n+06378 Uncompressed Size     000007C7 (1991)\n+0637C Filename Length       0038 (56)\n+0637E Extra Length          0000 (0)\n+06380 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x62F8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x6380: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-06330 PAYLOAD\n+063B8 PAYLOAD\n \n-06694 LOCAL HEADER #65      04034B50 (67324752)\n-06698 Extract Zip Spec      14 (20) '2.0'\n-06699 Extract OS            00 (0) 'MS-DOS'\n-0669A General Purpose Flag  0800 (2048)\n+0671E LOCAL HEADER #65      04034B50 (67324752)\n+06722 Extract Zip Spec      14 (20) '2.0'\n+06723 Extract OS            00 (0) 'MS-DOS'\n+06724 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0669C Compression Method    0008 (8) 'Deflated'\n-0669E Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-066A2 CRC                   B0BFE5FC (2965366268)\n-066A6 Compressed Size       000005CE (1486)\n-066AA Uncompressed Size     00000E69 (3689)\n-066AE Filename Length       0030 (48)\n-066B0 Extra Length          0000 (0)\n-066B2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+06726 Compression Method    0008 (8) 'Deflated'\n+06728 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+0672C CRC                   9DD32FAD (2647863213)\n+06730 Compressed Size       000005D9 (1497)\n+06734 Uncompressed Size     00000E69 (3689)\n+06738 Filename Length       0030 (48)\n+0673A Extra Length          0000 (0)\n+0673C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x66B2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x673C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-066E2 PAYLOAD\n+0676C PAYLOAD\n \n-06CB0 LOCAL HEADER #66      04034B50 (67324752)\n-06CB4 Extract Zip Spec      14 (20) '2.0'\n-06CB5 Extract OS            00 (0) 'MS-DOS'\n-06CB6 General Purpose Flag  0800 (2048)\n+06D45 LOCAL HEADER #66      04034B50 (67324752)\n+06D49 Extract Zip Spec      14 (20) '2.0'\n+06D4A Extract OS            00 (0) 'MS-DOS'\n+06D4B General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-06CB8 Compression Method    0008 (8) 'Deflated'\n-06CBA Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-06CBE CRC                   BB4A5EDA (3142213338)\n-06CC2 Compressed Size       000004B4 (1204)\n-06CC6 Uncompressed Size     00000AF8 (2808)\n-06CCA Filename Length       003B (59)\n-06CCC Extra Length          0000 (0)\n-06CCE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+06D4D Compression Method    0008 (8) 'Deflated'\n+06D4F Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+06D53 CRC                   F6B3CB5C (4138978140)\n+06D57 Compressed Size       000004BA (1210)\n+06D5B Uncompressed Size     00000AF8 (2808)\n+06D5F Filename Length       003B (59)\n+06D61 Extra Length          0000 (0)\n+06D63 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x6CCE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x6D63: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-06D09 PAYLOAD\n+06D9E PAYLOAD\n \n-071BD LOCAL HEADER #67      04034B50 (67324752)\n-071C1 Extract Zip Spec      14 (20) '2.0'\n-071C2 Extract OS            00 (0) 'MS-DOS'\n-071C3 General Purpose Flag  0800 (2048)\n+07258 LOCAL HEADER #67      04034B50 (67324752)\n+0725C Extract Zip Spec      14 (20) '2.0'\n+0725D Extract OS            00 (0) 'MS-DOS'\n+0725E General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-071C5 Compression Method    0008 (8) 'Deflated'\n-071C7 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-071CB CRC                   A03B05A8 (2688222632)\n-071CF Compressed Size       000006B7 (1719)\n-071D3 Uncompressed Size     00000F7E (3966)\n-071D7 Filename Length       0030 (48)\n-071D9 Extra Length          0000 (0)\n-071DB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+07260 Compression Method    0008 (8) 'Deflated'\n+07262 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+07266 CRC                   93036480 (2466473088)\n+0726A Compressed Size       000006CF (1743)\n+0726E Uncompressed Size     00000F7E (3966)\n+07272 Filename Length       0030 (48)\n+07274 Extra Length          0000 (0)\n+07276 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x71DB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x7276: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0720B PAYLOAD\n+072A6 PAYLOAD\n \n-078C2 LOCAL HEADER #68      04034B50 (67324752)\n-078C6 Extract Zip Spec      14 (20) '2.0'\n-078C7 Extract OS            00 (0) 'MS-DOS'\n-078C8 General Purpose Flag  0800 (2048)\n+07975 LOCAL HEADER #68      04034B50 (67324752)\n+07979 Extract Zip Spec      14 (20) '2.0'\n+0797A Extract OS            00 (0) 'MS-DOS'\n+0797B General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-078CA Compression Method    0008 (8) 'Deflated'\n-078CC Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-078D0 CRC                   E6B32CE0 (3870502112)\n-078D4 Compressed Size       00000528 (1320)\n-078D8 Uncompressed Size     00000B6F (2927)\n-078DC Filename Length       0032 (50)\n-078DE Extra Length          0000 (0)\n-078E0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0797D Compression Method    0008 (8) 'Deflated'\n+0797F Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+07983 CRC                   ED73F0E8 (3983798504)\n+07987 Compressed Size       0000052B (1323)\n+0798B Uncompressed Size     00000B6F (2927)\n+0798F Filename Length       0032 (50)\n+07991 Extra Length          0000 (0)\n+07993 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x78E0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x7993: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-07912 PAYLOAD\n+079C5 PAYLOAD\n \n-07E3A LOCAL HEADER #69      04034B50 (67324752)\n-07E3E Extract Zip Spec      14 (20) '2.0'\n-07E3F Extract OS            00 (0) 'MS-DOS'\n-07E40 General Purpose Flag  0800 (2048)\n+07EF0 LOCAL HEADER #69      04034B50 (67324752)\n+07EF4 Extract Zip Spec      14 (20) '2.0'\n+07EF5 Extract OS            00 (0) 'MS-DOS'\n+07EF6 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-07E42 Compression Method    0008 (8) 'Deflated'\n-07E44 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-07E48 CRC                   A23E9949 (2722011465)\n-07E4C Compressed Size       000005CE (1486)\n-07E50 Uncompressed Size     00000CA7 (3239)\n-07E54 Filename Length       002A (42)\n-07E56 Extra Length          0000 (0)\n-07E58 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+07EF8 Compression Method    0008 (8) 'Deflated'\n+07EFA Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+07EFE CRC                   6390CFE7 (1670434791)\n+07F02 Compressed Size       000005DB (1499)\n+07F06 Uncompressed Size     00000CA7 (3239)\n+07F0A Filename Length       002A (42)\n+07F0C Extra Length          0000 (0)\n+07F0E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x7E58: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x7F0E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-07E82 PAYLOAD\n+07F38 PAYLOAD\n \n-08450 LOCAL HEADER #70      04034B50 (67324752)\n-08454 Extract Zip Spec      14 (20) '2.0'\n-08455 Extract OS            00 (0) 'MS-DOS'\n-08456 General Purpose Flag  0800 (2048)\n+08513 LOCAL HEADER #70      04034B50 (67324752)\n+08517 Extract Zip Spec      14 (20) '2.0'\n+08518 Extract OS            00 (0) 'MS-DOS'\n+08519 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-08458 Compression Method    0008 (8) 'Deflated'\n-0845A Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-0845E CRC                   25124015 (621953045)\n-08462 Compressed Size       0000071C (1820)\n-08466 Uncompressed Size     0000119A (4506)\n-0846A Filename Length       0030 (48)\n-0846C Extra Length          0000 (0)\n-0846E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0851B Compression Method    0008 (8) 'Deflated'\n+0851D Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+08521 CRC                   01F26E78 (32665208)\n+08525 Compressed Size       00000739 (1849)\n+08529 Uncompressed Size     0000119A (4506)\n+0852D Filename Length       0030 (48)\n+0852F Extra Length          0000 (0)\n+08531 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x846E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x8531: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0849E PAYLOAD\n+08561 PAYLOAD\n \n-08BBA LOCAL HEADER #71      04034B50 (67324752)\n-08BBE Extract Zip Spec      14 (20) '2.0'\n-08BBF Extract OS            00 (0) 'MS-DOS'\n-08BC0 General Purpose Flag  0800 (2048)\n+08C9A LOCAL HEADER #71      04034B50 (67324752)\n+08C9E Extract Zip Spec      14 (20) '2.0'\n+08C9F Extract OS            00 (0) 'MS-DOS'\n+08CA0 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-08BC2 Compression Method    0008 (8) 'Deflated'\n-08BC4 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-08BC8 CRC                   5996933F (1503040319)\n-08BCC Compressed Size       0000095C (2396)\n-08BD0 Uncompressed Size     000019C0 (6592)\n-08BD4 Filename Length       003C (60)\n-08BD6 Extra Length          0000 (0)\n-08BD8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+08CA2 Compression Method    0008 (8) 'Deflated'\n+08CA4 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+08CA8 CRC                   025CA19F (39625119)\n+08CAC Compressed Size       0000097D (2429)\n+08CB0 Uncompressed Size     000019C0 (6592)\n+08CB4 Filename Length       003C (60)\n+08CB6 Extra Length          0000 (0)\n+08CB8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x8BD8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x8CB8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-08C14 PAYLOAD\n+08CF4 PAYLOAD\n \n-09570 LOCAL HEADER #72      04034B50 (67324752)\n-09574 Extract Zip Spec      14 (20) '2.0'\n-09575 Extract OS            00 (0) 'MS-DOS'\n-09576 General Purpose Flag  0800 (2048)\n+09671 LOCAL HEADER #72      04034B50 (67324752)\n+09675 Extract Zip Spec      14 (20) '2.0'\n+09676 Extract OS            00 (0) 'MS-DOS'\n+09677 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-09578 Compression Method    0008 (8) 'Deflated'\n-0957A Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-0957E CRC                   421C3746 (1109145414)\n-09582 Compressed Size       0000025D (605)\n-09586 Uncompressed Size     000004CF (1231)\n-0958A Filename Length       0036 (54)\n-0958C Extra Length          0000 (0)\n-0958E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+09679 Compression Method    0008 (8) 'Deflated'\n+0967B Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+0967F CRC                   E319FE76 (3810131574)\n+09683 Compressed Size       00000261 (609)\n+09687 Uncompressed Size     000004CF (1231)\n+0968B Filename Length       0036 (54)\n+0968D Extra Length          0000 (0)\n+0968F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x958E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x968F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-095C4 PAYLOAD\n+096C5 PAYLOAD\n \n-09821 LOCAL HEADER #73      04034B50 (67324752)\n-09825 Extract Zip Spec      14 (20) '2.0'\n-09826 Extract OS            00 (0) 'MS-DOS'\n-09827 General Purpose Flag  0800 (2048)\n+09926 LOCAL HEADER #73      04034B50 (67324752)\n+0992A Extract Zip Spec      14 (20) '2.0'\n+0992B Extract OS            00 (0) 'MS-DOS'\n+0992C General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-09829 Compression Method    0008 (8) 'Deflated'\n-0982B Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-0982F CRC                   0F927E5E (261258846)\n-09833 Compressed Size       000006D6 (1750)\n-09837 Uncompressed Size     00001348 (4936)\n-0983B Filename Length       0033 (51)\n-0983D Extra Length          0000 (0)\n-0983F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0992E Compression Method    0008 (8) 'Deflated'\n+09930 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+09934 CRC                   E988474B (3918022475)\n+09938 Compressed Size       000006F7 (1783)\n+0993C Uncompressed Size     00001348 (4936)\n+09940 Filename Length       0033 (51)\n+09942 Extra Length          0000 (0)\n+09944 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x983F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x9944: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-09872 PAYLOAD\n+09977 PAYLOAD\n \n-09F48 LOCAL HEADER #74      04034B50 (67324752)\n-09F4C Extract Zip Spec      14 (20) '2.0'\n-09F4D Extract OS            00 (0) 'MS-DOS'\n-09F4E General Purpose Flag  0800 (2048)\n+0A06E LOCAL HEADER #74      04034B50 (67324752)\n+0A072 Extract Zip Spec      14 (20) '2.0'\n+0A073 Extract OS            00 (0) 'MS-DOS'\n+0A074 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-09F50 Compression Method    0008 (8) 'Deflated'\n-09F52 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-09F56 CRC                   CDF9EC0F (3455708175)\n-09F5A Compressed Size       000003E0 (992)\n-09F5E Uncompressed Size     000008C5 (2245)\n-09F62 Filename Length       0034 (52)\n-09F64 Extra Length          0000 (0)\n-09F66 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0A076 Compression Method    0008 (8) 'Deflated'\n+0A078 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+0A07C CRC                   4F3510BA (1328877754)\n+0A080 Compressed Size       000003EE (1006)\n+0A084 Uncompressed Size     000008C5 (2245)\n+0A088 Filename Length       0034 (52)\n+0A08A Extra Length          0000 (0)\n+0A08C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x9F66: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xA08C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-09F9A PAYLOAD\n+0A0C0 PAYLOAD\n \n-0A37A LOCAL HEADER #75      04034B50 (67324752)\n-0A37E Extract Zip Spec      14 (20) '2.0'\n-0A37F Extract OS            00 (0) 'MS-DOS'\n-0A380 General Purpose Flag  0800 (2048)\n+0A4AE LOCAL HEADER #75      04034B50 (67324752)\n+0A4B2 Extract Zip Spec      14 (20) '2.0'\n+0A4B3 Extract OS            00 (0) 'MS-DOS'\n+0A4B4 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0A382 Compression Method    0008 (8) 'Deflated'\n-0A384 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-0A388 CRC                   5A33884E (1513326670)\n-0A38C Compressed Size       00000545 (1349)\n-0A390 Uncompressed Size     00000D35 (3381)\n-0A394 Filename Length       0041 (65)\n-0A396 Extra Length          0000 (0)\n-0A398 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0A4B6 Compression Method    0008 (8) 'Deflated'\n+0A4B8 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+0A4BC CRC                   20A5CCED (547736813)\n+0A4C0 Compressed Size       00000555 (1365)\n+0A4C4 Uncompressed Size     00000D35 (3381)\n+0A4C8 Filename Length       0041 (65)\n+0A4CA Extra Length          0000 (0)\n+0A4CC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xA398: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xA4CC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0A3D9 PAYLOAD\n+0A50D PAYLOAD\n \n-0A91E LOCAL HEADER #76      04034B50 (67324752)\n-0A922 Extract Zip Spec      14 (20) '2.0'\n-0A923 Extract OS            00 (0) 'MS-DOS'\n-0A924 General Purpose Flag  0800 (2048)\n+0AA62 LOCAL HEADER #76      04034B50 (67324752)\n+0AA66 Extract Zip Spec      14 (20) '2.0'\n+0AA67 Extract OS            00 (0) 'MS-DOS'\n+0AA68 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0A926 Compression Method    0008 (8) 'Deflated'\n-0A928 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-0A92C CRC                   8665BB83 (2254814083)\n-0A930 Compressed Size       00000985 (2437)\n-0A934 Uncompressed Size     00001A24 (6692)\n-0A938 Filename Length       0032 (50)\n-0A93A Extra Length          0000 (0)\n-0A93C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0AA6A Compression Method    0008 (8) 'Deflated'\n+0AA6C Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+0AA70 CRC                   CCA441E8 (3433316840)\n+0AA74 Compressed Size       00000993 (2451)\n+0AA78 Uncompressed Size     00001A24 (6692)\n+0AA7C Filename Length       0032 (50)\n+0AA7E Extra Length          0000 (0)\n+0AA80 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xA93C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xAA80: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0A96E PAYLOAD\n+0AAB2 PAYLOAD\n \n-0B2F3 LOCAL HEADER #77      04034B50 (67324752)\n-0B2F7 Extract Zip Spec      14 (20) '2.0'\n-0B2F8 Extract OS            00 (0) 'MS-DOS'\n-0B2F9 General Purpose Flag  0800 (2048)\n+0B445 LOCAL HEADER #77      04034B50 (67324752)\n+0B449 Extract Zip Spec      14 (20) '2.0'\n+0B44A Extract OS            00 (0) 'MS-DOS'\n+0B44B General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0B2FB Compression Method    0008 (8) 'Deflated'\n-0B2FD Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-0B301 CRC                   DB628F10 (3680669456)\n-0B305 Compressed Size       00000738 (1848)\n-0B309 Uncompressed Size     00001176 (4470)\n-0B30D Filename Length       0032 (50)\n-0B30F Extra Length          0000 (0)\n-0B311 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0B44D Compression Method    0008 (8) 'Deflated'\n+0B44F Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+0B453 CRC                   20DB00B6 (551223478)\n+0B457 Compressed Size       0000074A (1866)\n+0B45B Uncompressed Size     00001176 (4470)\n+0B45F Filename Length       0032 (50)\n+0B461 Extra Length          0000 (0)\n+0B463 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xB311: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xB463: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0B343 PAYLOAD\n+0B495 PAYLOAD\n \n-0BA7B LOCAL HEADER #78      04034B50 (67324752)\n-0BA7F Extract Zip Spec      14 (20) '2.0'\n-0BA80 Extract OS            00 (0) 'MS-DOS'\n-0BA81 General Purpose Flag  0800 (2048)\n+0BBDF LOCAL HEADER #78      04034B50 (67324752)\n+0BBE3 Extract Zip Spec      14 (20) '2.0'\n+0BBE4 Extract OS            00 (0) 'MS-DOS'\n+0BBE5 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0BA83 Compression Method    0008 (8) 'Deflated'\n-0BA85 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-0BA89 CRC                   E5E3EA59 (3856919129)\n-0BA8D Compressed Size       00000234 (564)\n-0BA91 Uncompressed Size     0000051D (1309)\n-0BA95 Filename Length       0057 (87)\n-0BA97 Extra Length          0000 (0)\n-0BA99 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0BBE7 Compression Method    0008 (8) 'Deflated'\n+0BBE9 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+0BBED CRC                   3CC0C248 (1019265608)\n+0BBF1 Compressed Size       00000239 (569)\n+0BBF5 Uncompressed Size     0000051A (1306)\n+0BBF9 Filename Length       0057 (87)\n+0BBFB Extra Length          0000 (0)\n+0BBFD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xBA99: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xBBFD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0BAF0 PAYLOAD\n+0BC54 PAYLOAD\n \n-0BD24 LOCAL HEADER #79      04034B50 (67324752)\n-0BD28 Extract Zip Spec      14 (20) '2.0'\n-0BD29 Extract OS            00 (0) 'MS-DOS'\n-0BD2A General Purpose Flag  0800 (2048)\n+0BE8D LOCAL HEADER #79      04034B50 (67324752)\n+0BE91 Extract Zip Spec      14 (20) '2.0'\n+0BE92 Extract OS            00 (0) 'MS-DOS'\n+0BE93 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0BD2C Compression Method    0008 (8) 'Deflated'\n-0BD2E Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-0BD32 CRC                   F1DBC679 (4057712249)\n-0BD36 Compressed Size       000003DC (988)\n-0BD3A Uncompressed Size     000008B2 (2226)\n-0BD3E Filename Length       003D (61)\n-0BD40 Extra Length          0000 (0)\n-0BD42 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0BE95 Compression Method    0008 (8) 'Deflated'\n+0BE97 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+0BE9B CRC                   344ACFDE (877318110)\n+0BE9F Compressed Size       000003E3 (995)\n+0BEA3 Uncompressed Size     000008B2 (2226)\n+0BEA7 Filename Length       003D (61)\n+0BEA9 Extra Length          0000 (0)\n+0BEAB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xBD42: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xBEAB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0BD7F PAYLOAD\n+0BEE8 PAYLOAD\n \n-0C15B LOCAL HEADER #80      04034B50 (67324752)\n-0C15F Extract Zip Spec      14 (20) '2.0'\n-0C160 Extract OS            00 (0) 'MS-DOS'\n-0C161 General Purpose Flag  0800 (2048)\n+0C2CB LOCAL HEADER #80      04034B50 (67324752)\n+0C2CF Extract Zip Spec      14 (20) '2.0'\n+0C2D0 Extract OS            00 (0) 'MS-DOS'\n+0C2D1 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0C163 Compression Method    0008 (8) 'Deflated'\n-0C165 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-0C169 CRC                   C3188174 (3273163124)\n-0C16D Compressed Size       00000262 (610)\n-0C171 Uncompressed Size     00000547 (1351)\n-0C175 Filename Length       002D (45)\n-0C177 Extra Length          0000 (0)\n-0C179 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0C2D3 Compression Method    0008 (8) 'Deflated'\n+0C2D5 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+0C2D9 CRC                   4F7B3403 (1333474307)\n+0C2DD Compressed Size       00000263 (611)\n+0C2E1 Uncompressed Size     00000547 (1351)\n+0C2E5 Filename Length       002D (45)\n+0C2E7 Extra Length          0000 (0)\n+0C2E9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xC179: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xC2E9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0C1A6 PAYLOAD\n+0C316 PAYLOAD\n \n-0C408 LOCAL HEADER #81      04034B50 (67324752)\n-0C40C Extract Zip Spec      14 (20) '2.0'\n-0C40D Extract OS            00 (0) 'MS-DOS'\n-0C40E General Purpose Flag  0800 (2048)\n+0C579 LOCAL HEADER #81      04034B50 (67324752)\n+0C57D Extract Zip Spec      14 (20) '2.0'\n+0C57E Extract OS            00 (0) 'MS-DOS'\n+0C57F General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0C410 Compression Method    0008 (8) 'Deflated'\n-0C412 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-0C416 CRC                   F3F211B7 (4092727735)\n-0C41A Compressed Size       0000017F (383)\n-0C41E Uncompressed Size     000002D2 (722)\n-0C422 Filename Length       0032 (50)\n-0C424 Extra Length          0000 (0)\n-0C426 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0C581 Compression Method    0008 (8) 'Deflated'\n+0C583 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+0C587 CRC                   7E842F24 (2122592036)\n+0C58B Compressed Size       00000186 (390)\n+0C58F Uncompressed Size     000002D2 (722)\n+0C593 Filename Length       0032 (50)\n+0C595 Extra Length          0000 (0)\n+0C597 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xC426: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xC597: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0C458 PAYLOAD\n+0C5C9 PAYLOAD\n \n-0C5D7 LOCAL HEADER #82      04034B50 (67324752)\n-0C5DB Extract Zip Spec      14 (20) '2.0'\n-0C5DC Extract OS            00 (0) 'MS-DOS'\n-0C5DD General Purpose Flag  0800 (2048)\n+0C74F LOCAL HEADER #82      04034B50 (67324752)\n+0C753 Extract Zip Spec      14 (20) '2.0'\n+0C754 Extract OS            00 (0) 'MS-DOS'\n+0C755 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0C5DF Compression Method    0008 (8) 'Deflated'\n-0C5E1 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-0C5E5 CRC                   7C5D6AFA (2086497018)\n-0C5E9 Compressed Size       00000217 (535)\n-0C5ED Uncompressed Size     000003CF (975)\n-0C5F1 Filename Length       003C (60)\n-0C5F3 Extra Length          0000 (0)\n-0C5F5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0C757 Compression Method    0008 (8) 'Deflated'\n+0C759 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+0C75D CRC                   4EBF134A (1321145162)\n+0C761 Compressed Size       00000218 (536)\n+0C765 Uncompressed Size     000003CC (972)\n+0C769 Filename Length       003C (60)\n+0C76B Extra Length          0000 (0)\n+0C76D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xC5F5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xC76D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0C631 PAYLOAD\n+0C7A9 PAYLOAD\n \n-0C848 LOCAL HEADER #83      04034B50 (67324752)\n-0C84C Extract Zip Spec      14 (20) '2.0'\n-0C84D Extract OS            00 (0) 'MS-DOS'\n-0C84E General Purpose Flag  0800 (2048)\n+0C9C1 LOCAL HEADER #83      04034B50 (67324752)\n+0C9C5 Extract Zip Spec      14 (20) '2.0'\n+0C9C6 Extract OS            00 (0) 'MS-DOS'\n+0C9C7 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0C850 Compression Method    0008 (8) 'Deflated'\n-0C852 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-0C856 CRC                   0192E22B (26403371)\n-0C85A Compressed Size       000001F8 (504)\n-0C85E Uncompressed Size     00000359 (857)\n-0C862 Filename Length       0038 (56)\n-0C864 Extra Length          0000 (0)\n-0C866 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0C9C9 Compression Method    0008 (8) 'Deflated'\n+0C9CB Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+0C9CF CRC                   6C6C2451 (1819026513)\n+0C9D3 Compressed Size       000001FA (506)\n+0C9D7 Uncompressed Size     00000356 (854)\n+0C9DB Filename Length       0038 (56)\n+0C9DD Extra Length          0000 (0)\n+0C9DF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xC866: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xC9DF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0C89E PAYLOAD\n+0CA17 PAYLOAD\n \n-0CA96 LOCAL HEADER #84      04034B50 (67324752)\n-0CA9A Extract Zip Spec      14 (20) '2.0'\n-0CA9B Extract OS            00 (0) 'MS-DOS'\n-0CA9C General Purpose Flag  0800 (2048)\n+0CC11 LOCAL HEADER #84      04034B50 (67324752)\n+0CC15 Extract Zip Spec      14 (20) '2.0'\n+0CC16 Extract OS            00 (0) 'MS-DOS'\n+0CC17 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0CA9E Compression Method    0008 (8) 'Deflated'\n-0CAA0 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-0CAA4 CRC                   26456553 (642082131)\n-0CAA8 Compressed Size       000009EB (2539)\n-0CAAC Uncompressed Size     0000179C (6044)\n-0CAB0 Filename Length       0030 (48)\n-0CAB2 Extra Length          0000 (0)\n-0CAB4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0CC19 Compression Method    0008 (8) 'Deflated'\n+0CC1B Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+0CC1F CRC                   4CF35C69 (1291017321)\n+0CC23 Compressed Size       000009C0 (2496)\n+0CC27 Uncompressed Size     0000172C (5932)\n+0CC2B Filename Length       0030 (48)\n+0CC2D Extra Length          0000 (0)\n+0CC2F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xCAB4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xCC2F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0CAE4 PAYLOAD\n+0CC5F PAYLOAD\n \n-0D4CF LOCAL HEADER #85      04034B50 (67324752)\n-0D4D3 Extract Zip Spec      14 (20) '2.0'\n-0D4D4 Extract OS            00 (0) 'MS-DOS'\n-0D4D5 General Purpose Flag  0800 (2048)\n+0D61F LOCAL HEADER #85      04034B50 (67324752)\n+0D623 Extract Zip Spec      14 (20) '2.0'\n+0D624 Extract OS            00 (0) 'MS-DOS'\n+0D625 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0D4D7 Compression Method    0008 (8) 'Deflated'\n-0D4D9 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-0D4DD CRC                   A742848E (2806154382)\n-0D4E1 Compressed Size       000000A3 (163)\n-0D4E5 Uncompressed Size     000000DE (222)\n-0D4E9 Filename Length       0029 (41)\n-0D4EB Extra Length          0000 (0)\n-0D4ED Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0D627 Compression Method    0008 (8) 'Deflated'\n+0D629 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+0D62D CRC                   0E9435B8 (244594104)\n+0D631 Compressed Size       000000A1 (161)\n+0D635 Uncompressed Size     000000DE (222)\n+0D639 Filename Length       0029 (41)\n+0D63B Extra Length          0000 (0)\n+0D63D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xD4ED: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xD63D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0D516 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n-                            XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+0D666 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+                            XXXXXXXXXXXXXXXXXXXXXXXXXXXX\n \n-0D5B9 LOCAL HEADER #86      04034B50 (67324752)\n-0D5BD Extract Zip Spec      14 (20) '2.0'\n-0D5BE Extract OS            00 (0) 'MS-DOS'\n-0D5BF General Purpose Flag  0800 (2048)\n+0D707 LOCAL HEADER #86      04034B50 (67324752)\n+0D70B Extract Zip Spec      14 (20) '2.0'\n+0D70C Extract OS            00 (0) 'MS-DOS'\n+0D70D General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0D5C1 Compression Method    0008 (8) 'Deflated'\n-0D5C3 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-0D5C7 CRC                   B3EE9627 (3018757671)\n-0D5CB Compressed Size       00000280 (640)\n-0D5CF Uncompressed Size     0000061F (1567)\n-0D5D3 Filename Length       0030 (48)\n-0D5D5 Extra Length          0000 (0)\n-0D5D7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0D70F Compression Method    0008 (8) 'Deflated'\n+0D711 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+0D715 CRC                   7E2D3D43 (2116894019)\n+0D719 Compressed Size       0000027E (638)\n+0D71D Uncompressed Size     0000061F (1567)\n+0D721 Filename Length       0030 (48)\n+0D723 Extra Length          0000 (0)\n+0D725 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xD5D7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xD725: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0D607 PAYLOAD\n+0D755 PAYLOAD\n \n-0D887 LOCAL HEADER #87      04034B50 (67324752)\n-0D88B Extract Zip Spec      14 (20) '2.0'\n-0D88C Extract OS            00 (0) 'MS-DOS'\n-0D88D General Purpose Flag  0800 (2048)\n+0D9D3 LOCAL HEADER #87      04034B50 (67324752)\n+0D9D7 Extract Zip Spec      14 (20) '2.0'\n+0D9D8 Extract OS            00 (0) 'MS-DOS'\n+0D9D9 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0D88F Compression Method    0008 (8) 'Deflated'\n-0D891 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-0D895 CRC                   AEEAA635 (2934613557)\n-0D899 Compressed Size       0000017B (379)\n-0D89D Uncompressed Size     000002AF (687)\n-0D8A1 Filename Length       0032 (50)\n-0D8A3 Extra Length          0000 (0)\n-0D8A5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0D9DB Compression Method    0008 (8) 'Deflated'\n+0D9DD Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+0D9E1 CRC                   1657AE16 (374844950)\n+0D9E5 Compressed Size       0000017F (383)\n+0D9E9 Uncompressed Size     000002AF (687)\n+0D9ED Filename Length       0032 (50)\n+0D9EF Extra Length          0000 (0)\n+0D9F1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xD8A5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xD9F1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0D8D7 PAYLOAD\n+0DA23 PAYLOAD\n \n-0DA52 LOCAL HEADER #88      04034B50 (67324752)\n-0DA56 Extract Zip Spec      14 (20) '2.0'\n-0DA57 Extract OS            00 (0) 'MS-DOS'\n-0DA58 General Purpose Flag  0800 (2048)\n+0DBA2 LOCAL HEADER #88      04034B50 (67324752)\n+0DBA6 Extract Zip Spec      14 (20) '2.0'\n+0DBA7 Extract OS            00 (0) 'MS-DOS'\n+0DBA8 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0DA5A Compression Method    0008 (8) 'Deflated'\n-0DA5C Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-0DA60 CRC                   0FF8665E (267937374)\n-0DA64 Compressed Size       00000760 (1888)\n-0DA68 Uncompressed Size     00001084 (4228)\n-0DA6C Filename Length       0027 (39)\n-0DA6E Extra Length          0000 (0)\n-0DA70 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0DBAA Compression Method    0008 (8) 'Deflated'\n+0DBAC Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+0DBB0 CRC                   E50DBBE1 (3842882529)\n+0DBB4 Compressed Size       0000072D (1837)\n+0DBB8 Uncompressed Size     00000FFC (4092)\n+0DBBC Filename Length       0027 (39)\n+0DBBE Extra Length          0000 (0)\n+0DBC0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xDA70: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xDBC0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0DA97 PAYLOAD\n+0DBE7 PAYLOAD\n \n-0E1F7 LOCAL HEADER #89      04034B50 (67324752)\n-0E1FB Extract Zip Spec      14 (20) '2.0'\n-0E1FC Extract OS            00 (0) 'MS-DOS'\n-0E1FD General Purpose Flag  0800 (2048)\n+0E314 LOCAL HEADER #89      04034B50 (67324752)\n+0E318 Extract Zip Spec      14 (20) '2.0'\n+0E319 Extract OS            00 (0) 'MS-DOS'\n+0E31A General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0E1FF Compression Method    0008 (8) 'Deflated'\n-0E201 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-0E205 CRC                   F0E6137B (4041610107)\n-0E209 Compressed Size       000008E0 (2272)\n-0E20D Uncompressed Size     000016A0 (5792)\n-0E211 Filename Length       002D (45)\n-0E213 Extra Length          0000 (0)\n-0E215 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0E31C Compression Method    0008 (8) 'Deflated'\n+0E31E Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+0E322 CRC                   BC142CBC (3155438780)\n+0E326 Compressed Size       000008E6 (2278)\n+0E32A Uncompressed Size     000016AC (5804)\n+0E32E Filename Length       002D (45)\n+0E330 Extra Length          0000 (0)\n+0E332 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xE215: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xE332: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0E242 PAYLOAD\n+0E35F PAYLOAD\n \n-0EB22 LOCAL HEADER #90      04034B50 (67324752)\n-0EB26 Extract Zip Spec      14 (20) '2.0'\n-0EB27 Extract OS            00 (0) 'MS-DOS'\n-0EB28 General Purpose Flag  0800 (2048)\n+0EC45 LOCAL HEADER #90      04034B50 (67324752)\n+0EC49 Extract Zip Spec      14 (20) '2.0'\n+0EC4A Extract OS            00 (0) 'MS-DOS'\n+0EC4B General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0EB2A Compression Method    0008 (8) 'Deflated'\n-0EB2C Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-0EB30 CRC                   2442917B (608342395)\n-0EB34 Compressed Size       00000F46 (3910)\n-0EB38 Uncompressed Size     000025D4 (9684)\n-0EB3C Filename Length       0028 (40)\n-0EB3E Extra Length          0000 (0)\n-0EB40 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0EC4D Compression Method    0008 (8) 'Deflated'\n+0EC4F Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+0EC53 CRC                   23BE2A56 (599665238)\n+0EC57 Compressed Size       00000F6F (3951)\n+0EC5B Uncompressed Size     000025D2 (9682)\n+0EC5F Filename Length       0028 (40)\n+0EC61 Extra Length          0000 (0)\n+0EC63 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xEB40: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xEC63: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0EB68 PAYLOAD\n+0EC8B PAYLOAD\n \n-0FAAE LOCAL HEADER #91      04034B50 (67324752)\n-0FAB2 Extract Zip Spec      14 (20) '2.0'\n-0FAB3 Extract OS            00 (0) 'MS-DOS'\n-0FAB4 General Purpose Flag  0800 (2048)\n+0FBFA LOCAL HEADER #91      04034B50 (67324752)\n+0FBFE Extract Zip Spec      14 (20) '2.0'\n+0FBFF Extract OS            00 (0) 'MS-DOS'\n+0FC00 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-0FAB6 Compression Method    0008 (8) 'Deflated'\n-0FAB8 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-0FABC CRC                   C3FAA4DD (3287983325)\n-0FAC0 Compressed Size       00000DF6 (3574)\n-0FAC4 Uncompressed Size     00002792 (10130)\n-0FAC8 Filename Length       0032 (50)\n-0FACA Extra Length          0000 (0)\n-0FACC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0FC02 Compression Method    0008 (8) 'Deflated'\n+0FC04 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+0FC08 CRC                   E3F04F5A (3824176986)\n+0FC0C Compressed Size       00000DFF (3583)\n+0FC10 Uncompressed Size     0000278F (10127)\n+0FC14 Filename Length       0032 (50)\n+0FC16 Extra Length          0000 (0)\n+0FC18 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0xFACC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0xFC18: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-0FAFE PAYLOAD\n+0FC4A PAYLOAD\n \n-108F4 LOCAL HEADER #92      04034B50 (67324752)\n-108F8 Extract Zip Spec      14 (20) '2.0'\n-108F9 Extract OS            00 (0) 'MS-DOS'\n-108FA General Purpose Flag  0800 (2048)\n+10A49 LOCAL HEADER #92      04034B50 (67324752)\n+10A4D Extract Zip Spec      14 (20) '2.0'\n+10A4E Extract OS            00 (0) 'MS-DOS'\n+10A4F General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-108FC Compression Method    0008 (8) 'Deflated'\n-108FE Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-10902 CRC                   9F500704 (2672822020)\n-10906 Compressed Size       000003DF (991)\n-1090A Uncompressed Size     00000A5F (2655)\n-1090E Filename Length       0030 (48)\n-10910 Extra Length          0000 (0)\n-10912 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+10A51 Compression Method    0008 (8) 'Deflated'\n+10A53 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+10A57 CRC                   6D97C843 (1838663747)\n+10A5B Compressed Size       000003E4 (996)\n+10A5F Uncompressed Size     00000A5C (2652)\n+10A63 Filename Length       0030 (48)\n+10A65 Extra Length          0000 (0)\n+10A67 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x10912: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x10A67: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-10942 PAYLOAD\n+10A97 PAYLOAD\n \n-10D21 LOCAL HEADER #93      04034B50 (67324752)\n-10D25 Extract Zip Spec      14 (20) '2.0'\n-10D26 Extract OS            00 (0) 'MS-DOS'\n-10D27 General Purpose Flag  0800 (2048)\n+10E7B LOCAL HEADER #93      04034B50 (67324752)\n+10E7F Extract Zip Spec      14 (20) '2.0'\n+10E80 Extract OS            00 (0) 'MS-DOS'\n+10E81 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-10D29 Compression Method    0008 (8) 'Deflated'\n-10D2B Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-10D2F CRC                   F12CA953 (4046235987)\n-10D33 Compressed Size       000001BA (442)\n-10D37 Uncompressed Size     00000478 (1144)\n-10D3B Filename Length       0058 (88)\n-10D3D Extra Length          0000 (0)\n-10D3F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+10E83 Compression Method    0008 (8) 'Deflated'\n+10E85 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+10E89 CRC                   35479578 (893883768)\n+10E8D Compressed Size       000001BF (447)\n+10E91 Uncompressed Size     00000478 (1144)\n+10E95 Filename Length       0058 (88)\n+10E97 Extra Length          0000 (0)\n+10E99 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x10D3F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x10E99: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-10D97 PAYLOAD\n+10EF1 PAYLOAD\n \n-10F51 LOCAL HEADER #94      04034B50 (67324752)\n-10F55 Extract Zip Spec      14 (20) '2.0'\n-10F56 Extract OS            00 (0) 'MS-DOS'\n-10F57 General Purpose Flag  0800 (2048)\n+110B0 LOCAL HEADER #94      04034B50 (67324752)\n+110B4 Extract Zip Spec      14 (20) '2.0'\n+110B5 Extract OS            00 (0) 'MS-DOS'\n+110B6 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-10F59 Compression Method    0008 (8) 'Deflated'\n-10F5B Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-10F5F CRC                   BEAABD2F (3198860591)\n-10F63 Compressed Size       0000020D (525)\n-10F67 Uncompressed Size     00000477 (1143)\n-10F6B Filename Length       0038 (56)\n-10F6D Extra Length          0000 (0)\n-10F6F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+110B8 Compression Method    0008 (8) 'Deflated'\n+110BA Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+110BE CRC                   3F93A3EA (1066640362)\n+110C2 Compressed Size       0000020E (526)\n+110C6 Uncompressed Size     00000477 (1143)\n+110CA Filename Length       0038 (56)\n+110CC Extra Length          0000 (0)\n+110CE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x10F6F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x110CE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-10FA7 PAYLOAD\n+11106 PAYLOAD\n \n-111B4 LOCAL HEADER #95      04034B50 (67324752)\n-111B8 Extract Zip Spec      14 (20) '2.0'\n-111B9 Extract OS            00 (0) 'MS-DOS'\n-111BA General Purpose Flag  0800 (2048)\n+11314 LOCAL HEADER #95      04034B50 (67324752)\n+11318 Extract Zip Spec      14 (20) '2.0'\n+11319 Extract OS            00 (0) 'MS-DOS'\n+1131A General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-111BC Compression Method    0008 (8) 'Deflated'\n-111BE Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-111C2 CRC                   0E52C45C (240305244)\n-111C6 Compressed Size       00000188 (392)\n-111CA Uncompressed Size     000002F1 (753)\n-111CE Filename Length       0036 (54)\n-111D0 Extra Length          0000 (0)\n-111D2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1131C Compression Method    0008 (8) 'Deflated'\n+1131E Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+11322 CRC                   398CD30C (965530380)\n+11326 Compressed Size       0000018C (396)\n+1132A Uncompressed Size     000002F1 (753)\n+1132E Filename Length       0036 (54)\n+11330 Extra Length          0000 (0)\n+11332 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x111D2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x11332: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-11208 PAYLOAD\n+11368 PAYLOAD\n \n-11390 LOCAL HEADER #96      04034B50 (67324752)\n-11394 Extract Zip Spec      14 (20) '2.0'\n-11395 Extract OS            00 (0) 'MS-DOS'\n-11396 General Purpose Flag  0800 (2048)\n+114F4 LOCAL HEADER #96      04034B50 (67324752)\n+114F8 Extract Zip Spec      14 (20) '2.0'\n+114F9 Extract OS            00 (0) 'MS-DOS'\n+114FA General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-11398 Compression Method    0008 (8) 'Deflated'\n-1139A Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-1139E CRC                   8AC14B9F (2327923615)\n-113A2 Compressed Size       0000040F (1039)\n-113A6 Uncompressed Size     00000924 (2340)\n-113AA Filename Length       0029 (41)\n-113AC Extra Length          0000 (0)\n-113AE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+114FC Compression Method    0008 (8) 'Deflated'\n+114FE Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+11502 CRC                   73F4B1AD (1945416109)\n+11506 Compressed Size       0000041D (1053)\n+1150A Uncompressed Size     00000924 (2340)\n+1150E Filename Length       0029 (41)\n+11510 Extra Length          0000 (0)\n+11512 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x113AE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x11512: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-113D7 PAYLOAD\n+1153B PAYLOAD\n \n-117E6 LOCAL HEADER #97      04034B50 (67324752)\n-117EA Extract Zip Spec      14 (20) '2.0'\n-117EB Extract OS            00 (0) 'MS-DOS'\n-117EC General Purpose Flag  0800 (2048)\n+11958 LOCAL HEADER #97      04034B50 (67324752)\n+1195C Extract Zip Spec      14 (20) '2.0'\n+1195D Extract OS            00 (0) 'MS-DOS'\n+1195E General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-117EE Compression Method    0008 (8) 'Deflated'\n-117F0 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-117F4 CRC                   C3825DA4 (3280100772)\n-117F8 Compressed Size       00000296 (662)\n-117FC Uncompressed Size     0000061E (1566)\n-11800 Filename Length       0049 (73)\n-11802 Extra Length          0000 (0)\n-11804 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+11960 Compression Method    0008 (8) 'Deflated'\n+11962 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+11966 CRC                   305262CA (810705610)\n+1196A Compressed Size       000002A3 (675)\n+1196E Uncompressed Size     0000061E (1566)\n+11972 Filename Length       0049 (73)\n+11974 Extra Length          0000 (0)\n+11976 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x11804: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x11976: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1184D PAYLOAD\n+119BF PAYLOAD\n \n-11AE3 LOCAL HEADER #98      04034B50 (67324752)\n-11AE7 Extract Zip Spec      14 (20) '2.0'\n-11AE8 Extract OS            00 (0) 'MS-DOS'\n-11AE9 General Purpose Flag  0800 (2048)\n+11C62 LOCAL HEADER #98      04034B50 (67324752)\n+11C66 Extract Zip Spec      14 (20) '2.0'\n+11C67 Extract OS            00 (0) 'MS-DOS'\n+11C68 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-11AEB Compression Method    0008 (8) 'Deflated'\n-11AED Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-11AF1 CRC                   5F4C893F (1598851391)\n-11AF5 Compressed Size       00000764 (1892)\n-11AF9 Uncompressed Size     000013B5 (5045)\n-11AFD Filename Length       0036 (54)\n-11AFF Extra Length          0000 (0)\n-11B01 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+11C6A Compression Method    0008 (8) 'Deflated'\n+11C6C Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+11C70 CRC                   E8016802 (3892406274)\n+11C74 Compressed Size       0000078B (1931)\n+11C78 Uncompressed Size     000013B5 (5045)\n+11C7C Filename Length       0036 (54)\n+11C7E Extra Length          0000 (0)\n+11C80 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x11B01: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x11C80: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-11B37 PAYLOAD\n+11CB6 PAYLOAD\n \n-1229B LOCAL HEADER #99      04034B50 (67324752)\n-1229F Extract Zip Spec      14 (20) '2.0'\n-122A0 Extract OS            00 (0) 'MS-DOS'\n-122A1 General Purpose Flag  0800 (2048)\n+12441 LOCAL HEADER #99      04034B50 (67324752)\n+12445 Extract Zip Spec      14 (20) '2.0'\n+12446 Extract OS            00 (0) 'MS-DOS'\n+12447 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-122A3 Compression Method    0008 (8) 'Deflated'\n-122A5 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-122A9 CRC                   746795EC (1952945644)\n-122AD Compressed Size       000002B6 (694)\n-122B1 Uncompressed Size     00000752 (1874)\n-122B5 Filename Length       0058 (88)\n-122B7 Extra Length          0000 (0)\n-122B9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+12449 Compression Method    0008 (8) 'Deflated'\n+1244B Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+1244F CRC                   6885B64A (1753593418)\n+12453 Compressed Size       000002BD (701)\n+12457 Uncompressed Size     00000752 (1874)\n+1245B Filename Length       0058 (88)\n+1245D Extra Length          0000 (0)\n+1245F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x122B9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1245F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-12311 PAYLOAD\n+124B7 PAYLOAD\n \n-125C7 LOCAL HEADER #100     04034B50 (67324752)\n-125CB Extract Zip Spec      14 (20) '2.0'\n-125CC Extract OS            00 (0) 'MS-DOS'\n-125CD General Purpose Flag  0800 (2048)\n+12774 LOCAL HEADER #100     04034B50 (67324752)\n+12778 Extract Zip Spec      14 (20) '2.0'\n+12779 Extract OS            00 (0) 'MS-DOS'\n+1277A General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-125CF Compression Method    0008 (8) 'Deflated'\n-125D1 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-125D5 CRC                   D8D02F36 (3637522230)\n-125D9 Compressed Size       0000030C (780)\n-125DD Uncompressed Size     0000084F (2127)\n-125E1 Filename Length       005B (91)\n-125E3 Extra Length          0000 (0)\n-125E5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1277C Compression Method    0008 (8) 'Deflated'\n+1277E Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+12782 CRC                   3C5A566B (1012553323)\n+12786 Compressed Size       00000319 (793)\n+1278A Uncompressed Size     0000084F (2127)\n+1278E Filename Length       005B (91)\n+12790 Extra Length          0000 (0)\n+12792 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x125E5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x12792: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-12640 PAYLOAD\n+127ED PAYLOAD\n \n-1294C LOCAL HEADER #101     04034B50 (67324752)\n-12950 Extract Zip Spec      14 (20) '2.0'\n-12951 Extract OS            00 (0) 'MS-DOS'\n-12952 General Purpose Flag  0800 (2048)\n+12B06 LOCAL HEADER #101     04034B50 (67324752)\n+12B0A Extract Zip Spec      14 (20) '2.0'\n+12B0B Extract OS            00 (0) 'MS-DOS'\n+12B0C General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-12954 Compression Method    0008 (8) 'Deflated'\n-12956 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-1295A CRC                   650EE0FC (1695473916)\n-1295E Compressed Size       000007F2 (2034)\n-12962 Uncompressed Size     000016FC (5884)\n-12966 Filename Length       003F (63)\n-12968 Extra Length          0000 (0)\n-1296A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+12B0E Compression Method    0008 (8) 'Deflated'\n+12B10 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+12B14 CRC                   3A65F954 (979761492)\n+12B18 Compressed Size       00000815 (2069)\n+12B1C Uncompressed Size     000016FC (5884)\n+12B20 Filename Length       003F (63)\n+12B22 Extra Length          0000 (0)\n+12B24 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1296A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x12B24: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-129A9 PAYLOAD\n+12B63 PAYLOAD\n \n-1319B LOCAL HEADER #102     04034B50 (67324752)\n-1319F Extract Zip Spec      14 (20) '2.0'\n-131A0 Extract OS            00 (0) 'MS-DOS'\n-131A1 General Purpose Flag  0800 (2048)\n+13378 LOCAL HEADER #102     04034B50 (67324752)\n+1337C Extract Zip Spec      14 (20) '2.0'\n+1337D Extract OS            00 (0) 'MS-DOS'\n+1337E General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-131A3 Compression Method    0008 (8) 'Deflated'\n-131A5 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-131A9 CRC                   95A69441 (2510722113)\n-131AD Compressed Size       00000401 (1025)\n-131B1 Uncompressed Size     00000A31 (2609)\n-131B5 Filename Length       003D (61)\n-131B7 Extra Length          0000 (0)\n-131B9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+13380 Compression Method    0008 (8) 'Deflated'\n+13382 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+13386 CRC                   66FAA47E (1727702142)\n+1338A Compressed Size       00000411 (1041)\n+1338E Uncompressed Size     00000A2E (2606)\n+13392 Filename Length       003D (61)\n+13394 Extra Length          0000 (0)\n+13396 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x131B9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x13396: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-131F6 PAYLOAD\n+133D3 PAYLOAD\n \n-135F7 LOCAL HEADER #103     04034B50 (67324752)\n-135FB Extract Zip Spec      14 (20) '2.0'\n-135FC Extract OS            00 (0) 'MS-DOS'\n-135FD General Purpose Flag  0800 (2048)\n+137E4 LOCAL HEADER #103     04034B50 (67324752)\n+137E8 Extract Zip Spec      14 (20) '2.0'\n+137E9 Extract OS            00 (0) 'MS-DOS'\n+137EA General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-135FF Compression Method    0008 (8) 'Deflated'\n-13601 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-13605 CRC                   FA045593 (4194588051)\n-13609 Compressed Size       00000347 (839)\n-1360D Uncompressed Size     00000822 (2082)\n-13611 Filename Length       005B (91)\n-13613 Extra Length          0000 (0)\n-13615 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+137EC Compression Method    0008 (8) 'Deflated'\n+137EE Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+137F2 CRC                   1836791F (406223135)\n+137F6 Compressed Size       0000034A (842)\n+137FA Uncompressed Size     00000822 (2082)\n+137FE Filename Length       005B (91)\n+13800 Extra Length          0000 (0)\n+13802 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x13615: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x13802: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-13670 PAYLOAD\n+1385D PAYLOAD\n \n-139B7 LOCAL HEADER #104     04034B50 (67324752)\n-139BB Extract Zip Spec      14 (20) '2.0'\n-139BC Extract OS            00 (0) 'MS-DOS'\n-139BD General Purpose Flag  0800 (2048)\n+13BA7 LOCAL HEADER #104     04034B50 (67324752)\n+13BAB Extract Zip Spec      14 (20) '2.0'\n+13BAC Extract OS            00 (0) 'MS-DOS'\n+13BAD General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-139BF Compression Method    0008 (8) 'Deflated'\n-139C1 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-139C5 CRC                   F379F16D (4084855149)\n-139C9 Compressed Size       0000039D (925)\n-139CD Uncompressed Size     000007C7 (1991)\n-139D1 Filename Length       0038 (56)\n-139D3 Extra Length          0000 (0)\n-139D5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+13BAF Compression Method    0008 (8) 'Deflated'\n+13BB1 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+13BB5 CRC                   24E9C6CA (619300554)\n+13BB9 Compressed Size       000003A1 (929)\n+13BBD Uncompressed Size     000007C7 (1991)\n+13BC1 Filename Length       0038 (56)\n+13BC3 Extra Length          0000 (0)\n+13BC5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x139D5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x13BC5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-13A0D PAYLOAD\n+13BFD PAYLOAD\n \n-13DAA LOCAL HEADER #105     04034B50 (67324752)\n-13DAE Extract Zip Spec      14 (20) '2.0'\n-13DAF Extract OS            00 (0) 'MS-DOS'\n-13DB0 General Purpose Flag  0800 (2048)\n+13F9E LOCAL HEADER #105     04034B50 (67324752)\n+13FA2 Extract Zip Spec      14 (20) '2.0'\n+13FA3 Extract OS            00 (0) 'MS-DOS'\n+13FA4 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-13DB2 Compression Method    0008 (8) 'Deflated'\n-13DB4 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-13DB8 CRC                   88ADB6B0 (2293085872)\n-13DBC Compressed Size       00000483 (1155)\n-13DC0 Uncompressed Size     00000AE8 (2792)\n-13DC4 Filename Length       0033 (51)\n-13DC6 Extra Length          0000 (0)\n-13DC8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+13FA6 Compression Method    0008 (8) 'Deflated'\n+13FA8 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+13FAC CRC                   528FA981 (1385146753)\n+13FB0 Compressed Size       00000498 (1176)\n+13FB4 Uncompressed Size     00000AE2 (2786)\n+13FB8 Filename Length       0033 (51)\n+13FBA Extra Length          0000 (0)\n+13FBC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x13DC8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x13FBC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-13DFB PAYLOAD\n+13FEF PAYLOAD\n \n-1427E LOCAL HEADER #106     04034B50 (67324752)\n-14282 Extract Zip Spec      14 (20) '2.0'\n-14283 Extract OS            00 (0) 'MS-DOS'\n-14284 General Purpose Flag  0800 (2048)\n+14487 LOCAL HEADER #106     04034B50 (67324752)\n+1448B Extract Zip Spec      14 (20) '2.0'\n+1448C Extract OS            00 (0) 'MS-DOS'\n+1448D General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-14286 Compression Method    0008 (8) 'Deflated'\n-14288 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-1428C CRC                   0EAC3ED9 (246169305)\n-14290 Compressed Size       00000247 (583)\n-14294 Uncompressed Size     00000540 (1344)\n-14298 Filename Length       0051 (81)\n-1429A Extra Length          0000 (0)\n-1429C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1448F Compression Method    0008 (8) 'Deflated'\n+14491 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+14495 CRC                   15D75F6D (366436205)\n+14499 Compressed Size       00000247 (583)\n+1449D Uncompressed Size     00000540 (1344)\n+144A1 Filename Length       0051 (81)\n+144A3 Extra Length          0000 (0)\n+144A5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1429C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x144A5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-142ED PAYLOAD\n+144F6 PAYLOAD\n \n-14534 LOCAL HEADER #107     04034B50 (67324752)\n-14538 Extract Zip Spec      14 (20) '2.0'\n-14539 Extract OS            00 (0) 'MS-DOS'\n-1453A General Purpose Flag  0800 (2048)\n+1473D LOCAL HEADER #107     04034B50 (67324752)\n+14741 Extract Zip Spec      14 (20) '2.0'\n+14742 Extract OS            00 (0) 'MS-DOS'\n+14743 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1453C Compression Method    0008 (8) 'Deflated'\n-1453E Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-14542 CRC                   F917B64C (4179080780)\n-14546 Compressed Size       000004F8 (1272)\n-1454A Uncompressed Size     00000D32 (3378)\n-1454E Filename Length       004B (75)\n-14550 Extra Length          0000 (0)\n-14552 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+14745 Compression Method    0008 (8) 'Deflated'\n+14747 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+1474B CRC                   4661EC65 (1180822629)\n+1474F Compressed Size       000004F8 (1272)\n+14753 Uncompressed Size     00000D32 (3378)\n+14757 Filename Length       004B (75)\n+14759 Extra Length          0000 (0)\n+1475B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x14552: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1475B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1459D PAYLOAD\n+147A6 PAYLOAD\n \n-14A95 LOCAL HEADER #108     04034B50 (67324752)\n-14A99 Extract Zip Spec      14 (20) '2.0'\n-14A9A Extract OS            00 (0) 'MS-DOS'\n-14A9B General Purpose Flag  0800 (2048)\n+14C9E LOCAL HEADER #108     04034B50 (67324752)\n+14CA2 Extract Zip Spec      14 (20) '2.0'\n+14CA3 Extract OS            00 (0) 'MS-DOS'\n+14CA4 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-14A9D Compression Method    0008 (8) 'Deflated'\n-14A9F Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-14AA3 CRC                   EA4A8A35 (3930753589)\n-14AA7 Compressed Size       00000605 (1541)\n-14AAB Uncompressed Size     00000F8E (3982)\n-14AAF Filename Length       0038 (56)\n-14AB1 Extra Length          0000 (0)\n-14AB3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+14CA6 Compression Method    0008 (8) 'Deflated'\n+14CA8 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+14CAC CRC                   A3928BCE (2744290254)\n+14CB0 Compressed Size       00000615 (1557)\n+14CB4 Uncompressed Size     00000F8E (3982)\n+14CB8 Filename Length       0038 (56)\n+14CBA Extra Length          0000 (0)\n+14CBC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x14AB3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x14CBC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-14AEB PAYLOAD\n+14CF4 PAYLOAD\n \n-150F0 LOCAL HEADER #109     04034B50 (67324752)\n-150F4 Extract Zip Spec      14 (20) '2.0'\n-150F5 Extract OS            00 (0) 'MS-DOS'\n-150F6 General Purpose Flag  0800 (2048)\n+15309 LOCAL HEADER #109     04034B50 (67324752)\n+1530D Extract Zip Spec      14 (20) '2.0'\n+1530E Extract OS            00 (0) 'MS-DOS'\n+1530F General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-150F8 Compression Method    0008 (8) 'Deflated'\n-150FA Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-150FE CRC                   EBB29269 (3954348649)\n-15102 Compressed Size       00000189 (393)\n-15106 Uncompressed Size     00000356 (854)\n-1510A Filename Length       0060 (96)\n-1510C Extra Length          0000 (0)\n-1510E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+15311 Compression Method    0008 (8) 'Deflated'\n+15313 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+15317 CRC                   6943170E (1766004494)\n+1531B Compressed Size       0000018F (399)\n+1531F Uncompressed Size     00000356 (854)\n+15323 Filename Length       0060 (96)\n+15325 Extra Length          0000 (0)\n+15327 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1510E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x15327: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1516E PAYLOAD\n+15387 PAYLOAD\n \n-152F7 LOCAL HEADER #110     04034B50 (67324752)\n-152FB Extract Zip Spec      14 (20) '2.0'\n-152FC Extract OS            00 (0) 'MS-DOS'\n-152FD General Purpose Flag  0800 (2048)\n+15516 LOCAL HEADER #110     04034B50 (67324752)\n+1551A Extract Zip Spec      14 (20) '2.0'\n+1551B Extract OS            00 (0) 'MS-DOS'\n+1551C General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-152FF Compression Method    0008 (8) 'Deflated'\n-15301 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-15305 CRC                   350155F3 (889279987)\n-15309 Compressed Size       00000319 (793)\n-1530D Uncompressed Size     0000068B (1675)\n-15311 Filename Length       003D (61)\n-15313 Extra Length          0000 (0)\n-15315 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1551E Compression Method    0008 (8) 'Deflated'\n+15520 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+15524 CRC                   B9E3821A (3118694938)\n+15528 Compressed Size       0000031F (799)\n+1552C Uncompressed Size     0000068B (1675)\n+15530 Filename Length       003D (61)\n+15532 Extra Length          0000 (0)\n+15534 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x15315: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x15534: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-15352 PAYLOAD\n+15571 PAYLOAD\n \n-1566B LOCAL HEADER #111     04034B50 (67324752)\n-1566F Extract Zip Spec      14 (20) '2.0'\n-15670 Extract OS            00 (0) 'MS-DOS'\n-15671 General Purpose Flag  0800 (2048)\n+15890 LOCAL HEADER #111     04034B50 (67324752)\n+15894 Extract Zip Spec      14 (20) '2.0'\n+15895 Extract OS            00 (0) 'MS-DOS'\n+15896 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-15673 Compression Method    0008 (8) 'Deflated'\n-15675 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-15679 CRC                   9418DDB4 (2484657588)\n-1567D Compressed Size       000001C8 (456)\n-15681 Uncompressed Size     00000411 (1041)\n-15685 Filename Length       0040 (64)\n-15687 Extra Length          0000 (0)\n-15689 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+15898 Compression Method    0008 (8) 'Deflated'\n+1589A Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+1589E CRC                   1D0FCAE9 (487574249)\n+158A2 Compressed Size       000001D0 (464)\n+158A6 Uncompressed Size     00000411 (1041)\n+158AA Filename Length       0040 (64)\n+158AC Extra Length          0000 (0)\n+158AE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x15689: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x158AE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-156C9 PAYLOAD\n+158EE PAYLOAD\n \n-15891 LOCAL HEADER #112     04034B50 (67324752)\n-15895 Extract Zip Spec      14 (20) '2.0'\n-15896 Extract OS            00 (0) 'MS-DOS'\n-15897 General Purpose Flag  0800 (2048)\n+15ABE LOCAL HEADER #112     04034B50 (67324752)\n+15AC2 Extract Zip Spec      14 (20) '2.0'\n+15AC3 Extract OS            00 (0) 'MS-DOS'\n+15AC4 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-15899 Compression Method    0008 (8) 'Deflated'\n-1589B Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-1589F CRC                   CA7E6088 (3397279880)\n-158A3 Compressed Size       0000065C (1628)\n-158A7 Uncompressed Size     000010DD (4317)\n-158AB Filename Length       0030 (48)\n-158AD Extra Length          0000 (0)\n-158AF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+15AC6 Compression Method    0008 (8) 'Deflated'\n+15AC8 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+15ACC CRC                   B9B8CEE2 (3115896546)\n+15AD0 Compressed Size       00000674 (1652)\n+15AD4 Uncompressed Size     000010DD (4317)\n+15AD8 Filename Length       0030 (48)\n+15ADA Extra Length          0000 (0)\n+15ADC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x158AF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x15ADC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-158DF PAYLOAD\n+15B0C PAYLOAD\n \n-15F3B LOCAL HEADER #113     04034B50 (67324752)\n-15F3F Extract Zip Spec      14 (20) '2.0'\n-15F40 Extract OS            00 (0) 'MS-DOS'\n-15F41 General Purpose Flag  0800 (2048)\n+16180 LOCAL HEADER #113     04034B50 (67324752)\n+16184 Extract Zip Spec      14 (20) '2.0'\n+16185 Extract OS            00 (0) 'MS-DOS'\n+16186 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-15F43 Compression Method    0008 (8) 'Deflated'\n-15F45 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-15F49 CRC                   452F6D91 (1160736145)\n-15F4D Compressed Size       00000AFF (2815)\n-15F51 Uncompressed Size     00001C1F (7199)\n-15F55 Filename Length       0034 (52)\n-15F57 Extra Length          0000 (0)\n-15F59 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+16188 Compression Method    0008 (8) 'Deflated'\n+1618A Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+1618E CRC                   629F1B01 (1654594305)\n+16192 Compressed Size       00000B1E (2846)\n+16196 Uncompressed Size     00001C1F (7199)\n+1619A Filename Length       0034 (52)\n+1619C Extra Length          0000 (0)\n+1619E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x15F59: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1619E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-15F8D PAYLOAD\n+161D2 PAYLOAD\n \n-16A8C LOCAL HEADER #114     04034B50 (67324752)\n-16A90 Extract Zip Spec      14 (20) '2.0'\n-16A91 Extract OS            00 (0) 'MS-DOS'\n-16A92 General Purpose Flag  0800 (2048)\n+16CF0 LOCAL HEADER #114     04034B50 (67324752)\n+16CF4 Extract Zip Spec      14 (20) '2.0'\n+16CF5 Extract OS            00 (0) 'MS-DOS'\n+16CF6 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-16A94 Compression Method    0008 (8) 'Deflated'\n-16A96 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-16A9A CRC                   596C85E3 (1500284387)\n-16A9E Compressed Size       000005DD (1501)\n-16AA2 Uncompressed Size     00000E7F (3711)\n-16AA6 Filename Length       002C (44)\n-16AA8 Extra Length          0000 (0)\n-16AAA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+16CF8 Compression Method    0008 (8) 'Deflated'\n+16CFA Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+16CFE CRC                   CE6B5057 (3463139415)\n+16D02 Compressed Size       000005E6 (1510)\n+16D06 Uncompressed Size     00000E7F (3711)\n+16D0A Filename Length       002C (44)\n+16D0C Extra Length          0000 (0)\n+16D0E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x16AAA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x16D0E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-16AD6 PAYLOAD\n+16D3A PAYLOAD\n \n-170B3 LOCAL HEADER #115     04034B50 (67324752)\n-170B7 Extract Zip Spec      14 (20) '2.0'\n-170B8 Extract OS            00 (0) 'MS-DOS'\n-170B9 General Purpose Flag  0800 (2048)\n+17320 LOCAL HEADER #115     04034B50 (67324752)\n+17324 Extract Zip Spec      14 (20) '2.0'\n+17325 Extract OS            00 (0) 'MS-DOS'\n+17326 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-170BB Compression Method    0008 (8) 'Deflated'\n-170BD Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-170C1 CRC                   A057B335 (2690102069)\n-170C5 Compressed Size       0000019B (411)\n-170C9 Uncompressed Size     0000031C (796)\n-170CD Filename Length       005C (92)\n-170CF Extra Length          0000 (0)\n-170D1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+17328 Compression Method    0008 (8) 'Deflated'\n+1732A Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+1732E CRC                   C2DA5AAE (3269089966)\n+17332 Compressed Size       0000019E (414)\n+17336 Uncompressed Size     0000031C (796)\n+1733A Filename Length       005C (92)\n+1733C Extra Length          0000 (0)\n+1733E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x170D1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1733E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1712D PAYLOAD\n+1739A PAYLOAD\n \n-172C8 LOCAL HEADER #116     04034B50 (67324752)\n-172CC Extract Zip Spec      14 (20) '2.0'\n-172CD Extract OS            00 (0) 'MS-DOS'\n-172CE General Purpose Flag  0800 (2048)\n+17538 LOCAL HEADER #116     04034B50 (67324752)\n+1753C Extract Zip Spec      14 (20) '2.0'\n+1753D Extract OS            00 (0) 'MS-DOS'\n+1753E General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-172D0 Compression Method    0008 (8) 'Deflated'\n-172D2 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-172D6 CRC                   6321A4B6 (1663149238)\n-172DA Compressed Size       00000194 (404)\n-172DE Uncompressed Size     0000030E (782)\n-172E2 Filename Length       0058 (88)\n-172E4 Extra Length          0000 (0)\n-172E6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+17540 Compression Method    0008 (8) 'Deflated'\n+17542 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+17546 CRC                   F511A1A1 (4111573409)\n+1754A Compressed Size       00000198 (408)\n+1754E Uncompressed Size     0000030E (782)\n+17552 Filename Length       0058 (88)\n+17554 Extra Length          0000 (0)\n+17556 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x172E6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x17556: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1733E PAYLOAD\n+175AE PAYLOAD\n \n-174D2 LOCAL HEADER #117     04034B50 (67324752)\n-174D6 Extract Zip Spec      14 (20) '2.0'\n-174D7 Extract OS            00 (0) 'MS-DOS'\n-174D8 General Purpose Flag  0800 (2048)\n+17746 LOCAL HEADER #117     04034B50 (67324752)\n+1774A Extract Zip Spec      14 (20) '2.0'\n+1774B Extract OS            00 (0) 'MS-DOS'\n+1774C General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-174DA Compression Method    0008 (8) 'Deflated'\n-174DC Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-174E0 CRC                   61507D51 (1632664913)\n-174E4 Compressed Size       00000558 (1368)\n-174E8 Uncompressed Size     00000E4B (3659)\n-174EC Filename Length       004F (79)\n-174EE Extra Length          0000 (0)\n-174F0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1774E Compression Method    0008 (8) 'Deflated'\n+17750 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+17754 CRC                   5CF570C5 (1559589061)\n+17758 Compressed Size       0000056B (1387)\n+1775C Uncompressed Size     00000E4B (3659)\n+17760 Filename Length       004F (79)\n+17762 Extra Length          0000 (0)\n+17764 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x174F0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x17764: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1753F PAYLOAD\n+177B3 PAYLOAD\n \n-17A97 LOCAL HEADER #118     04034B50 (67324752)\n-17A9B Extract Zip Spec      14 (20) '2.0'\n-17A9C Extract OS            00 (0) 'MS-DOS'\n-17A9D General Purpose Flag  0800 (2048)\n+17D1E LOCAL HEADER #118     04034B50 (67324752)\n+17D22 Extract Zip Spec      14 (20) '2.0'\n+17D23 Extract OS            00 (0) 'MS-DOS'\n+17D24 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-17A9F Compression Method    0008 (8) 'Deflated'\n-17AA1 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-17AA5 CRC                   5344292B (1396975915)\n-17AA9 Compressed Size       000001B7 (439)\n-17AAD Uncompressed Size     000003A3 (931)\n-17AB1 Filename Length       0053 (83)\n-17AB3 Extra Length          0000 (0)\n-17AB5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+17D26 Compression Method    0008 (8) 'Deflated'\n+17D28 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+17D2C CRC                   4D0E0F19 (1292767001)\n+17D30 Compressed Size       000001B9 (441)\n+17D34 Uncompressed Size     000003A3 (931)\n+17D38 Filename Length       0053 (83)\n+17D3A Extra Length          0000 (0)\n+17D3C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x17AB5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x17D3C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-17B08 PAYLOAD\n+17D8F PAYLOAD\n \n-17CBF LOCAL HEADER #119     04034B50 (67324752)\n-17CC3 Extract Zip Spec      14 (20) '2.0'\n-17CC4 Extract OS            00 (0) 'MS-DOS'\n-17CC5 General Purpose Flag  0800 (2048)\n+17F48 LOCAL HEADER #119     04034B50 (67324752)\n+17F4C Extract Zip Spec      14 (20) '2.0'\n+17F4D Extract OS            00 (0) 'MS-DOS'\n+17F4E General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-17CC7 Compression Method    0008 (8) 'Deflated'\n-17CC9 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-17CCD CRC                   D63BC3A1 (3594240929)\n-17CD1 Compressed Size       0000027C (636)\n-17CD5 Uncompressed Size     00000641 (1601)\n-17CD9 Filename Length       0059 (89)\n-17CDB Extra Length          0000 (0)\n-17CDD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+17F50 Compression Method    0008 (8) 'Deflated'\n+17F52 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+17F56 CRC                   C8A5CF53 (3366309715)\n+17F5A Compressed Size       0000027E (638)\n+17F5E Uncompressed Size     00000641 (1601)\n+17F62 Filename Length       0059 (89)\n+17F64 Extra Length          0000 (0)\n+17F66 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x17CDD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x17F66: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-17D36 PAYLOAD\n+17FBF PAYLOAD\n \n-17FB2 LOCAL HEADER #120     04034B50 (67324752)\n-17FB6 Extract Zip Spec      14 (20) '2.0'\n-17FB7 Extract OS            00 (0) 'MS-DOS'\n-17FB8 General Purpose Flag  0800 (2048)\n+1823D LOCAL HEADER #120     04034B50 (67324752)\n+18241 Extract Zip Spec      14 (20) '2.0'\n+18242 Extract OS            00 (0) 'MS-DOS'\n+18243 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-17FBA Compression Method    0008 (8) 'Deflated'\n-17FBC Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-17FC0 CRC                   8B797A98 (2339994264)\n-17FC4 Compressed Size       0000028E (654)\n-17FC8 Uncompressed Size     00000724 (1828)\n-17FCC Filename Length       0059 (89)\n-17FCE Extra Length          0000 (0)\n-17FD0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+18245 Compression Method    0008 (8) 'Deflated'\n+18247 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+1824B CRC                   AFFC006A (2952527978)\n+1824F Compressed Size       00000291 (657)\n+18253 Uncompressed Size     00000724 (1828)\n+18257 Filename Length       0059 (89)\n+18259 Extra Length          0000 (0)\n+1825B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x17FD0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1825B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-18029 PAYLOAD\n+182B4 PAYLOAD\n \n-182B7 LOCAL HEADER #121     04034B50 (67324752)\n-182BB Extract Zip Spec      14 (20) '2.0'\n-182BC Extract OS            00 (0) 'MS-DOS'\n-182BD General Purpose Flag  0800 (2048)\n+18545 LOCAL HEADER #121     04034B50 (67324752)\n+18549 Extract Zip Spec      14 (20) '2.0'\n+1854A Extract OS            00 (0) 'MS-DOS'\n+1854B General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-182BF Compression Method    0008 (8) 'Deflated'\n-182C1 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-182C5 CRC                   CD48F380 (3444110208)\n-182C9 Compressed Size       00000517 (1303)\n-182CD Uncompressed Size     00000E9A (3738)\n-182D1 Filename Length       004A (74)\n-182D3 Extra Length          0000 (0)\n-182D5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1854D Compression Method    0008 (8) 'Deflated'\n+1854F Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+18553 CRC                   D2854DE7 (3531951591)\n+18557 Compressed Size       00000524 (1316)\n+1855B Uncompressed Size     00000E9A (3738)\n+1855F Filename Length       004A (74)\n+18561 Extra Length          0000 (0)\n+18563 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x182D5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x18563: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1831F PAYLOAD\n+185AD PAYLOAD\n \n-18836 LOCAL HEADER #122     04034B50 (67324752)\n-1883A Extract Zip Spec      14 (20) '2.0'\n-1883B Extract OS            00 (0) 'MS-DOS'\n-1883C General Purpose Flag  0800 (2048)\n+18AD1 LOCAL HEADER #122     04034B50 (67324752)\n+18AD5 Extract Zip Spec      14 (20) '2.0'\n+18AD6 Extract OS            00 (0) 'MS-DOS'\n+18AD7 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1883E Compression Method    0008 (8) 'Deflated'\n-18840 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-18844 CRC                   D7917B4D (3616635725)\n-18848 Compressed Size       00000192 (402)\n-1884C Uncompressed Size     00000378 (888)\n-18850 Filename Length       0048 (72)\n-18852 Extra Length          0000 (0)\n-18854 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+18AD9 Compression Method    0008 (8) 'Deflated'\n+18ADB Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+18ADF CRC                   E773172B (3883079467)\n+18AE3 Compressed Size       00000198 (408)\n+18AE7 Uncompressed Size     00000378 (888)\n+18AEB Filename Length       0048 (72)\n+18AED Extra Length          0000 (0)\n+18AEF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x18854: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x18AEF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1889C PAYLOAD\n+18B37 PAYLOAD\n \n-18A2E LOCAL HEADER #123     04034B50 (67324752)\n-18A32 Extract Zip Spec      14 (20) '2.0'\n-18A33 Extract OS            00 (0) 'MS-DOS'\n-18A34 General Purpose Flag  0800 (2048)\n+18CCF LOCAL HEADER #123     04034B50 (67324752)\n+18CD3 Extract Zip Spec      14 (20) '2.0'\n+18CD4 Extract OS            00 (0) 'MS-DOS'\n+18CD5 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-18A36 Compression Method    0008 (8) 'Deflated'\n-18A38 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-18A3C CRC                   600A507A (1611288698)\n-18A40 Compressed Size       00000266 (614)\n-18A44 Uncompressed Size     0000052C (1324)\n-18A48 Filename Length       0036 (54)\n-18A4A Extra Length          0000 (0)\n-18A4C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+18CD7 Compression Method    0008 (8) 'Deflated'\n+18CD9 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+18CDD CRC                   C301E408 (3271681032)\n+18CE1 Compressed Size       00000262 (610)\n+18CE5 Uncompressed Size     0000052C (1324)\n+18CE9 Filename Length       0036 (54)\n+18CEB Extra Length          0000 (0)\n+18CED Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x18A4C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x18CED: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-18A82 PAYLOAD\n+18D23 PAYLOAD\n \n-18CE8 LOCAL HEADER #124     04034B50 (67324752)\n-18CEC Extract Zip Spec      14 (20) '2.0'\n-18CED Extract OS            00 (0) 'MS-DOS'\n-18CEE General Purpose Flag  0800 (2048)\n+18F85 LOCAL HEADER #124     04034B50 (67324752)\n+18F89 Extract Zip Spec      14 (20) '2.0'\n+18F8A Extract OS            00 (0) 'MS-DOS'\n+18F8B General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-18CF0 Compression Method    0008 (8) 'Deflated'\n-18CF2 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-18CF6 CRC                   C5569DA0 (3310788000)\n-18CFA Compressed Size       00000260 (608)\n-18CFE Uncompressed Size     000005F9 (1529)\n-18D02 Filename Length       004E (78)\n-18D04 Extra Length          0000 (0)\n-18D06 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+18F8D Compression Method    0008 (8) 'Deflated'\n+18F8F Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+18F93 CRC                   9791011C (2542862620)\n+18F97 Compressed Size       0000026B (619)\n+18F9B Uncompressed Size     000005F9 (1529)\n+18F9F Filename Length       004E (78)\n+18FA1 Extra Length          0000 (0)\n+18FA3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x18D06: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x18FA3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-18D54 PAYLOAD\n+18FF1 PAYLOAD\n \n-18FB4 LOCAL HEADER #125     04034B50 (67324752)\n-18FB8 Extract Zip Spec      14 (20) '2.0'\n-18FB9 Extract OS            00 (0) 'MS-DOS'\n-18FBA General Purpose Flag  0800 (2048)\n+1925C LOCAL HEADER #125     04034B50 (67324752)\n+19260 Extract Zip Spec      14 (20) '2.0'\n+19261 Extract OS            00 (0) 'MS-DOS'\n+19262 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-18FBC Compression Method    0008 (8) 'Deflated'\n-18FBE Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-18FC2 CRC                   E1939228 (3784544808)\n-18FC6 Compressed Size       000001FE (510)\n-18FCA Uncompressed Size     0000050F (1295)\n-18FCE Filename Length       005A (90)\n-18FD0 Extra Length          0000 (0)\n-18FD2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+19264 Compression Method    0008 (8) 'Deflated'\n+19266 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+1926A CRC                   9CD13806 (2630957062)\n+1926E Compressed Size       000001FE (510)\n+19272 Uncompressed Size     0000050F (1295)\n+19276 Filename Length       005A (90)\n+19278 Extra Length          0000 (0)\n+1927A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x18FD2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1927A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1902C PAYLOAD\n+192D4 PAYLOAD\n \n-1922A LOCAL HEADER #126     04034B50 (67324752)\n-1922E Extract Zip Spec      14 (20) '2.0'\n-1922F Extract OS            00 (0) 'MS-DOS'\n-19230 General Purpose Flag  0800 (2048)\n+194D2 LOCAL HEADER #126     04034B50 (67324752)\n+194D6 Extract Zip Spec      14 (20) '2.0'\n+194D7 Extract OS            00 (0) 'MS-DOS'\n+194D8 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-19232 Compression Method    0008 (8) 'Deflated'\n-19234 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-19238 CRC                   77632724 (2002986788)\n-1923C Compressed Size       000002DD (733)\n-19240 Uncompressed Size     00000705 (1797)\n-19244 Filename Length       003F (63)\n-19246 Extra Length          0000 (0)\n-19248 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+194DA Compression Method    0008 (8) 'Deflated'\n+194DC Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+194E0 CRC                   D5104923 (3574614307)\n+194E4 Compressed Size       000002DF (735)\n+194E8 Uncompressed Size     00000705 (1797)\n+194EC Filename Length       003F (63)\n+194EE Extra Length          0000 (0)\n+194F0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x19248: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x194F0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-19287 PAYLOAD\n+1952F PAYLOAD\n \n-19564 LOCAL HEADER #127     04034B50 (67324752)\n-19568 Extract Zip Spec      14 (20) '2.0'\n-19569 Extract OS            00 (0) 'MS-DOS'\n-1956A General Purpose Flag  0800 (2048)\n+1980E LOCAL HEADER #127     04034B50 (67324752)\n+19812 Extract Zip Spec      14 (20) '2.0'\n+19813 Extract OS            00 (0) 'MS-DOS'\n+19814 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1956C Compression Method    0008 (8) 'Deflated'\n-1956E Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-19572 CRC                   AC6ACD6D (2892680557)\n-19576 Compressed Size       00000189 (393)\n-1957A Uncompressed Size     00000352 (850)\n-1957E Filename Length       005F (95)\n-19580 Extra Length          0000 (0)\n-19582 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+19816 Compression Method    0008 (8) 'Deflated'\n+19818 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+1981C CRC                   D020F6E1 (3491821281)\n+19820 Compressed Size       0000018A (394)\n+19824 Uncompressed Size     00000352 (850)\n+19828 Filename Length       005F (95)\n+1982A Extra Length          0000 (0)\n+1982C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x19582: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1982C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-195E1 PAYLOAD\n+1988B PAYLOAD\n \n-1976A LOCAL HEADER #128     04034B50 (67324752)\n-1976E Extract Zip Spec      14 (20) '2.0'\n-1976F Extract OS            00 (0) 'MS-DOS'\n-19770 General Purpose Flag  0800 (2048)\n+19A15 LOCAL HEADER #128     04034B50 (67324752)\n+19A19 Extract Zip Spec      14 (20) '2.0'\n+19A1A Extract OS            00 (0) 'MS-DOS'\n+19A1B General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-19772 Compression Method    0008 (8) 'Deflated'\n-19774 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-19778 CRC                   D0202B76 (3491769206)\n-1977C Compressed Size       000002A0 (672)\n-19780 Uncompressed Size     000005A8 (1448)\n-19784 Filename Length       003C (60)\n-19786 Extra Length          0000 (0)\n-19788 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+19A1D Compression Method    0008 (8) 'Deflated'\n+19A1F Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+19A23 CRC                   622C2643 (1647060547)\n+19A27 Compressed Size       000002A3 (675)\n+19A2B Uncompressed Size     000005A8 (1448)\n+19A2F Filename Length       003C (60)\n+19A31 Extra Length          0000 (0)\n+19A33 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x19788: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x19A33: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-197C4 PAYLOAD\n+19A6F PAYLOAD\n \n-19A64 LOCAL HEADER #129     04034B50 (67324752)\n-19A68 Extract Zip Spec      14 (20) '2.0'\n-19A69 Extract OS            00 (0) 'MS-DOS'\n-19A6A General Purpose Flag  0800 (2048)\n+19D12 LOCAL HEADER #129     04034B50 (67324752)\n+19D16 Extract Zip Spec      14 (20) '2.0'\n+19D17 Extract OS            00 (0) 'MS-DOS'\n+19D18 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-19A6C Compression Method    0008 (8) 'Deflated'\n-19A6E Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-19A72 CRC                   A279CE5F (2725891679)\n-19A76 Compressed Size       0000025C (604)\n-19A7A Uncompressed Size     000006A4 (1700)\n-19A7E Filename Length       004E (78)\n-19A80 Extra Length          0000 (0)\n-19A82 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+19D1A Compression Method    0008 (8) 'Deflated'\n+19D1C Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+19D20 CRC                   050EDC10 (84859920)\n+19D24 Compressed Size       00000267 (615)\n+19D28 Uncompressed Size     000006A4 (1700)\n+19D2C Filename Length       004E (78)\n+19D2E Extra Length          0000 (0)\n+19D30 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x19A82: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x19D30: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-19AD0 PAYLOAD\n+19D7E PAYLOAD\n \n-19D2C LOCAL HEADER #130     04034B50 (67324752)\n-19D30 Extract Zip Spec      14 (20) '2.0'\n-19D31 Extract OS            00 (0) 'MS-DOS'\n-19D32 General Purpose Flag  0800 (2048)\n+19FE5 LOCAL HEADER #130     04034B50 (67324752)\n+19FE9 Extract Zip Spec      14 (20) '2.0'\n+19FEA Extract OS            00 (0) 'MS-DOS'\n+19FEB General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-19D34 Compression Method    0008 (8) 'Deflated'\n-19D36 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-19D3A CRC                   613E6E33 (1631481395)\n-19D3E Compressed Size       00000378 (888)\n-19D42 Uncompressed Size     000009FC (2556)\n-19D46 Filename Length       003A (58)\n-19D48 Extra Length          0000 (0)\n-19D4A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+19FED Compression Method    0008 (8) 'Deflated'\n+19FEF Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+19FF3 CRC                   ED6F5732 (3983497010)\n+19FF7 Compressed Size       00000373 (883)\n+19FFB Uncompressed Size     000009FC (2556)\n+19FFF Filename Length       003A (58)\n+1A001 Extra Length          0000 (0)\n+1A003 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x19D4A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1A003: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-19D84 PAYLOAD\n+1A03D PAYLOAD\n \n-1A0FC LOCAL HEADER #131     04034B50 (67324752)\n-1A100 Extract Zip Spec      14 (20) '2.0'\n-1A101 Extract OS            00 (0) 'MS-DOS'\n-1A102 General Purpose Flag  0800 (2048)\n+1A3B0 LOCAL HEADER #131     04034B50 (67324752)\n+1A3B4 Extract Zip Spec      14 (20) '2.0'\n+1A3B5 Extract OS            00 (0) 'MS-DOS'\n+1A3B6 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1A104 Compression Method    0008 (8) 'Deflated'\n-1A106 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-1A10A CRC                   D6376E48 (3593956936)\n-1A10E Compressed Size       000004BB (1211)\n-1A112 Uncompressed Size     00000A59 (2649)\n-1A116 Filename Length       0035 (53)\n-1A118 Extra Length          0000 (0)\n-1A11A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1A3B8 Compression Method    0008 (8) 'Deflated'\n+1A3BA Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+1A3BE CRC                   88B5410C (2293580044)\n+1A3C2 Compressed Size       000004C3 (1219)\n+1A3C6 Uncompressed Size     00000A59 (2649)\n+1A3CA Filename Length       0035 (53)\n+1A3CC Extra Length          0000 (0)\n+1A3CE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1A11A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1A3CE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1A14F PAYLOAD\n+1A403 PAYLOAD\n \n-1A60A LOCAL HEADER #132     04034B50 (67324752)\n-1A60E Extract Zip Spec      14 (20) '2.0'\n-1A60F Extract OS            00 (0) 'MS-DOS'\n-1A610 General Purpose Flag  0800 (2048)\n+1A8C6 LOCAL HEADER #132     04034B50 (67324752)\n+1A8CA Extract Zip Spec      14 (20) '2.0'\n+1A8CB Extract OS            00 (0) 'MS-DOS'\n+1A8CC General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1A612 Compression Method    0008 (8) 'Deflated'\n-1A614 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-1A618 CRC                   0F4D3699 (256718489)\n-1A61C Compressed Size       0000060E (1550)\n-1A620 Uncompressed Size     00001009 (4105)\n-1A624 Filename Length       002F (47)\n-1A626 Extra Length          0000 (0)\n-1A628 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1A8CE Compression Method    0008 (8) 'Deflated'\n+1A8D0 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+1A8D4 CRC                   174CA276 (390898294)\n+1A8D8 Compressed Size       0000061B (1563)\n+1A8DC Uncompressed Size     00001009 (4105)\n+1A8E0 Filename Length       002F (47)\n+1A8E2 Extra Length          0000 (0)\n+1A8E4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1A628: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1A8E4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1A657 PAYLOAD\n+1A913 PAYLOAD\n \n-1AC65 LOCAL HEADER #133     04034B50 (67324752)\n-1AC69 Extract Zip Spec      14 (20) '2.0'\n-1AC6A Extract OS            00 (0) 'MS-DOS'\n-1AC6B General Purpose Flag  0800 (2048)\n+1AF2E LOCAL HEADER #133     04034B50 (67324752)\n+1AF32 Extract Zip Spec      14 (20) '2.0'\n+1AF33 Extract OS            00 (0) 'MS-DOS'\n+1AF34 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1AC6D Compression Method    0008 (8) 'Deflated'\n-1AC6F Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-1AC73 CRC                   3F113771 (1058092913)\n-1AC77 Compressed Size       000004EC (1260)\n-1AC7B Uncompressed Size     00000C43 (3139)\n-1AC7F Filename Length       0031 (49)\n-1AC81 Extra Length          0000 (0)\n-1AC83 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1AF36 Compression Method    0008 (8) 'Deflated'\n+1AF38 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+1AF3C CRC                   94B09EEF (2494602991)\n+1AF40 Compressed Size       00000501 (1281)\n+1AF44 Uncompressed Size     00000C43 (3139)\n+1AF48 Filename Length       0031 (49)\n+1AF4A Extra Length          0000 (0)\n+1AF4C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1AC83: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1AF4C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1ACB4 PAYLOAD\n+1AF7D PAYLOAD\n \n-1B1A0 LOCAL HEADER #134     04034B50 (67324752)\n-1B1A4 Extract Zip Spec      14 (20) '2.0'\n-1B1A5 Extract OS            00 (0) 'MS-DOS'\n-1B1A6 General Purpose Flag  0800 (2048)\n+1B47E LOCAL HEADER #134     04034B50 (67324752)\n+1B482 Extract Zip Spec      14 (20) '2.0'\n+1B483 Extract OS            00 (0) 'MS-DOS'\n+1B484 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1B1A8 Compression Method    0008 (8) 'Deflated'\n-1B1AA Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-1B1AE CRC                   2E68E6C9 (778626761)\n-1B1B2 Compressed Size       0000023B (571)\n-1B1B6 Uncompressed Size     00000533 (1331)\n-1B1BA Filename Length       0045 (69)\n-1B1BC Extra Length          0000 (0)\n-1B1BE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1B486 Compression Method    0008 (8) 'Deflated'\n+1B488 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+1B48C CRC                   6122871F (1629652767)\n+1B490 Compressed Size       00000238 (568)\n+1B494 Uncompressed Size     00000533 (1331)\n+1B498 Filename Length       0045 (69)\n+1B49A Extra Length          0000 (0)\n+1B49C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1B1BE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1B49C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1B203 PAYLOAD\n+1B4E1 PAYLOAD\n \n-1B43E LOCAL HEADER #135     04034B50 (67324752)\n-1B442 Extract Zip Spec      14 (20) '2.0'\n-1B443 Extract OS            00 (0) 'MS-DOS'\n-1B444 General Purpose Flag  0800 (2048)\n+1B719 LOCAL HEADER #135     04034B50 (67324752)\n+1B71D Extract Zip Spec      14 (20) '2.0'\n+1B71E Extract OS            00 (0) 'MS-DOS'\n+1B71F General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1B446 Compression Method    0008 (8) 'Deflated'\n-1B448 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-1B44C CRC                   9F0AD1AC (2668286380)\n-1B450 Compressed Size       00000332 (818)\n-1B454 Uncompressed Size     000007CA (1994)\n-1B458 Filename Length       0034 (52)\n-1B45A Extra Length          0000 (0)\n-1B45C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1B721 Compression Method    0008 (8) 'Deflated'\n+1B723 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+1B727 CRC                   282A38DD (673855709)\n+1B72B Compressed Size       00000340 (832)\n+1B72F Uncompressed Size     000007CA (1994)\n+1B733 Filename Length       0034 (52)\n+1B735 Extra Length          0000 (0)\n+1B737 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1B45C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1B737: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1B490 PAYLOAD\n+1B76B PAYLOAD\n \n-1B7C2 LOCAL HEADER #136     04034B50 (67324752)\n-1B7C6 Extract Zip Spec      14 (20) '2.0'\n-1B7C7 Extract OS            00 (0) 'MS-DOS'\n-1B7C8 General Purpose Flag  0800 (2048)\n+1BAAB LOCAL HEADER #136     04034B50 (67324752)\n+1BAAF Extract Zip Spec      14 (20) '2.0'\n+1BAB0 Extract OS            00 (0) 'MS-DOS'\n+1BAB1 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1B7CA Compression Method    0008 (8) 'Deflated'\n-1B7CC Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-1B7D0 CRC                   48D2ABAE (1221766062)\n-1B7D4 Compressed Size       00000357 (855)\n-1B7D8 Uncompressed Size     000008AA (2218)\n-1B7DC Filename Length       004D (77)\n-1B7DE Extra Length          0000 (0)\n-1B7E0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1BAB3 Compression Method    0008 (8) 'Deflated'\n+1BAB5 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+1BAB9 CRC                   FF2E8B5A (4281240410)\n+1BABD Compressed Size       00000357 (855)\n+1BAC1 Uncompressed Size     000008AA (2218)\n+1BAC5 Filename Length       004D (77)\n+1BAC7 Extra Length          0000 (0)\n+1BAC9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1B7E0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1BAC9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1B82D PAYLOAD\n+1BB16 PAYLOAD\n \n-1BB84 LOCAL HEADER #137     04034B50 (67324752)\n-1BB88 Extract Zip Spec      14 (20) '2.0'\n-1BB89 Extract OS            00 (0) 'MS-DOS'\n-1BB8A General Purpose Flag  0800 (2048)\n+1BE6D LOCAL HEADER #137     04034B50 (67324752)\n+1BE71 Extract Zip Spec      14 (20) '2.0'\n+1BE72 Extract OS            00 (0) 'MS-DOS'\n+1BE73 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1BB8C Compression Method    0008 (8) 'Deflated'\n-1BB8E Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-1BB92 CRC                   9191EC6F (2442259567)\n-1BB96 Compressed Size       0000041C (1052)\n-1BB9A Uncompressed Size     00000AD0 (2768)\n-1BB9E Filename Length       004B (75)\n-1BBA0 Extra Length          0000 (0)\n-1BBA2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1BE75 Compression Method    0008 (8) 'Deflated'\n+1BE77 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+1BE7B CRC                   F19E88D6 (4053698774)\n+1BE7F Compressed Size       00000425 (1061)\n+1BE83 Uncompressed Size     00000AD0 (2768)\n+1BE87 Filename Length       004B (75)\n+1BE89 Extra Length          0000 (0)\n+1BE8B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1BBA2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1BE8B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1BBED PAYLOAD\n+1BED6 PAYLOAD\n \n-1C009 LOCAL HEADER #138     04034B50 (67324752)\n-1C00D Extract Zip Spec      14 (20) '2.0'\n-1C00E Extract OS            00 (0) 'MS-DOS'\n-1C00F General Purpose Flag  0800 (2048)\n+1C2FB LOCAL HEADER #138     04034B50 (67324752)\n+1C2FF Extract Zip Spec      14 (20) '2.0'\n+1C300 Extract OS            00 (0) 'MS-DOS'\n+1C301 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1C011 Compression Method    0008 (8) 'Deflated'\n-1C013 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-1C017 CRC                   8B599C06 (2337905670)\n-1C01B Compressed Size       000001F7 (503)\n-1C01F Uncompressed Size     0000048C (1164)\n-1C023 Filename Length       004C (76)\n-1C025 Extra Length          0000 (0)\n-1C027 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1C303 Compression Method    0008 (8) 'Deflated'\n+1C305 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+1C309 CRC                   194A0EFC (424283900)\n+1C30D Compressed Size       000001FA (506)\n+1C311 Uncompressed Size     0000048C (1164)\n+1C315 Filename Length       004C (76)\n+1C317 Extra Length          0000 (0)\n+1C319 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1C027: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1C319: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1C073 PAYLOAD\n+1C365 PAYLOAD\n \n-1C26A LOCAL HEADER #139     04034B50 (67324752)\n-1C26E Extract Zip Spec      14 (20) '2.0'\n-1C26F Extract OS            00 (0) 'MS-DOS'\n-1C270 General Purpose Flag  0800 (2048)\n+1C55F LOCAL HEADER #139     04034B50 (67324752)\n+1C563 Extract Zip Spec      14 (20) '2.0'\n+1C564 Extract OS            00 (0) 'MS-DOS'\n+1C565 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1C272 Compression Method    0008 (8) 'Deflated'\n-1C274 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-1C278 CRC                   85BB0A54 (2243627604)\n-1C27C Compressed Size       000001FA (506)\n-1C280 Uncompressed Size     00000488 (1160)\n-1C284 Filename Length       004C (76)\n-1C286 Extra Length          0000 (0)\n-1C288 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1C567 Compression Method    0008 (8) 'Deflated'\n+1C569 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+1C56D CRC                   38071647 (939988551)\n+1C571 Compressed Size       000001FD (509)\n+1C575 Uncompressed Size     00000488 (1160)\n+1C579 Filename Length       004C (76)\n+1C57B Extra Length          0000 (0)\n+1C57D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1C288: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1C57D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1C2D4 PAYLOAD\n+1C5C9 PAYLOAD\n \n-1C4CE LOCAL HEADER #140     04034B50 (67324752)\n-1C4D2 Extract Zip Spec      14 (20) '2.0'\n-1C4D3 Extract OS            00 (0) 'MS-DOS'\n-1C4D4 General Purpose Flag  0800 (2048)\n+1C7C6 LOCAL HEADER #140     04034B50 (67324752)\n+1C7CA Extract Zip Spec      14 (20) '2.0'\n+1C7CB Extract OS            00 (0) 'MS-DOS'\n+1C7CC General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1C4D6 Compression Method    0008 (8) 'Deflated'\n-1C4D8 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-1C4DC CRC                   50D2C43E (1355990078)\n-1C4E0 Compressed Size       00000A08 (2568)\n-1C4E4 Uncompressed Size     00001D23 (7459)\n-1C4E8 Filename Length       0037 (55)\n-1C4EA Extra Length          0000 (0)\n-1C4EC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1C7CE Compression Method    0008 (8) 'Deflated'\n+1C7D0 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+1C7D4 CRC                   B6D3D669 (3067336297)\n+1C7D8 Compressed Size       00000A1E (2590)\n+1C7DC Uncompressed Size     00001D23 (7459)\n+1C7E0 Filename Length       0037 (55)\n+1C7E2 Extra Length          0000 (0)\n+1C7E4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1C4EC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1C7E4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1C523 PAYLOAD\n+1C81B PAYLOAD\n \n-1CF2B LOCAL HEADER #141     04034B50 (67324752)\n-1CF2F Extract Zip Spec      14 (20) '2.0'\n-1CF30 Extract OS            00 (0) 'MS-DOS'\n-1CF31 General Purpose Flag  0800 (2048)\n+1D239 LOCAL HEADER #141     04034B50 (67324752)\n+1D23D Extract Zip Spec      14 (20) '2.0'\n+1D23E Extract OS            00 (0) 'MS-DOS'\n+1D23F General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1CF33 Compression Method    0008 (8) 'Deflated'\n-1CF35 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-1CF39 CRC                   B2182B1E (2987928350)\n-1CF3D Compressed Size       000003CB (971)\n-1CF41 Uncompressed Size     000008CC (2252)\n-1CF45 Filename Length       002D (45)\n-1CF47 Extra Length          0000 (0)\n-1CF49 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1D241 Compression Method    0008 (8) 'Deflated'\n+1D243 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+1D247 CRC                   85F37191 (2247324049)\n+1D24B Compressed Size       000003D9 (985)\n+1D24F Uncompressed Size     000008CC (2252)\n+1D253 Filename Length       002D (45)\n+1D255 Extra Length          0000 (0)\n+1D257 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1CF49: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1D257: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1CF76 PAYLOAD\n+1D284 PAYLOAD\n \n-1D341 LOCAL HEADER #142     04034B50 (67324752)\n-1D345 Extract Zip Spec      14 (20) '2.0'\n-1D346 Extract OS            00 (0) 'MS-DOS'\n-1D347 General Purpose Flag  0800 (2048)\n+1D65D LOCAL HEADER #142     04034B50 (67324752)\n+1D661 Extract Zip Spec      14 (20) '2.0'\n+1D662 Extract OS            00 (0) 'MS-DOS'\n+1D663 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1D349 Compression Method    0008 (8) 'Deflated'\n-1D34B Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-1D34F CRC                   991D6690 (2568840848)\n-1D353 Compressed Size       00000724 (1828)\n-1D357 Uncompressed Size     00001265 (4709)\n-1D35B Filename Length       0049 (73)\n-1D35D Extra Length          0000 (0)\n-1D35F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1D665 Compression Method    0008 (8) 'Deflated'\n+1D667 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+1D66B CRC                   420B2988 (1108027784)\n+1D66F Compressed Size       0000072C (1836)\n+1D673 Uncompressed Size     00001265 (4709)\n+1D677 Filename Length       0049 (73)\n+1D679 Extra Length          0000 (0)\n+1D67B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1D35F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1D67B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1D3A8 PAYLOAD\n+1D6C4 PAYLOAD\n \n-1DACC LOCAL HEADER #143     04034B50 (67324752)\n-1DAD0 Extract Zip Spec      14 (20) '2.0'\n-1DAD1 Extract OS            00 (0) 'MS-DOS'\n-1DAD2 General Purpose Flag  0800 (2048)\n+1DDF0 LOCAL HEADER #143     04034B50 (67324752)\n+1DDF4 Extract Zip Spec      14 (20) '2.0'\n+1DDF5 Extract OS            00 (0) 'MS-DOS'\n+1DDF6 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1DAD4 Compression Method    0008 (8) 'Deflated'\n-1DAD6 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-1DADA CRC                   D6CD889E (3603794078)\n-1DADE Compressed Size       00000EA1 (3745)\n-1DAE2 Uncompressed Size     0000264B (9803)\n-1DAE6 Filename Length       004B (75)\n-1DAE8 Extra Length          0000 (0)\n-1DAEA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1DDF8 Compression Method    0008 (8) 'Deflated'\n+1DDFA Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+1DDFE CRC                   09B0AEF3 (162574067)\n+1DE02 Compressed Size       00000EBC (3772)\n+1DE06 Uncompressed Size     0000264B (9803)\n+1DE0A Filename Length       004B (75)\n+1DE0C Extra Length          0000 (0)\n+1DE0E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1DAEA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1DE0E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1DB35 PAYLOAD\n+1DE59 PAYLOAD\n \n-1E9D6 LOCAL HEADER #144     04034B50 (67324752)\n-1E9DA Extract Zip Spec      14 (20) '2.0'\n-1E9DB Extract OS            00 (0) 'MS-DOS'\n-1E9DC General Purpose Flag  0800 (2048)\n+1ED15 LOCAL HEADER #144     04034B50 (67324752)\n+1ED19 Extract Zip Spec      14 (20) '2.0'\n+1ED1A Extract OS            00 (0) 'MS-DOS'\n+1ED1B General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1E9DE Compression Method    0008 (8) 'Deflated'\n-1E9E0 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-1E9E4 CRC                   12B2F773 (313718643)\n-1E9E8 Compressed Size       00000540 (1344)\n-1E9EC Uncompressed Size     00000FB2 (4018)\n-1E9F0 Filename Length       0044 (68)\n-1E9F2 Extra Length          0000 (0)\n-1E9F4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1ED1D Compression Method    0008 (8) 'Deflated'\n+1ED1F Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+1ED23 CRC                   42ED27DC (1122838492)\n+1ED27 Compressed Size       0000054D (1357)\n+1ED2B Uncompressed Size     00000FB2 (4018)\n+1ED2F Filename Length       0044 (68)\n+1ED31 Extra Length          0000 (0)\n+1ED33 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1E9F4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1ED33: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1EA38 PAYLOAD\n+1ED77 PAYLOAD\n \n-1EF78 LOCAL HEADER #145     04034B50 (67324752)\n-1EF7C Extract Zip Spec      14 (20) '2.0'\n-1EF7D Extract OS            00 (0) 'MS-DOS'\n-1EF7E General Purpose Flag  0800 (2048)\n+1F2C4 LOCAL HEADER #145     04034B50 (67324752)\n+1F2C8 Extract Zip Spec      14 (20) '2.0'\n+1F2C9 Extract OS            00 (0) 'MS-DOS'\n+1F2CA General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1EF80 Compression Method    0008 (8) 'Deflated'\n-1EF82 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-1EF86 CRC                   83A30048 (2208497736)\n-1EF8A Compressed Size       00000B09 (2825)\n-1EF8E Uncompressed Size     000020CB (8395)\n-1EF92 Filename Length       0045 (69)\n-1EF94 Extra Length          0000 (0)\n-1EF96 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1F2CC Compression Method    0008 (8) 'Deflated'\n+1F2CE Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+1F2D2 CRC                   0EC4C090 (247775376)\n+1F2D6 Compressed Size       00000B17 (2839)\n+1F2DA Uncompressed Size     000020CB (8395)\n+1F2DE Filename Length       0045 (69)\n+1F2E0 Extra Length          0000 (0)\n+1F2E2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1EF96: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1F2E2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1EFDB PAYLOAD\n+1F327 PAYLOAD\n \n-1FAE4 LOCAL HEADER #146     04034B50 (67324752)\n-1FAE8 Extract Zip Spec      14 (20) '2.0'\n-1FAE9 Extract OS            00 (0) 'MS-DOS'\n-1FAEA General Purpose Flag  0800 (2048)\n+1FE3E LOCAL HEADER #146     04034B50 (67324752)\n+1FE42 Extract Zip Spec      14 (20) '2.0'\n+1FE43 Extract OS            00 (0) 'MS-DOS'\n+1FE44 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-1FAEC Compression Method    0008 (8) 'Deflated'\n-1FAEE Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-1FAF2 CRC                   D5FDA0C9 (3590168777)\n-1FAF6 Compressed Size       00000A90 (2704)\n-1FAFA Uncompressed Size     00001FC8 (8136)\n-1FAFE Filename Length       004E (78)\n-1FB00 Extra Length          0000 (0)\n-1FB02 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1FE46 Compression Method    0008 (8) 'Deflated'\n+1FE48 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+1FE4C CRC                   0D328151 (221413713)\n+1FE50 Compressed Size       00000A9B (2715)\n+1FE54 Uncompressed Size     00001FC8 (8136)\n+1FE58 Filename Length       004E (78)\n+1FE5A Extra Length          0000 (0)\n+1FE5C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1FB02: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1FE5C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1FB50 PAYLOAD\n+1FEAA PAYLOAD\n \n-205E0 LOCAL HEADER #147     04034B50 (67324752)\n-205E4 Extract Zip Spec      14 (20) '2.0'\n-205E5 Extract OS            00 (0) 'MS-DOS'\n-205E6 General Purpose Flag  0800 (2048)\n+20945 LOCAL HEADER #147     04034B50 (67324752)\n+20949 Extract Zip Spec      14 (20) '2.0'\n+2094A Extract OS            00 (0) 'MS-DOS'\n+2094B General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-205E8 Compression Method    0008 (8) 'Deflated'\n-205EA Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-205EE CRC                   3672AC9B (913484955)\n-205F2 Compressed Size       000005AC (1452)\n-205F6 Uncompressed Size     00000D39 (3385)\n-205FA Filename Length       002C (44)\n-205FC Extra Length          0000 (0)\n-205FE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2094D Compression Method    0008 (8) 'Deflated'\n+2094F Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+20953 CRC                   918F8FDE (2442104798)\n+20957 Compressed Size       000005B7 (1463)\n+2095B Uncompressed Size     00000D39 (3385)\n+2095F Filename Length       002C (44)\n+20961 Extra Length          0000 (0)\n+20963 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x205FE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20963: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-2062A PAYLOAD\n+2098F PAYLOAD\n \n-20BD6 LOCAL HEADER #148     04034B50 (67324752)\n-20BDA Extract Zip Spec      14 (20) '2.0'\n-20BDB Extract OS            00 (0) 'MS-DOS'\n-20BDC General Purpose Flag  0800 (2048)\n+20F46 LOCAL HEADER #148     04034B50 (67324752)\n+20F4A Extract Zip Spec      14 (20) '2.0'\n+20F4B Extract OS            00 (0) 'MS-DOS'\n+20F4C General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-20BDE Compression Method    0008 (8) 'Deflated'\n-20BE0 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-20BE4 CRC                   8B430614 (2336425492)\n-20BE8 Compressed Size       000005FA (1530)\n-20BEC Uncompressed Size     00000DA9 (3497)\n-20BF0 Filename Length       0029 (41)\n-20BF2 Extra Length          0000 (0)\n-20BF4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+20F4E Compression Method    0008 (8) 'Deflated'\n+20F50 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+20F54 CRC                   0D442AC7 (222571207)\n+20F58 Compressed Size       0000060C (1548)\n+20F5C Uncompressed Size     00000DA9 (3497)\n+20F60 Filename Length       0029 (41)\n+20F62 Extra Length          0000 (0)\n+20F64 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x20BF4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x20F64: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-20C1D PAYLOAD\n+20F8D PAYLOAD\n \n-21217 LOCAL HEADER #149     04034B50 (67324752)\n-2121B Extract Zip Spec      14 (20) '2.0'\n-2121C Extract OS            00 (0) 'MS-DOS'\n-2121D General Purpose Flag  0800 (2048)\n+21599 LOCAL HEADER #149     04034B50 (67324752)\n+2159D Extract Zip Spec      14 (20) '2.0'\n+2159E Extract OS            00 (0) 'MS-DOS'\n+2159F General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2121F Compression Method    0008 (8) 'Deflated'\n-21221 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-21225 CRC                   7A958CBE (2056621246)\n-21229 Compressed Size       000003C1 (961)\n-2122D Uncompressed Size     00000945 (2373)\n-21231 Filename Length       003D (61)\n-21233 Extra Length          0000 (0)\n-21235 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+215A1 Compression Method    0008 (8) 'Deflated'\n+215A3 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+215A7 CRC                   78074190 (2013741456)\n+215AB Compressed Size       000003C5 (965)\n+215AF Uncompressed Size     00000945 (2373)\n+215B3 Filename Length       003D (61)\n+215B5 Extra Length          0000 (0)\n+215B7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x21235: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x215B7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-21272 PAYLOAD\n+215F4 PAYLOAD\n \n-21633 LOCAL HEADER #150     04034B50 (67324752)\n-21637 Extract Zip Spec      14 (20) '2.0'\n-21638 Extract OS            00 (0) 'MS-DOS'\n-21639 General Purpose Flag  0800 (2048)\n+219B9 LOCAL HEADER #150     04034B50 (67324752)\n+219BD Extract Zip Spec      14 (20) '2.0'\n+219BE Extract OS            00 (0) 'MS-DOS'\n+219BF General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2163B Compression Method    0008 (8) 'Deflated'\n-2163D Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-21641 CRC                   65684A62 (1701333602)\n-21645 Compressed Size       000007E1 (2017)\n-21649 Uncompressed Size     0000154C (5452)\n-2164D Filename Length       0043 (67)\n-2164F Extra Length          0000 (0)\n-21651 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+219C1 Compression Method    0008 (8) 'Deflated'\n+219C3 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+219C7 CRC                   ECC02854 (3972016212)\n+219CB Compressed Size       000007F7 (2039)\n+219CF Uncompressed Size     0000154C (5452)\n+219D3 Filename Length       0043 (67)\n+219D5 Extra Length          0000 (0)\n+219D7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x21651: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x219D7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-21694 PAYLOAD\n+21A1A PAYLOAD\n \n-21E75 LOCAL HEADER #151     04034B50 (67324752)\n-21E79 Extract Zip Spec      14 (20) '2.0'\n-21E7A Extract OS            00 (0) 'MS-DOS'\n-21E7B General Purpose Flag  0800 (2048)\n+22211 LOCAL HEADER #151     04034B50 (67324752)\n+22215 Extract Zip Spec      14 (20) '2.0'\n+22216 Extract OS            00 (0) 'MS-DOS'\n+22217 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-21E7D Compression Method    0008 (8) 'Deflated'\n-21E7F Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-21E83 CRC                   D16E8B20 (3513682720)\n-21E87 Compressed Size       00000A5E (2654)\n-21E8B Uncompressed Size     00001C70 (7280)\n-21E8F Filename Length       004B (75)\n-21E91 Extra Length          0000 (0)\n-21E93 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+22219 Compression Method    0008 (8) 'Deflated'\n+2221B Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2221F CRC                   166728A8 (375859368)\n+22223 Compressed Size       00000A84 (2692)\n+22227 Uncompressed Size     00001C70 (7280)\n+2222B Filename Length       004B (75)\n+2222D Extra Length          0000 (0)\n+2222F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x21E93: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2222F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-21EDE PAYLOAD\n+2227A PAYLOAD\n \n-2293C LOCAL HEADER #152     04034B50 (67324752)\n-22940 Extract Zip Spec      14 (20) '2.0'\n-22941 Extract OS            00 (0) 'MS-DOS'\n-22942 General Purpose Flag  0800 (2048)\n+22CFE LOCAL HEADER #152     04034B50 (67324752)\n+22D02 Extract Zip Spec      14 (20) '2.0'\n+22D03 Extract OS            00 (0) 'MS-DOS'\n+22D04 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-22944 Compression Method    0008 (8) 'Deflated'\n-22946 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2294A CRC                   A619DAE4 (2786712292)\n-2294E Compressed Size       00000285 (645)\n-22952 Uncompressed Size     000005D1 (1489)\n-22956 Filename Length       0047 (71)\n-22958 Extra Length          0000 (0)\n-2295A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+22D06 Compression Method    0008 (8) 'Deflated'\n+22D08 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+22D0C CRC                   9A288CEF (2586348783)\n+22D10 Compressed Size       0000028D (653)\n+22D14 Uncompressed Size     000005D1 (1489)\n+22D18 Filename Length       0047 (71)\n+22D1A Extra Length          0000 (0)\n+22D1C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2295A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x22D1C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-229A1 PAYLOAD\n+22D63 PAYLOAD\n \n-22C26 LOCAL HEADER #153     04034B50 (67324752)\n-22C2A Extract Zip Spec      14 (20) '2.0'\n-22C2B Extract OS            00 (0) 'MS-DOS'\n-22C2C General Purpose Flag  0800 (2048)\n+22FF0 LOCAL HEADER #153     04034B50 (67324752)\n+22FF4 Extract Zip Spec      14 (20) '2.0'\n+22FF5 Extract OS            00 (0) 'MS-DOS'\n+22FF6 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-22C2E Compression Method    0008 (8) 'Deflated'\n-22C30 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-22C34 CRC                   83613D56 (2204187990)\n-22C38 Compressed Size       0000075B (1883)\n-22C3C Uncompressed Size     000013B7 (5047)\n-22C40 Filename Length       0049 (73)\n-22C42 Extra Length          0000 (0)\n-22C44 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+22FF8 Compression Method    0008 (8) 'Deflated'\n+22FFA Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+22FFE CRC                   B054C9F9 (2958346745)\n+23002 Compressed Size       0000077B (1915)\n+23006 Uncompressed Size     000013B7 (5047)\n+2300A Filename Length       0049 (73)\n+2300C Extra Length          0000 (0)\n+2300E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x22C44: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2300E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-22C8D PAYLOAD\n+23057 PAYLOAD\n \n-233E8 LOCAL HEADER #154     04034B50 (67324752)\n-233EC Extract Zip Spec      14 (20) '2.0'\n-233ED Extract OS            00 (0) 'MS-DOS'\n-233EE General Purpose Flag  0800 (2048)\n+237D2 LOCAL HEADER #154     04034B50 (67324752)\n+237D6 Extract Zip Spec      14 (20) '2.0'\n+237D7 Extract OS            00 (0) 'MS-DOS'\n+237D8 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-233F0 Compression Method    0008 (8) 'Deflated'\n-233F2 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-233F6 CRC                   435BC395 (1130087317)\n-233FA Compressed Size       000001A7 (423)\n-233FE Uncompressed Size     00000383 (899)\n-23402 Filename Length       003B (59)\n-23404 Extra Length          0000 (0)\n-23406 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+237DA Compression Method    0008 (8) 'Deflated'\n+237DC Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+237E0 CRC                   F2EA4571 (4075439473)\n+237E4 Compressed Size       0000019F (415)\n+237E8 Uncompressed Size     00000383 (899)\n+237EC Filename Length       003B (59)\n+237EE Extra Length          0000 (0)\n+237F0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x23406: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x237F0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-23441 PAYLOAD\n+2382B PAYLOAD\n \n-235E8 LOCAL HEADER #155     04034B50 (67324752)\n-235EC Extract Zip Spec      14 (20) '2.0'\n-235ED Extract OS            00 (0) 'MS-DOS'\n-235EE General Purpose Flag  0800 (2048)\n+239CA LOCAL HEADER #155     04034B50 (67324752)\n+239CE Extract Zip Spec      14 (20) '2.0'\n+239CF Extract OS            00 (0) 'MS-DOS'\n+239D0 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-235F0 Compression Method    0008 (8) 'Deflated'\n-235F2 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-235F6 CRC                   A722B775 (2804070261)\n-235FA Compressed Size       000005C8 (1480)\n-235FE Uncompressed Size     00000F5B (3931)\n-23602 Filename Length       002D (45)\n-23604 Extra Length          0000 (0)\n-23606 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+239D2 Compression Method    0008 (8) 'Deflated'\n+239D4 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+239D8 CRC                   DB7483A7 (3681846183)\n+239DC Compressed Size       000005DC (1500)\n+239E0 Uncompressed Size     00000F5B (3931)\n+239E4 Filename Length       002D (45)\n+239E6 Extra Length          0000 (0)\n+239E8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x23606: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x239E8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-23633 PAYLOAD\n+23A15 PAYLOAD\n \n-23BFB LOCAL HEADER #156     04034B50 (67324752)\n-23BFF Extract Zip Spec      14 (20) '2.0'\n-23C00 Extract OS            00 (0) 'MS-DOS'\n-23C01 General Purpose Flag  0800 (2048)\n+23FF1 LOCAL HEADER #156     04034B50 (67324752)\n+23FF5 Extract Zip Spec      14 (20) '2.0'\n+23FF6 Extract OS            00 (0) 'MS-DOS'\n+23FF7 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-23C03 Compression Method    0008 (8) 'Deflated'\n-23C05 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-23C09 CRC                   7D006F4A (2097180490)\n-23C0D Compressed Size       00000090 (144)\n-23C11 Uncompressed Size     000000AE (174)\n-23C15 Filename Length       0028 (40)\n-23C17 Extra Length          0000 (0)\n-23C19 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+23FF9 Compression Method    0008 (8) 'Deflated'\n+23FFB Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+23FFF CRC                   B365C78C (3009791884)\n+24003 Compressed Size       0000008F (143)\n+24007 Uncompressed Size     000000AE (174)\n+2400B Filename Length       0028 (40)\n+2400D Extra Length          0000 (0)\n+2400F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x23C19: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2400F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-23C41 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n-                            XXXXXXXXXXX\n+24037 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+                            XXXXXXXXXX\n \n-23CD1 LOCAL HEADER #157     04034B50 (67324752)\n-23CD5 Extract Zip Spec      14 (20) '2.0'\n-23CD6 Extract OS            00 (0) 'MS-DOS'\n-23CD7 General Purpose Flag  0800 (2048)\n+240C6 LOCAL HEADER #157     04034B50 (67324752)\n+240CA Extract Zip Spec      14 (20) '2.0'\n+240CB Extract OS            00 (0) 'MS-DOS'\n+240CC General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-23CD9 Compression Method    0008 (8) 'Deflated'\n-23CDB Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-23CDF CRC                   6F0F3966 (1863268710)\n-23CE3 Compressed Size       0000011A (282)\n-23CE7 Uncompressed Size     000001DF (479)\n-23CEB Filename Length       002F (47)\n-23CED Extra Length          0000 (0)\n-23CEF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+240CE Compression Method    0008 (8) 'Deflated'\n+240D0 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+240D4 CRC                   335AE0A4 (861593764)\n+240D8 Compressed Size       00000119 (281)\n+240DC Uncompressed Size     000001DF (479)\n+240E0 Filename Length       002F (47)\n+240E2 Extra Length          0000 (0)\n+240E4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x23CEF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x240E4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-23D1E PAYLOAD\n+24113 PAYLOAD\n \n-23E38 LOCAL HEADER #158     04034B50 (67324752)\n-23E3C Extract Zip Spec      14 (20) '2.0'\n-23E3D Extract OS            00 (0) 'MS-DOS'\n-23E3E General Purpose Flag  0800 (2048)\n+2422C LOCAL HEADER #158     04034B50 (67324752)\n+24230 Extract Zip Spec      14 (20) '2.0'\n+24231 Extract OS            00 (0) 'MS-DOS'\n+24232 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-23E40 Compression Method    0008 (8) 'Deflated'\n-23E42 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-23E46 CRC                   DAA18D5C (3668020572)\n-23E4A Compressed Size       00000118 (280)\n-23E4E Uncompressed Size     000001D7 (471)\n-23E52 Filename Length       002D (45)\n-23E54 Extra Length          0000 (0)\n-23E56 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+24234 Compression Method    0008 (8) 'Deflated'\n+24236 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2423A CRC                   686AC919 (1751828761)\n+2423E Compressed Size       00000116 (278)\n+24242 Uncompressed Size     000001D7 (471)\n+24246 Filename Length       002D (45)\n+24248 Extra Length          0000 (0)\n+2424A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x23E56: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2424A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-23E83 PAYLOAD\n+24277 PAYLOAD\n \n-23F9B LOCAL HEADER #159     04034B50 (67324752)\n-23F9F Extract Zip Spec      14 (20) '2.0'\n-23FA0 Extract OS            00 (0) 'MS-DOS'\n-23FA1 General Purpose Flag  0800 (2048)\n+2438D LOCAL HEADER #159     04034B50 (67324752)\n+24391 Extract Zip Spec      14 (20) '2.0'\n+24392 Extract OS            00 (0) 'MS-DOS'\n+24393 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-23FA3 Compression Method    0008 (8) 'Deflated'\n-23FA5 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-23FA9 CRC                   6F05623C (1862623804)\n-23FAD Compressed Size       00000156 (342)\n-23FB1 Uncompressed Size     000002AC (684)\n-23FB5 Filename Length       0049 (73)\n-23FB7 Extra Length          0000 (0)\n-23FB9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+24395 Compression Method    0008 (8) 'Deflated'\n+24397 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2439B CRC                   40AFB79D (1085257629)\n+2439F Compressed Size       00000159 (345)\n+243A3 Uncompressed Size     000002AC (684)\n+243A7 Filename Length       0049 (73)\n+243A9 Extra Length          0000 (0)\n+243AB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x23FB9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x243AB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-24002 PAYLOAD\n+243F4 PAYLOAD\n \n-24158 LOCAL HEADER #160     04034B50 (67324752)\n-2415C Extract Zip Spec      14 (20) '2.0'\n-2415D Extract OS            00 (0) 'MS-DOS'\n-2415E General Purpose Flag  0800 (2048)\n+2454D LOCAL HEADER #160     04034B50 (67324752)\n+24551 Extract Zip Spec      14 (20) '2.0'\n+24552 Extract OS            00 (0) 'MS-DOS'\n+24553 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-24160 Compression Method    0008 (8) 'Deflated'\n-24162 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-24166 CRC                   649CBE85 (1687993989)\n-2416A Compressed Size       000000C0 (192)\n-2416E Uncompressed Size     00000128 (296)\n-24172 Filename Length       0042 (66)\n-24174 Extra Length          0000 (0)\n-24176 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+24555 Compression Method    0008 (8) 'Deflated'\n+24557 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2455B CRC                   EC08D15D (3960000861)\n+2455F Compressed Size       000000C1 (193)\n+24563 Uncompressed Size     00000128 (296)\n+24567 Filename Length       0042 (66)\n+24569 Extra Length          0000 (0)\n+2456B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x24176: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2456B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-241B8 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n-                            XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+245AD PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+                            XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n \n-24278 LOCAL HEADER #161     04034B50 (67324752)\n-2427C Extract Zip Spec      14 (20) '2.0'\n-2427D Extract OS            00 (0) 'MS-DOS'\n-2427E General Purpose Flag  0800 (2048)\n+2466E LOCAL HEADER #161     04034B50 (67324752)\n+24672 Extract Zip Spec      14 (20) '2.0'\n+24673 Extract OS            00 (0) 'MS-DOS'\n+24674 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-24280 Compression Method    0008 (8) 'Deflated'\n-24282 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-24286 CRC                   7EAB90FF (2125172991)\n-2428A Compressed Size       0000076D (1901)\n-2428E Uncompressed Size     000013EE (5102)\n-24292 Filename Length       002B (43)\n-24294 Extra Length          0000 (0)\n-24296 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+24676 Compression Method    0008 (8) 'Deflated'\n+24678 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2467C CRC                   04F7DEEE (83353326)\n+24680 Compressed Size       00000774 (1908)\n+24684 Uncompressed Size     000013F0 (5104)\n+24688 Filename Length       002B (43)\n+2468A Extra Length          0000 (0)\n+2468C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x24296: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2468C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-242C1 PAYLOAD\n+246B7 PAYLOAD\n \n-24A2E LOCAL HEADER #162     04034B50 (67324752)\n-24A32 Extract Zip Spec      14 (20) '2.0'\n-24A33 Extract OS            00 (0) 'MS-DOS'\n-24A34 General Purpose Flag  0800 (2048)\n+24E2B LOCAL HEADER #162     04034B50 (67324752)\n+24E2F Extract Zip Spec      14 (20) '2.0'\n+24E30 Extract OS            00 (0) 'MS-DOS'\n+24E31 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-24A36 Compression Method    0008 (8) 'Deflated'\n-24A38 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-24A3C CRC                   8B4A2818 (2336892952)\n-24A40 Compressed Size       000000AA (170)\n-24A44 Uncompressed Size     00000100 (256)\n-24A48 Filename Length       0029 (41)\n-24A4A Extra Length          0000 (0)\n-24A4C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+24E33 Compression Method    0008 (8) 'Deflated'\n+24E35 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+24E39 CRC                   81F8F5BE (2180576702)\n+24E3D Compressed Size       000000AA (170)\n+24E41 Uncompressed Size     00000100 (256)\n+24E45 Filename Length       0029 (41)\n+24E47 Extra Length          0000 (0)\n+24E49 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x24A4C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x24E49: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-24A75 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+24E72 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n                             XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n \n-24B1F LOCAL HEADER #163     04034B50 (67324752)\n-24B23 Extract Zip Spec      14 (20) '2.0'\n-24B24 Extract OS            00 (0) 'MS-DOS'\n-24B25 General Purpose Flag  0800 (2048)\n+24F1C LOCAL HEADER #163     04034B50 (67324752)\n+24F20 Extract Zip Spec      14 (20) '2.0'\n+24F21 Extract OS            00 (0) 'MS-DOS'\n+24F22 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-24B27 Compression Method    0008 (8) 'Deflated'\n-24B29 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-24B2D CRC                   E28C35C9 (3800839625)\n-24B31 Compressed Size       00000132 (306)\n-24B35 Uncompressed Size     00000235 (565)\n-24B39 Filename Length       002D (45)\n-24B3B Extra Length          0000 (0)\n-24B3D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+24F24 Compression Method    0008 (8) 'Deflated'\n+24F26 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+24F2A CRC                   444DEB39 (1145957177)\n+24F2E Compressed Size       00000135 (309)\n+24F32 Uncompressed Size     00000235 (565)\n+24F36 Filename Length       002D (45)\n+24F38 Extra Length          0000 (0)\n+24F3A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x24B3D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x24F3A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-24B6A PAYLOAD\n+24F67 PAYLOAD\n \n-24C9C LOCAL HEADER #164     04034B50 (67324752)\n-24CA0 Extract Zip Spec      14 (20) '2.0'\n-24CA1 Extract OS            00 (0) 'MS-DOS'\n-24CA2 General Purpose Flag  0800 (2048)\n+2509C LOCAL HEADER #164     04034B50 (67324752)\n+250A0 Extract Zip Spec      14 (20) '2.0'\n+250A1 Extract OS            00 (0) 'MS-DOS'\n+250A2 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-24CA4 Compression Method    0008 (8) 'Deflated'\n-24CA6 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-24CAA CRC                   6ADA63B0 (1792697264)\n-24CAE Compressed Size       000000AF (175)\n-24CB2 Uncompressed Size     00000110 (272)\n-24CB6 Filename Length       0031 (49)\n-24CB8 Extra Length          0000 (0)\n-24CBA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+250A4 Compression Method    0008 (8) 'Deflated'\n+250A6 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+250AA CRC                   4D79ACBE (1299819710)\n+250AE Compressed Size       000000AF (175)\n+250B2 Uncompressed Size     00000110 (272)\n+250B6 Filename Length       0031 (49)\n+250B8 Extra Length          0000 (0)\n+250BA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x24CBA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x250BA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-24CEB PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+250EB PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n                             XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n \n-24D9A LOCAL HEADER #165     04034B50 (67324752)\n-24D9E Extract Zip Spec      14 (20) '2.0'\n-24D9F Extract OS            00 (0) 'MS-DOS'\n-24DA0 General Purpose Flag  0800 (2048)\n+2519A LOCAL HEADER #165     04034B50 (67324752)\n+2519E Extract Zip Spec      14 (20) '2.0'\n+2519F Extract OS            00 (0) 'MS-DOS'\n+251A0 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-24DA2 Compression Method    0008 (8) 'Deflated'\n-24DA4 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-24DA8 CRC                   28DAA840 (685418560)\n-24DAC Compressed Size       000002CF (719)\n-24DB0 Uncompressed Size     00000644 (1604)\n-24DB4 Filename Length       003A (58)\n-24DB6 Extra Length          0000 (0)\n-24DB8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+251A2 Compression Method    0008 (8) 'Deflated'\n+251A4 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+251A8 CRC                   2A016775 (704735093)\n+251AC Compressed Size       000002CF (719)\n+251B0 Uncompressed Size     00000644 (1604)\n+251B4 Filename Length       003A (58)\n+251B6 Extra Length          0000 (0)\n+251B8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x24DB8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x251B8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-24DF2 PAYLOAD\n+251F2 PAYLOAD\n \n-250C1 LOCAL HEADER #166     04034B50 (67324752)\n-250C5 Extract Zip Spec      14 (20) '2.0'\n-250C6 Extract OS            00 (0) 'MS-DOS'\n-250C7 General Purpose Flag  0800 (2048)\n+254C1 LOCAL HEADER #166     04034B50 (67324752)\n+254C5 Extract Zip Spec      14 (20) '2.0'\n+254C6 Extract OS            00 (0) 'MS-DOS'\n+254C7 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-250C9 Compression Method    0008 (8) 'Deflated'\n-250CB Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-250CF CRC                   F1C0C0DB (4055941339)\n-250D3 Compressed Size       00000557 (1367)\n-250D7 Uncompressed Size     00000D92 (3474)\n-250DB Filename Length       003A (58)\n-250DD Extra Length          0000 (0)\n-250DF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+254C9 Compression Method    0008 (8) 'Deflated'\n+254CB Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+254CF CRC                   200C4CF6 (537677046)\n+254D3 Compressed Size       00000560 (1376)\n+254D7 Uncompressed Size     00000D92 (3474)\n+254DB Filename Length       003A (58)\n+254DD Extra Length          0000 (0)\n+254DF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x250DF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x254DF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-25119 PAYLOAD\n+25519 PAYLOAD\n \n-25670 LOCAL HEADER #167     04034B50 (67324752)\n-25674 Extract Zip Spec      14 (20) '2.0'\n-25675 Extract OS            00 (0) 'MS-DOS'\n-25676 General Purpose Flag  0800 (2048)\n+25A79 LOCAL HEADER #167     04034B50 (67324752)\n+25A7D Extract Zip Spec      14 (20) '2.0'\n+25A7E Extract OS            00 (0) 'MS-DOS'\n+25A7F General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-25678 Compression Method    0008 (8) 'Deflated'\n-2567A Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2567E CRC                   94826ABA (2491574970)\n-25682 Compressed Size       000004D8 (1240)\n-25686 Uncompressed Size     00000B8D (2957)\n-2568A Filename Length       0038 (56)\n-2568C Extra Length          0000 (0)\n-2568E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+25A81 Compression Method    0008 (8) 'Deflated'\n+25A83 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+25A87 CRC                   BE79378C (3195615116)\n+25A8B Compressed Size       000004DA (1242)\n+25A8F Uncompressed Size     00000B8D (2957)\n+25A93 Filename Length       0038 (56)\n+25A95 Extra Length          0000 (0)\n+25A97 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2568E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x25A97: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-256C6 PAYLOAD\n+25ACF PAYLOAD\n \n-25B9E LOCAL HEADER #168     04034B50 (67324752)\n-25BA2 Extract Zip Spec      14 (20) '2.0'\n-25BA3 Extract OS            00 (0) 'MS-DOS'\n-25BA4 General Purpose Flag  0800 (2048)\n+25FA9 LOCAL HEADER #168     04034B50 (67324752)\n+25FAD Extract Zip Spec      14 (20) '2.0'\n+25FAE Extract OS            00 (0) 'MS-DOS'\n+25FAF General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-25BA6 Compression Method    0008 (8) 'Deflated'\n-25BA8 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-25BAC CRC                   B2491236 (2991133238)\n-25BB0 Compressed Size       00000586 (1414)\n-25BB4 Uncompressed Size     00000EBF (3775)\n-25BB8 Filename Length       0036 (54)\n-25BBA Extra Length          0000 (0)\n-25BBC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+25FB1 Compression Method    0008 (8) 'Deflated'\n+25FB3 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+25FB7 CRC                   44308AEF (1144031983)\n+25FBB Compressed Size       0000059C (1436)\n+25FBF Uncompressed Size     00000EC2 (3778)\n+25FC3 Filename Length       0036 (54)\n+25FC5 Extra Length          0000 (0)\n+25FC7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x25BBC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x25FC7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-25BF2 PAYLOAD\n+25FFD PAYLOAD\n \n-26178 LOCAL HEADER #169     04034B50 (67324752)\n-2617C Extract Zip Spec      14 (20) '2.0'\n-2617D Extract OS            00 (0) 'MS-DOS'\n-2617E General Purpose Flag  0800 (2048)\n+26599 LOCAL HEADER #169     04034B50 (67324752)\n+2659D Extract Zip Spec      14 (20) '2.0'\n+2659E Extract OS            00 (0) 'MS-DOS'\n+2659F General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-26180 Compression Method    0008 (8) 'Deflated'\n-26182 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-26186 CRC                   432AC1B1 (1126875569)\n-2618A Compressed Size       0000094A (2378)\n-2618E Uncompressed Size     00001930 (6448)\n-26192 Filename Length       0040 (64)\n-26194 Extra Length          0000 (0)\n-26196 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+265A1 Compression Method    0008 (8) 'Deflated'\n+265A3 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+265A7 CRC                   45818429 (1166115881)\n+265AB Compressed Size       0000094B (2379)\n+265AF Uncompressed Size     00001930 (6448)\n+265B3 Filename Length       0040 (64)\n+265B5 Extra Length          0000 (0)\n+265B7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x26196: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x265B7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-261D6 PAYLOAD\n+265F7 PAYLOAD\n \n-26B20 LOCAL HEADER #170     04034B50 (67324752)\n-26B24 Extract Zip Spec      14 (20) '2.0'\n-26B25 Extract OS            00 (0) 'MS-DOS'\n-26B26 General Purpose Flag  0800 (2048)\n+26F42 LOCAL HEADER #170     04034B50 (67324752)\n+26F46 Extract Zip Spec      14 (20) '2.0'\n+26F47 Extract OS            00 (0) 'MS-DOS'\n+26F48 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-26B28 Compression Method    0008 (8) 'Deflated'\n-26B2A Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-26B2E CRC                   FF31AB03 (4281445123)\n-26B32 Compressed Size       00000312 (786)\n-26B36 Uncompressed Size     00000756 (1878)\n-26B3A Filename Length       004F (79)\n-26B3C Extra Length          0000 (0)\n-26B3E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+26F4A Compression Method    0008 (8) 'Deflated'\n+26F4C Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+26F50 CRC                   1EE41C12 (518265874)\n+26F54 Compressed Size       00000313 (787)\n+26F58 Uncompressed Size     00000756 (1878)\n+26F5C Filename Length       004F (79)\n+26F5E Extra Length          0000 (0)\n+26F60 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x26B3E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x26F60: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-26B8D PAYLOAD\n+26FAF PAYLOAD\n \n-26E9F LOCAL HEADER #171     04034B50 (67324752)\n-26EA3 Extract Zip Spec      14 (20) '2.0'\n-26EA4 Extract OS            00 (0) 'MS-DOS'\n-26EA5 General Purpose Flag  0800 (2048)\n+272C2 LOCAL HEADER #171     04034B50 (67324752)\n+272C6 Extract Zip Spec      14 (20) '2.0'\n+272C7 Extract OS            00 (0) 'MS-DOS'\n+272C8 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-26EA7 Compression Method    0008 (8) 'Deflated'\n-26EA9 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-26EAD CRC                   152F72C0 (355431104)\n-26EB1 Compressed Size       00000420 (1056)\n-26EB5 Uncompressed Size     00000C6F (3183)\n-26EB9 Filename Length       004E (78)\n-26EBB Extra Length          0000 (0)\n-26EBD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+272CA Compression Method    0008 (8) 'Deflated'\n+272CC Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+272D0 CRC                   C9942CBF (3381931199)\n+272D4 Compressed Size       00000427 (1063)\n+272D8 Uncompressed Size     00000C6F (3183)\n+272DC Filename Length       004E (78)\n+272DE Extra Length          0000 (0)\n+272E0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x26EBD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x272E0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-26F0B PAYLOAD\n+2732E PAYLOAD\n \n-2732B LOCAL HEADER #172     04034B50 (67324752)\n-2732F Extract Zip Spec      14 (20) '2.0'\n-27330 Extract OS            00 (0) 'MS-DOS'\n-27331 General Purpose Flag  0800 (2048)\n+27755 LOCAL HEADER #172     04034B50 (67324752)\n+27759 Extract Zip Spec      14 (20) '2.0'\n+2775A Extract OS            00 (0) 'MS-DOS'\n+2775B General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-27333 Compression Method    0008 (8) 'Deflated'\n-27335 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-27339 CRC                   2A7311D9 (712184281)\n-2733D Compressed Size       00000560 (1376)\n-27341 Uncompressed Size     00000E47 (3655)\n-27345 Filename Length       0038 (56)\n-27347 Extra Length          0000 (0)\n-27349 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2775D Compression Method    0008 (8) 'Deflated'\n+2775F Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+27763 CRC                   45171DCC (1159142860)\n+27767 Compressed Size       0000056A (1386)\n+2776B Uncompressed Size     00000E47 (3655)\n+2776F Filename Length       0038 (56)\n+27771 Extra Length          0000 (0)\n+27773 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x27349: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x27773: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-27381 PAYLOAD\n+277AB PAYLOAD\n \n-278E1 LOCAL HEADER #173     04034B50 (67324752)\n-278E5 Extract Zip Spec      14 (20) '2.0'\n-278E6 Extract OS            00 (0) 'MS-DOS'\n-278E7 General Purpose Flag  0800 (2048)\n+27D15 LOCAL HEADER #173     04034B50 (67324752)\n+27D19 Extract Zip Spec      14 (20) '2.0'\n+27D1A Extract OS            00 (0) 'MS-DOS'\n+27D1B General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-278E9 Compression Method    0008 (8) 'Deflated'\n-278EB Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-278EF CRC                   DE91822C (3734077996)\n-278F3 Compressed Size       00000C49 (3145)\n-278F7 Uncompressed Size     00002049 (8265)\n-278FB Filename Length       0045 (69)\n-278FD Extra Length          0000 (0)\n-278FF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+27D1D Compression Method    0008 (8) 'Deflated'\n+27D1F Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+27D23 CRC                   A7ECACA5 (2817305765)\n+27D27 Compressed Size       00000C6D (3181)\n+27D2B Uncompressed Size     0000205E (8286)\n+27D2F Filename Length       0045 (69)\n+27D31 Extra Length          0000 (0)\n+27D33 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x278FF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x27D33: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-27944 PAYLOAD\n+27D78 PAYLOAD\n \n-2858D LOCAL HEADER #174     04034B50 (67324752)\n-28591 Extract Zip Spec      14 (20) '2.0'\n-28592 Extract OS            00 (0) 'MS-DOS'\n-28593 General Purpose Flag  0800 (2048)\n+289E5 LOCAL HEADER #174     04034B50 (67324752)\n+289E9 Extract Zip Spec      14 (20) '2.0'\n+289EA Extract OS            00 (0) 'MS-DOS'\n+289EB General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-28595 Compression Method    0008 (8) 'Deflated'\n-28597 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2859B CRC                   5D229F2A (1562550058)\n-2859F Compressed Size       000001EC (492)\n-285A3 Uncompressed Size     00000363 (867)\n-285A7 Filename Length       0038 (56)\n-285A9 Extra Length          0000 (0)\n-285AB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+289ED Compression Method    0008 (8) 'Deflated'\n+289EF Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+289F3 CRC                   0A993007 (177811463)\n+289F7 Compressed Size       000001EB (491)\n+289FB Uncompressed Size     00000363 (867)\n+289FF Filename Length       0038 (56)\n+28A01 Extra Length          0000 (0)\n+28A03 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x285AB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x28A03: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-285E3 PAYLOAD\n+28A3B PAYLOAD\n \n-287CF LOCAL HEADER #175     04034B50 (67324752)\n-287D3 Extract Zip Spec      14 (20) '2.0'\n-287D4 Extract OS            00 (0) 'MS-DOS'\n-287D5 General Purpose Flag  0800 (2048)\n+28C26 LOCAL HEADER #175     04034B50 (67324752)\n+28C2A Extract Zip Spec      14 (20) '2.0'\n+28C2B Extract OS            00 (0) 'MS-DOS'\n+28C2C General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-287D7 Compression Method    0008 (8) 'Deflated'\n-287D9 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-287DD CRC                   8C92B588 (2358424968)\n-287E1 Compressed Size       000002D7 (727)\n-287E5 Uncompressed Size     00000612 (1554)\n-287E9 Filename Length       0043 (67)\n-287EB Extra Length          0000 (0)\n-287ED Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+28C2E Compression Method    0008 (8) 'Deflated'\n+28C30 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+28C34 CRC                   9122B4D3 (2434970835)\n+28C38 Compressed Size       000002DD (733)\n+28C3C Uncompressed Size     00000612 (1554)\n+28C40 Filename Length       0043 (67)\n+28C42 Extra Length          0000 (0)\n+28C44 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x287ED: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x28C44: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-28830 PAYLOAD\n+28C87 PAYLOAD\n \n-28B07 LOCAL HEADER #176     04034B50 (67324752)\n-28B0B Extract Zip Spec      14 (20) '2.0'\n-28B0C Extract OS            00 (0) 'MS-DOS'\n-28B0D General Purpose Flag  0800 (2048)\n+28F64 LOCAL HEADER #176     04034B50 (67324752)\n+28F68 Extract Zip Spec      14 (20) '2.0'\n+28F69 Extract OS            00 (0) 'MS-DOS'\n+28F6A General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-28B0F Compression Method    0008 (8) 'Deflated'\n-28B11 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-28B15 CRC                   093F422D (155140653)\n-28B19 Compressed Size       00000496 (1174)\n-28B1D Uncompressed Size     00001C0D (7181)\n-28B21 Filename Length       0037 (55)\n-28B23 Extra Length          0000 (0)\n-28B25 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+28F6C Compression Method    0008 (8) 'Deflated'\n+28F6E Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+28F72 CRC                   093F422D (155140653)\n+28F76 Compressed Size       00000496 (1174)\n+28F7A Uncompressed Size     00001C0D (7181)\n+28F7E Filename Length       0037 (55)\n+28F80 Extra Length          0000 (0)\n+28F82 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x28B25: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x28F82: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-28B5C PAYLOAD\n+28FB9 PAYLOAD\n \n-28FF2 LOCAL HEADER #177     04034B50 (67324752)\n-28FF6 Extract Zip Spec      14 (20) '2.0'\n-28FF7 Extract OS            00 (0) 'MS-DOS'\n-28FF8 General Purpose Flag  0800 (2048)\n+2944F LOCAL HEADER #177     04034B50 (67324752)\n+29453 Extract Zip Spec      14 (20) '2.0'\n+29454 Extract OS            00 (0) 'MS-DOS'\n+29455 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-28FFA Compression Method    0008 (8) 'Deflated'\n-28FFC Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-29000 CRC                   B35AC616 (3009070614)\n-29004 Compressed Size       0000003B (59)\n-29008 Uncompressed Size     00000043 (67)\n-2900C Filename Length       003E (62)\n-2900E Extra Length          0000 (0)\n-29010 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+29457 Compression Method    0008 (8) 'Deflated'\n+29459 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2945D CRC                   B35AC616 (3009070614)\n+29461 Compressed Size       0000003B (59)\n+29465 Uncompressed Size     00000043 (67)\n+29469 Filename Length       003E (62)\n+2946B Extra Length          0000 (0)\n+2946D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x29010: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2946D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-2904E PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+294AB PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n \n-29089 CENTRAL HEADER #1     02014B50 (33639248)\n-2908D Created Zip Spec      14 (20) '2.0'\n-2908E Created OS            03 (3) 'Unix'\n-2908F Extract Zip Spec      0A (10) '1.0'\n-29090 Extract OS            00 (0) 'MS-DOS'\n-29091 General Purpose Flag  0800 (2048)\n+294E6 CENTRAL HEADER #1     02014B50 (33639248)\n+294EA Created Zip Spec      14 (20) '2.0'\n+294EB Created OS            03 (3) 'Unix'\n+294EC Extract Zip Spec      0A (10) '1.0'\n+294ED Extract OS            00 (0) 'MS-DOS'\n+294EE General Purpose Flag  0800 (2048)\n       [Bit 11]              1 'Language Encoding'\n-29093 Compression Method    0000 (0) 'Stored'\n-29095 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-29099 CRC                   00000000 (0)\n-2909D Compressed Size       00000000 (0)\n-290A1 Uncompressed Size     00000000 (0)\n-290A5 Filename Length       0009 (9)\n-290A7 Extra Length          0000 (0)\n-290A9 Comment Length        0000 (0)\n-290AB Disk Start            0000 (0)\n-290AD Int File Attributes   0000 (0)\n+294F0 Compression Method    0000 (0) 'Stored'\n+294F2 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+294F6 CRC                   00000000 (0)\n+294FA Compressed Size       00000000 (0)\n+294FE Uncompressed Size     00000000 (0)\n+29502 Filename Length       0009 (9)\n+29504 Extra Length          0000 (0)\n+29506 Comment Length        0000 (0)\n+29508 Disk Start            0000 (0)\n+2950A Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-290AF Ext File Attributes   41ED0010 (1106051088)\n+2950C Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-290B3 Local Header Offset   00000000 (0)\n-290B7 Filename              'XXXXXXXXX'\n+29510 Local Header Offset   00000000 (0)\n+29514 Filename              'XXXXXXXXX'\n #\n-# WARNING: Offset 0x290B7: Filename 'XXXXXXXXX'\n+# WARNING: Offset 0x29514: Filename 'XXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x290B7: Directory 'XXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x29514: Directory 'XXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x2908F: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXX'\n+# WARNING: Offset 0x294EC: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXX'\n #\n \n-290C0 CENTRAL HEADER #2     02014B50 (33639248)\n-290C4 Created Zip Spec      14 (20) '2.0'\n-290C5 Created OS            03 (3) 'Unix'\n-290C6 Extract Zip Spec      14 (20) '2.0'\n-290C7 Extract OS            00 (0) 'MS-DOS'\n-290C8 General Purpose Flag  0800 (2048)\n+2951D CENTRAL HEADER #2     02014B50 (33639248)\n+29521 Created Zip Spec      14 (20) '2.0'\n+29522 Created OS            03 (3) 'Unix'\n+29523 Extract Zip Spec      14 (20) '2.0'\n+29524 Extract OS            00 (0) 'MS-DOS'\n+29525 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-290CA Compression Method    0008 (8) 'Deflated'\n-290CC Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-290D0 CRC                   81310700 (2167473920)\n-290D4 Compressed Size       00000050 (80)\n-290D8 Uncompressed Size     00000052 (82)\n-290DC Filename Length       0014 (20)\n-290DE Extra Length          0000 (0)\n-290E0 Comment Length        0000 (0)\n-290E2 Disk Start            0000 (0)\n-290E4 Int File Attributes   0000 (0)\n+29527 Compression Method    0008 (8) 'Deflated'\n+29529 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2952D CRC                   F6680B5C (4134013788)\n+29531 Compressed Size       00000050 (80)\n+29535 Uncompressed Size     00000051 (81)\n+29539 Filename Length       0014 (20)\n+2953B Extra Length          0000 (0)\n+2953D Comment Length        0000 (0)\n+2953F Disk Start            0000 (0)\n+29541 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-290E6 Ext File Attributes   81A40000 (2175008768)\n+29543 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-290EA Local Header Offset   00000027 (39)\n-290EE Filename              'XXXXXXXXXXXXXXXXXXXX'\n+29547 Local Header Offset   00000027 (39)\n+2954B Filename              'XXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x290EE: Filename 'XXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2954B: Filename 'XXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-29102 CENTRAL HEADER #3     02014B50 (33639248)\n-29106 Created Zip Spec      14 (20) '2.0'\n-29107 Created OS            03 (3) 'Unix'\n-29108 Extract Zip Spec      0A (10) '1.0'\n-29109 Extract OS            00 (0) 'MS-DOS'\n-2910A General Purpose Flag  0800 (2048)\n+2955F CENTRAL HEADER #3     02014B50 (33639248)\n+29563 Created Zip Spec      14 (20) '2.0'\n+29564 Created OS            03 (3) 'Unix'\n+29565 Extract Zip Spec      0A (10) '1.0'\n+29566 Extract OS            00 (0) 'MS-DOS'\n+29567 General Purpose Flag  0800 (2048)\n       [Bit 11]              1 'Language Encoding'\n-2910C Compression Method    0000 (0) 'Stored'\n-2910E Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-29112 CRC                   00000000 (0)\n-29116 Compressed Size       00000000 (0)\n-2911A Uncompressed Size     00000000 (0)\n-2911E Filename Length       0012 (18)\n-29120 Extra Length          0000 (0)\n-29122 Comment Length        0000 (0)\n-29124 Disk Start            0000 (0)\n-29126 Int File Attributes   0000 (0)\n+29569 Compression Method    0000 (0) 'Stored'\n+2956B Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2956F CRC                   00000000 (0)\n+29573 Compressed Size       00000000 (0)\n+29577 Uncompressed Size     00000000 (0)\n+2957B Filename Length       0012 (18)\n+2957D Extra Length          0000 (0)\n+2957F Comment Length        0000 (0)\n+29581 Disk Start            0000 (0)\n+29583 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-29128 Ext File Attributes   41ED0010 (1106051088)\n+29585 Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-2912C Local Header Offset   000000A9 (169)\n-29130 Filename              'XXXXXXXXXXXXXXXXXX'\n+29589 Local Header Offset   000000A9 (169)\n+2958D Filename              'XXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x29130: Filename 'XXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2958D: Filename 'XXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x29130: Directory 'XXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x2958D: Directory 'XXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x29108: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x29565: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXX'\n #\n \n-29142 CENTRAL HEADER #4     02014B50 (33639248)\n-29146 Created Zip Spec      14 (20) '2.0'\n-29147 Created OS            03 (3) 'Unix'\n-29148 Extract Zip Spec      0A (10) '1.0'\n-29149 Extract OS            00 (0) 'MS-DOS'\n-2914A General Purpose Flag  0800 (2048)\n+2959F CENTRAL HEADER #4     02014B50 (33639248)\n+295A3 Created Zip Spec      14 (20) '2.0'\n+295A4 Created OS            03 (3) 'Unix'\n+295A5 Extract Zip Spec      0A (10) '1.0'\n+295A6 Extract OS            00 (0) 'MS-DOS'\n+295A7 General Purpose Flag  0800 (2048)\n       [Bit 11]              1 'Language Encoding'\n-2914C Compression Method    0000 (0) 'Stored'\n-2914E Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-29152 CRC                   00000000 (0)\n-29156 Compressed Size       00000000 (0)\n-2915A Uncompressed Size     00000000 (0)\n-2915E Filename Length       0004 (4)\n-29160 Extra Length          0000 (0)\n-29162 Comment Length        0000 (0)\n-29164 Disk Start            0000 (0)\n-29166 Int File Attributes   0000 (0)\n+295A9 Compression Method    0000 (0) 'Stored'\n+295AB Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+295AF CRC                   00000000 (0)\n+295B3 Compressed Size       00000000 (0)\n+295B7 Uncompressed Size     00000000 (0)\n+295BB Filename Length       0004 (4)\n+295BD Extra Length          0000 (0)\n+295BF Comment Length        0000 (0)\n+295C1 Disk Start            0000 (0)\n+295C3 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-29168 Ext File Attributes   41ED0010 (1106051088)\n+295C5 Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-2916C Local Header Offset   000000D9 (217)\n-29170 Filename              'XXXX'\n+295C9 Local Header Offset   000000D9 (217)\n+295CD Filename              'XXXX'\n #\n-# WARNING: Offset 0x29170: Filename 'XXXX'\n+# WARNING: Offset 0x295CD: Filename 'XXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x29170: Directory 'XXXX' must end in a '/'\n+# ERROR: Offset 0x295CD: Directory 'XXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x29148: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXX'\n+# WARNING: Offset 0x295A5: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXX'\n #\n \n-29174 CENTRAL HEADER #5     02014B50 (33639248)\n-29178 Created Zip Spec      14 (20) '2.0'\n-29179 Created OS            03 (3) 'Unix'\n-2917A Extract Zip Spec      0A (10) '1.0'\n-2917B Extract OS            00 (0) 'MS-DOS'\n-2917C General Purpose Flag  0800 (2048)\n+295D1 CENTRAL HEADER #5     02014B50 (33639248)\n+295D5 Created Zip Spec      14 (20) '2.0'\n+295D6 Created OS            03 (3) 'Unix'\n+295D7 Extract Zip Spec      0A (10) '1.0'\n+295D8 Extract OS            00 (0) 'MS-DOS'\n+295D9 General Purpose Flag  0800 (2048)\n       [Bit 11]              1 'Language Encoding'\n-2917E Compression Method    0000 (0) 'Stored'\n-29180 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-29184 CRC                   00000000 (0)\n-29188 Compressed Size       00000000 (0)\n-2918C Uncompressed Size     00000000 (0)\n-29190 Filename Length       0010 (16)\n-29192 Extra Length          0000 (0)\n-29194 Comment Length        0000 (0)\n-29196 Disk Start            0000 (0)\n-29198 Int File Attributes   0000 (0)\n+295DB Compression Method    0000 (0) 'Stored'\n+295DD Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+295E1 CRC                   00000000 (0)\n+295E5 Compressed Size       00000000 (0)\n+295E9 Uncompressed Size     00000000 (0)\n+295ED Filename Length       0010 (16)\n+295EF Extra Length          0000 (0)\n+295F1 Comment Length        0000 (0)\n+295F3 Disk Start            0000 (0)\n+295F5 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2919A Ext File Attributes   41ED0010 (1106051088)\n+295F7 Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-2919E Local Header Offset   000000FB (251)\n-291A2 Filename              'XXXXXXXXXXXXXXXX'\n+295FB Local Header Offset   000000FB (251)\n+295FF Filename              'XXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x291A2: Filename 'XXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x295FF: Filename 'XXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x291A2: Directory 'XXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x295FF: Directory 'XXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x2917A: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x295D7: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXX'\n #\n \n-291B2 CENTRAL HEADER #6     02014B50 (33639248)\n-291B6 Created Zip Spec      14 (20) '2.0'\n-291B7 Created OS            03 (3) 'Unix'\n-291B8 Extract Zip Spec      0A (10) '1.0'\n-291B9 Extract OS            00 (0) 'MS-DOS'\n-291BA General Purpose Flag  0800 (2048)\n+2960F CENTRAL HEADER #6     02014B50 (33639248)\n+29613 Created Zip Spec      14 (20) '2.0'\n+29614 Created OS            03 (3) 'Unix'\n+29615 Extract Zip Spec      0A (10) '1.0'\n+29616 Extract OS            00 (0) 'MS-DOS'\n+29617 General Purpose Flag  0800 (2048)\n       [Bit 11]              1 'Language Encoding'\n-291BC Compression Method    0000 (0) 'Stored'\n-291BE Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-291C2 CRC                   00000000 (0)\n-291C6 Compressed Size       00000000 (0)\n-291CA Uncompressed Size     00000000 (0)\n-291CE Filename Length       0016 (22)\n-291D0 Extra Length          0000 (0)\n-291D2 Comment Length        0000 (0)\n-291D4 Disk Start            0000 (0)\n-291D6 Int File Attributes   0000 (0)\n+29619 Compression Method    0000 (0) 'Stored'\n+2961B Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2961F CRC                   00000000 (0)\n+29623 Compressed Size       00000000 (0)\n+29627 Uncompressed Size     00000000 (0)\n+2962B Filename Length       0016 (22)\n+2962D Extra Length          0000 (0)\n+2962F Comment Length        0000 (0)\n+29631 Disk Start            0000 (0)\n+29633 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-291D8 Ext File Attributes   41ED0010 (1106051088)\n+29635 Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-291DC Local Header Offset   00000129 (297)\n-291E0 Filename              'XXXXXXXXXXXXXXXXXXXXXX'\n+29639 Local Header Offset   00000129 (297)\n+2963D Filename              'XXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x291E0: Filename 'XXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2963D: Filename 'XXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x291E0: Directory 'XXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x2963D: Directory 'XXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x291B8: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x29615: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-291F6 CENTRAL HEADER #7     02014B50 (33639248)\n-291FA Created Zip Spec      14 (20) '2.0'\n-291FB Created OS            03 (3) 'Unix'\n-291FC Extract Zip Spec      0A (10) '1.0'\n-291FD Extract OS            00 (0) 'MS-DOS'\n-291FE General Purpose Flag  0800 (2048)\n+29653 CENTRAL HEADER #7     02014B50 (33639248)\n+29657 Created Zip Spec      14 (20) '2.0'\n+29658 Created OS            03 (3) 'Unix'\n+29659 Extract Zip Spec      0A (10) '1.0'\n+2965A Extract OS            00 (0) 'MS-DOS'\n+2965B General Purpose Flag  0800 (2048)\n       [Bit 11]              1 'Language Encoding'\n-29200 Compression Method    0000 (0) 'Stored'\n-29202 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-29206 CRC                   00000000 (0)\n-2920A Compressed Size       00000000 (0)\n-2920E Uncompressed Size     00000000 (0)\n-29212 Filename Length       001B (27)\n-29214 Extra Length          0000 (0)\n-29216 Comment Length        0000 (0)\n-29218 Disk Start            0000 (0)\n-2921A Int File Attributes   0000 (0)\n+2965D Compression Method    0000 (0) 'Stored'\n+2965F Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+29663 CRC                   00000000 (0)\n+29667 Compressed Size       00000000 (0)\n+2966B Uncompressed Size     00000000 (0)\n+2966F Filename Length       001B (27)\n+29671 Extra Length          0000 (0)\n+29673 Comment Length        0000 (0)\n+29675 Disk Start            0000 (0)\n+29677 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2921C Ext File Attributes   41ED0010 (1106051088)\n+29679 Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-29220 Local Header Offset   0000015D (349)\n-29224 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2967D Local Header Offset   0000015D (349)\n+29681 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x29224: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x29681: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x29224: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x29681: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x291FC: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x29659: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-2923F CENTRAL HEADER #8     02014B50 (33639248)\n-29243 Created Zip Spec      14 (20) '2.0'\n-29244 Created OS            03 (3) 'Unix'\n-29245 Extract Zip Spec      0A (10) '1.0'\n-29246 Extract OS            00 (0) 'MS-DOS'\n-29247 General Purpose Flag  0800 (2048)\n+2969C CENTRAL HEADER #8     02014B50 (33639248)\n+296A0 Created Zip Spec      14 (20) '2.0'\n+296A1 Created OS            03 (3) 'Unix'\n+296A2 Extract Zip Spec      0A (10) '1.0'\n+296A3 Extract OS            00 (0) 'MS-DOS'\n+296A4 General Purpose Flag  0800 (2048)\n       [Bit 11]              1 'Language Encoding'\n-29249 Compression Method    0000 (0) 'Stored'\n-2924B Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2924F CRC                   00000000 (0)\n-29253 Compressed Size       00000000 (0)\n-29257 Uncompressed Size     00000000 (0)\n-2925B Filename Length       001F (31)\n-2925D Extra Length          0000 (0)\n-2925F Comment Length        0000 (0)\n-29261 Disk Start            0000 (0)\n-29263 Int File Attributes   0000 (0)\n+296A6 Compression Method    0000 (0) 'Stored'\n+296A8 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+296AC CRC                   00000000 (0)\n+296B0 Compressed Size       00000000 (0)\n+296B4 Uncompressed Size     00000000 (0)\n+296B8 Filename Length       001F (31)\n+296BA Extra Length          0000 (0)\n+296BC Comment Length        0000 (0)\n+296BE Disk Start            0000 (0)\n+296C0 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-29265 Ext File Attributes   41ED0010 (1106051088)\n+296C2 Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-29269 Local Header Offset   00000196 (406)\n-2926D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+296C6 Local Header Offset   00000196 (406)\n+296CA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2926D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x296CA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x2926D: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x296CA: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x29245: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x296A2: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-2928C CENTRAL HEADER #9     02014B50 (33639248)\n-29290 Created Zip Spec      14 (20) '2.0'\n-29291 Created OS            03 (3) 'Unix'\n-29292 Extract Zip Spec      0A (10) '1.0'\n-29293 Extract OS            00 (0) 'MS-DOS'\n-29294 General Purpose Flag  0800 (2048)\n+296E9 CENTRAL HEADER #9     02014B50 (33639248)\n+296ED Created Zip Spec      14 (20) '2.0'\n+296EE Created OS            03 (3) 'Unix'\n+296EF Extract Zip Spec      0A (10) '1.0'\n+296F0 Extract OS            00 (0) 'MS-DOS'\n+296F1 General Purpose Flag  0800 (2048)\n       [Bit 11]              1 'Language Encoding'\n-29296 Compression Method    0000 (0) 'Stored'\n-29298 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2929C CRC                   00000000 (0)\n-292A0 Compressed Size       00000000 (0)\n-292A4 Uncompressed Size     00000000 (0)\n-292A8 Filename Length       0015 (21)\n-292AA Extra Length          0000 (0)\n-292AC Comment Length        0000 (0)\n-292AE Disk Start            0000 (0)\n-292B0 Int File Attributes   0000 (0)\n+296F3 Compression Method    0000 (0) 'Stored'\n+296F5 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+296F9 CRC                   00000000 (0)\n+296FD Compressed Size       00000000 (0)\n+29701 Uncompressed Size     00000000 (0)\n+29705 Filename Length       0015 (21)\n+29707 Extra Length          0000 (0)\n+29709 Comment Length        0000 (0)\n+2970B Disk Start            0000 (0)\n+2970D Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-292B2 Ext File Attributes   41ED0010 (1106051088)\n+2970F Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-292B6 Local Header Offset   000001D3 (467)\n-292BA Filename              'XXXXXXXXXXXXXXXXXXXXX'\n+29713 Local Header Offset   000001D3 (467)\n+29717 Filename              'XXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x292BA: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x29717: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x292BA: Directory 'XXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x29717: Directory 'XXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x29292: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x296EF: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXX'\n #\n \n-292CF CENTRAL HEADER #10    02014B50 (33639248)\n-292D3 Created Zip Spec      14 (20) '2.0'\n-292D4 Created OS            03 (3) 'Unix'\n-292D5 Extract Zip Spec      0A (10) '1.0'\n-292D6 Extract OS            00 (0) 'MS-DOS'\n-292D7 General Purpose Flag  0800 (2048)\n+2972C CENTRAL HEADER #10    02014B50 (33639248)\n+29730 Created Zip Spec      14 (20) '2.0'\n+29731 Created OS            03 (3) 'Unix'\n+29732 Extract Zip Spec      0A (10) '1.0'\n+29733 Extract OS            00 (0) 'MS-DOS'\n+29734 General Purpose Flag  0800 (2048)\n       [Bit 11]              1 'Language Encoding'\n-292D9 Compression Method    0000 (0) 'Stored'\n-292DB Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-292DF CRC                   00000000 (0)\n-292E3 Compressed Size       00000000 (0)\n-292E7 Uncompressed Size     00000000 (0)\n-292EB Filename Length       001E (30)\n-292ED Extra Length          0000 (0)\n-292EF Comment Length        0000 (0)\n-292F1 Disk Start            0000 (0)\n-292F3 Int File Attributes   0000 (0)\n+29736 Compression Method    0000 (0) 'Stored'\n+29738 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2973C CRC                   00000000 (0)\n+29740 Compressed Size       00000000 (0)\n+29744 Uncompressed Size     00000000 (0)\n+29748 Filename Length       001E (30)\n+2974A Extra Length          0000 (0)\n+2974C Comment Length        0000 (0)\n+2974E Disk Start            0000 (0)\n+29750 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-292F5 Ext File Attributes   41ED0010 (1106051088)\n+29752 Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-292F9 Local Header Offset   00000206 (518)\n-292FD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+29756 Local Header Offset   00000206 (518)\n+2975A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x292FD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2975A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x292FD: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x2975A: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x292D5: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x29732: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-2931B CENTRAL HEADER #11    02014B50 (33639248)\n-2931F Created Zip Spec      14 (20) '2.0'\n-29320 Created OS            03 (3) 'Unix'\n-29321 Extract Zip Spec      0A (10) '1.0'\n-29322 Extract OS            00 (0) 'MS-DOS'\n-29323 General Purpose Flag  0800 (2048)\n+29778 CENTRAL HEADER #11    02014B50 (33639248)\n+2977C Created Zip Spec      14 (20) '2.0'\n+2977D Created OS            03 (3) 'Unix'\n+2977E Extract Zip Spec      0A (10) '1.0'\n+2977F Extract OS            00 (0) 'MS-DOS'\n+29780 General Purpose Flag  0800 (2048)\n       [Bit 11]              1 'Language Encoding'\n-29325 Compression Method    0000 (0) 'Stored'\n-29327 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2932B CRC                   00000000 (0)\n-2932F Compressed Size       00000000 (0)\n-29333 Uncompressed Size     00000000 (0)\n-29337 Filename Length       001F (31)\n-29339 Extra Length          0000 (0)\n-2933B Comment Length        0000 (0)\n-2933D Disk Start            0000 (0)\n-2933F Int File Attributes   0000 (0)\n+29782 Compression Method    0000 (0) 'Stored'\n+29784 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+29788 CRC                   00000000 (0)\n+2978C Compressed Size       00000000 (0)\n+29790 Uncompressed Size     00000000 (0)\n+29794 Filename Length       001F (31)\n+29796 Extra Length          0000 (0)\n+29798 Comment Length        0000 (0)\n+2979A Disk Start            0000 (0)\n+2979C Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-29341 Ext File Attributes   41ED0010 (1106051088)\n+2979E Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-29345 Local Header Offset   00000242 (578)\n-29349 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+297A2 Local Header Offset   00000242 (578)\n+297A6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x29349: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x297A6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x29349: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x297A6: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x29321: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2977E: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-29368 CENTRAL HEADER #12    02014B50 (33639248)\n-2936C Created Zip Spec      14 (20) '2.0'\n-2936D Created OS            03 (3) 'Unix'\n-2936E Extract Zip Spec      0A (10) '1.0'\n-2936F Extract OS            00 (0) 'MS-DOS'\n-29370 General Purpose Flag  0800 (2048)\n+297C5 CENTRAL HEADER #12    02014B50 (33639248)\n+297C9 Created Zip Spec      14 (20) '2.0'\n+297CA Created OS            03 (3) 'Unix'\n+297CB Extract Zip Spec      0A (10) '1.0'\n+297CC Extract OS            00 (0) 'MS-DOS'\n+297CD General Purpose Flag  0800 (2048)\n       [Bit 11]              1 'Language Encoding'\n-29372 Compression Method    0000 (0) 'Stored'\n-29374 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-29378 CRC                   00000000 (0)\n-2937C Compressed Size       00000000 (0)\n-29380 Uncompressed Size     00000000 (0)\n-29384 Filename Length       001B (27)\n-29386 Extra Length          0000 (0)\n-29388 Comment Length        0000 (0)\n-2938A Disk Start            0000 (0)\n-2938C Int File Attributes   0000 (0)\n+297CF Compression Method    0000 (0) 'Stored'\n+297D1 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+297D5 CRC                   00000000 (0)\n+297D9 Compressed Size       00000000 (0)\n+297DD Uncompressed Size     00000000 (0)\n+297E1 Filename Length       001B (27)\n+297E3 Extra Length          0000 (0)\n+297E5 Comment Length        0000 (0)\n+297E7 Disk Start            0000 (0)\n+297E9 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2938E Ext File Attributes   41ED0010 (1106051088)\n+297EB Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-29392 Local Header Offset   0000027F (639)\n-29396 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+297EF Local Header Offset   0000027F (639)\n+297F3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x29396: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x297F3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x29396: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x297F3: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x2936E: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x297CB: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-293B1 CENTRAL HEADER #13    02014B50 (33639248)\n-293B5 Created Zip Spec      14 (20) '2.0'\n-293B6 Created OS            03 (3) 'Unix'\n-293B7 Extract Zip Spec      0A (10) '1.0'\n-293B8 Extract OS            00 (0) 'MS-DOS'\n-293B9 General Purpose Flag  0800 (2048)\n+2980E CENTRAL HEADER #13    02014B50 (33639248)\n+29812 Created Zip Spec      14 (20) '2.0'\n+29813 Created OS            03 (3) 'Unix'\n+29814 Extract Zip Spec      0A (10) '1.0'\n+29815 Extract OS            00 (0) 'MS-DOS'\n+29816 General Purpose Flag  0800 (2048)\n       [Bit 11]              1 'Language Encoding'\n-293BB Compression Method    0000 (0) 'Stored'\n-293BD Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-293C1 CRC                   00000000 (0)\n-293C5 Compressed Size       00000000 (0)\n-293C9 Uncompressed Size     00000000 (0)\n-293CD Filename Length       001D (29)\n-293CF Extra Length          0000 (0)\n-293D1 Comment Length        0000 (0)\n-293D3 Disk Start            0000 (0)\n-293D5 Int File Attributes   0000 (0)\n+29818 Compression Method    0000 (0) 'Stored'\n+2981A Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2981E CRC                   00000000 (0)\n+29822 Compressed Size       00000000 (0)\n+29826 Uncompressed Size     00000000 (0)\n+2982A Filename Length       001D (29)\n+2982C Extra Length          0000 (0)\n+2982E Comment Length        0000 (0)\n+29830 Disk Start            0000 (0)\n+29832 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-293D7 Ext File Attributes   41ED0010 (1106051088)\n+29834 Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-293DB Local Header Offset   000002B8 (696)\n-293DF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+29838 Local Header Offset   000002B8 (696)\n+2983C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x293DF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2983C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x293DF: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x2983C: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x293B7: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x29814: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-293FC CENTRAL HEADER #14    02014B50 (33639248)\n-29400 Created Zip Spec      14 (20) '2.0'\n-29401 Created OS            03 (3) 'Unix'\n-29402 Extract Zip Spec      0A (10) '1.0'\n-29403 Extract OS            00 (0) 'MS-DOS'\n-29404 General Purpose Flag  0800 (2048)\n+29859 CENTRAL HEADER #14    02014B50 (33639248)\n+2985D Created Zip Spec      14 (20) '2.0'\n+2985E Created OS            03 (3) 'Unix'\n+2985F Extract Zip Spec      0A (10) '1.0'\n+29860 Extract OS            00 (0) 'MS-DOS'\n+29861 General Purpose Flag  0800 (2048)\n       [Bit 11]              1 'Language Encoding'\n-29406 Compression Method    0000 (0) 'Stored'\n-29408 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2940C CRC                   00000000 (0)\n-29410 Compressed Size       00000000 (0)\n-29414 Uncompressed Size     00000000 (0)\n-29418 Filename Length       001D (29)\n-2941A Extra Length          0000 (0)\n-2941C Comment Length        0000 (0)\n-2941E Disk Start            0000 (0)\n-29420 Int File Attributes   0000 (0)\n+29863 Compression Method    0000 (0) 'Stored'\n+29865 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+29869 CRC                   00000000 (0)\n+2986D Compressed Size       00000000 (0)\n+29871 Uncompressed Size     00000000 (0)\n+29875 Filename Length       001D (29)\n+29877 Extra Length          0000 (0)\n+29879 Comment Length        0000 (0)\n+2987B Disk Start            0000 (0)\n+2987D Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-29422 Ext File Attributes   41ED0010 (1106051088)\n+2987F Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-29426 Local Header Offset   000002F3 (755)\n-2942A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+29883 Local Header Offset   000002F3 (755)\n+29887 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2942A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x29887: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x2942A: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x29887: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x29402: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2985F: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-29447 CENTRAL HEADER #15    02014B50 (33639248)\n-2944B Created Zip Spec      14 (20) '2.0'\n-2944C Created OS            03 (3) 'Unix'\n-2944D Extract Zip Spec      0A (10) '1.0'\n-2944E Extract OS            00 (0) 'MS-DOS'\n-2944F General Purpose Flag  0800 (2048)\n+298A4 CENTRAL HEADER #15    02014B50 (33639248)\n+298A8 Created Zip Spec      14 (20) '2.0'\n+298A9 Created OS            03 (3) 'Unix'\n+298AA Extract Zip Spec      0A (10) '1.0'\n+298AB Extract OS            00 (0) 'MS-DOS'\n+298AC General Purpose Flag  0800 (2048)\n       [Bit 11]              1 'Language Encoding'\n-29451 Compression Method    0000 (0) 'Stored'\n-29453 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-29457 CRC                   00000000 (0)\n-2945B Compressed Size       00000000 (0)\n-2945F Uncompressed Size     00000000 (0)\n-29463 Filename Length       0019 (25)\n-29465 Extra Length          0000 (0)\n-29467 Comment Length        0000 (0)\n-29469 Disk Start            0000 (0)\n-2946B Int File Attributes   0000 (0)\n+298AE Compression Method    0000 (0) 'Stored'\n+298B0 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+298B4 CRC                   00000000 (0)\n+298B8 Compressed Size       00000000 (0)\n+298BC Uncompressed Size     00000000 (0)\n+298C0 Filename Length       0019 (25)\n+298C2 Extra Length          0000 (0)\n+298C4 Comment Length        0000 (0)\n+298C6 Disk Start            0000 (0)\n+298C8 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2946D Ext File Attributes   41ED0010 (1106051088)\n+298CA Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-29471 Local Header Offset   0000032E (814)\n-29475 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXX'\n+298CE Local Header Offset   0000032E (814)\n+298D2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x29475: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x298D2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x29475: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x298D2: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x2944D: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x298AA: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-2948E CENTRAL HEADER #16    02014B50 (33639248)\n-29492 Created Zip Spec      14 (20) '2.0'\n-29493 Created OS            03 (3) 'Unix'\n-29494 Extract Zip Spec      0A (10) '1.0'\n-29495 Extract OS            00 (0) 'MS-DOS'\n-29496 General Purpose Flag  0800 (2048)\n+298EB CENTRAL HEADER #16    02014B50 (33639248)\n+298EF Created Zip Spec      14 (20) '2.0'\n+298F0 Created OS            03 (3) 'Unix'\n+298F1 Extract Zip Spec      0A (10) '1.0'\n+298F2 Extract OS            00 (0) 'MS-DOS'\n+298F3 General Purpose Flag  0800 (2048)\n       [Bit 11]              1 'Language Encoding'\n-29498 Compression Method    0000 (0) 'Stored'\n-2949A Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2949E CRC                   00000000 (0)\n-294A2 Compressed Size       00000000 (0)\n-294A6 Uncompressed Size     00000000 (0)\n-294AA Filename Length       0016 (22)\n-294AC Extra Length          0000 (0)\n-294AE Comment Length        0000 (0)\n-294B0 Disk Start            0000 (0)\n-294B2 Int File Attributes   0000 (0)\n+298F5 Compression Method    0000 (0) 'Stored'\n+298F7 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+298FB CRC                   00000000 (0)\n+298FF Compressed Size       00000000 (0)\n+29903 Uncompressed Size     00000000 (0)\n+29907 Filename Length       0016 (22)\n+29909 Extra Length          0000 (0)\n+2990B Comment Length        0000 (0)\n+2990D Disk Start            0000 (0)\n+2990F Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-294B4 Ext File Attributes   41ED0010 (1106051088)\n+29911 Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-294B8 Local Header Offset   00000365 (869)\n-294BC Filename              'XXXXXXXXXXXXXXXXXXXXXX'\n+29915 Local Header Offset   00000365 (869)\n+29919 Filename              'XXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x294BC: Filename 'XXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x29919: Filename 'XXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x294BC: Directory 'XXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x29919: Directory 'XXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x29494: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x298F1: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-294D2 CENTRAL HEADER #17    02014B50 (33639248)\n-294D6 Created Zip Spec      14 (20) '2.0'\n-294D7 Created OS            03 (3) 'Unix'\n-294D8 Extract Zip Spec      0A (10) '1.0'\n-294D9 Extract OS            00 (0) 'MS-DOS'\n-294DA General Purpose Flag  0800 (2048)\n+2992F CENTRAL HEADER #17    02014B50 (33639248)\n+29933 Created Zip Spec      14 (20) '2.0'\n+29934 Created OS            03 (3) 'Unix'\n+29935 Extract Zip Spec      0A (10) '1.0'\n+29936 Extract OS            00 (0) 'MS-DOS'\n+29937 General Purpose Flag  0800 (2048)\n       [Bit 11]              1 'Language Encoding'\n-294DC Compression Method    0000 (0) 'Stored'\n-294DE Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-294E2 CRC                   00000000 (0)\n-294E6 Compressed Size       00000000 (0)\n-294EA Uncompressed Size     00000000 (0)\n-294EE Filename Length       001B (27)\n-294F0 Extra Length          0000 (0)\n-294F2 Comment Length        0000 (0)\n-294F4 Disk Start            0000 (0)\n-294F6 Int File Attributes   0000 (0)\n+29939 Compression Method    0000 (0) 'Stored'\n+2993B Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2993F CRC                   00000000 (0)\n+29943 Compressed Size       00000000 (0)\n+29947 Uncompressed Size     00000000 (0)\n+2994B Filename Length       001B (27)\n+2994D Extra Length          0000 (0)\n+2994F Comment Length        0000 (0)\n+29951 Disk Start            0000 (0)\n+29953 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-294F8 Ext File Attributes   41ED0010 (1106051088)\n+29955 Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-294FC Local Header Offset   00000399 (921)\n-29500 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+29959 Local Header Offset   00000399 (921)\n+2995D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x29500: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2995D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x29500: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x2995D: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x294D8: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x29935: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-2951B CENTRAL HEADER #18    02014B50 (33639248)\n-2951F Created Zip Spec      14 (20) '2.0'\n-29520 Created OS            03 (3) 'Unix'\n-29521 Extract Zip Spec      0A (10) '1.0'\n-29522 Extract OS            00 (0) 'MS-DOS'\n-29523 General Purpose Flag  0800 (2048)\n+29978 CENTRAL HEADER #18    02014B50 (33639248)\n+2997C Created Zip Spec      14 (20) '2.0'\n+2997D Created OS            03 (3) 'Unix'\n+2997E Extract Zip Spec      0A (10) '1.0'\n+2997F Extract OS            00 (0) 'MS-DOS'\n+29980 General Purpose Flag  0800 (2048)\n       [Bit 11]              1 'Language Encoding'\n-29525 Compression Method    0000 (0) 'Stored'\n-29527 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2952B CRC                   00000000 (0)\n-2952F Compressed Size       00000000 (0)\n-29533 Uncompressed Size     00000000 (0)\n-29537 Filename Length       0020 (32)\n-29539 Extra Length          0000 (0)\n-2953B Comment Length        0000 (0)\n-2953D Disk Start            0000 (0)\n-2953F Int File Attributes   0000 (0)\n+29982 Compression Method    0000 (0) 'Stored'\n+29984 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+29988 CRC                   00000000 (0)\n+2998C Compressed Size       00000000 (0)\n+29990 Uncompressed Size     00000000 (0)\n+29994 Filename Length       0020 (32)\n+29996 Extra Length          0000 (0)\n+29998 Comment Length        0000 (0)\n+2999A Disk Start            0000 (0)\n+2999C Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-29541 Ext File Attributes   41ED0010 (1106051088)\n+2999E Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-29545 Local Header Offset   000003D2 (978)\n-29549 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+299A2 Local Header Offset   000003D2 (978)\n+299A6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x29549: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x299A6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x29549: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x299A6: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x29521: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2997E: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-29569 CENTRAL HEADER #19    02014B50 (33639248)\n-2956D Created Zip Spec      14 (20) '2.0'\n-2956E Created OS            03 (3) 'Unix'\n-2956F Extract Zip Spec      0A (10) '1.0'\n-29570 Extract OS            00 (0) 'MS-DOS'\n-29571 General Purpose Flag  0800 (2048)\n+299C6 CENTRAL HEADER #19    02014B50 (33639248)\n+299CA Created Zip Spec      14 (20) '2.0'\n+299CB Created OS            03 (3) 'Unix'\n+299CC Extract Zip Spec      0A (10) '1.0'\n+299CD Extract OS            00 (0) 'MS-DOS'\n+299CE General Purpose Flag  0800 (2048)\n       [Bit 11]              1 'Language Encoding'\n-29573 Compression Method    0000 (0) 'Stored'\n-29575 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-29579 CRC                   00000000 (0)\n-2957D Compressed Size       00000000 (0)\n-29581 Uncompressed Size     00000000 (0)\n-29585 Filename Length       0020 (32)\n-29587 Extra Length          0000 (0)\n-29589 Comment Length        0000 (0)\n-2958B Disk Start            0000 (0)\n-2958D Int File Attributes   0000 (0)\n+299D0 Compression Method    0000 (0) 'Stored'\n+299D2 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+299D6 CRC                   00000000 (0)\n+299DA Compressed Size       00000000 (0)\n+299DE Uncompressed Size     00000000 (0)\n+299E2 Filename Length       0020 (32)\n+299E4 Extra Length          0000 (0)\n+299E6 Comment Length        0000 (0)\n+299E8 Disk Start            0000 (0)\n+299EA Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2958F Ext File Attributes   41ED0010 (1106051088)\n+299EC Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-29593 Local Header Offset   00000410 (1040)\n-29597 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+299F0 Local Header Offset   00000410 (1040)\n+299F4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x29597: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x299F4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x29597: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x299F4: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x2956F: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x299CC: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-295B7 CENTRAL HEADER #20    02014B50 (33639248)\n-295BB Created Zip Spec      14 (20) '2.0'\n-295BC Created OS            03 (3) 'Unix'\n-295BD Extract Zip Spec      0A (10) '1.0'\n-295BE Extract OS            00 (0) 'MS-DOS'\n-295BF General Purpose Flag  0800 (2048)\n+29A14 CENTRAL HEADER #20    02014B50 (33639248)\n+29A18 Created Zip Spec      14 (20) '2.0'\n+29A19 Created OS            03 (3) 'Unix'\n+29A1A Extract Zip Spec      0A (10) '1.0'\n+29A1B Extract OS            00 (0) 'MS-DOS'\n+29A1C General Purpose Flag  0800 (2048)\n       [Bit 11]              1 'Language Encoding'\n-295C1 Compression Method    0000 (0) 'Stored'\n-295C3 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-295C7 CRC                   00000000 (0)\n-295CB Compressed Size       00000000 (0)\n-295CF Uncompressed Size     00000000 (0)\n-295D3 Filename Length       001C (28)\n-295D5 Extra Length          0000 (0)\n-295D7 Comment Length        0000 (0)\n-295D9 Disk Start            0000 (0)\n-295DB Int File Attributes   0000 (0)\n+29A1E Compression Method    0000 (0) 'Stored'\n+29A20 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+29A24 CRC                   00000000 (0)\n+29A28 Compressed Size       00000000 (0)\n+29A2C Uncompressed Size     00000000 (0)\n+29A30 Filename Length       001C (28)\n+29A32 Extra Length          0000 (0)\n+29A34 Comment Length        0000 (0)\n+29A36 Disk Start            0000 (0)\n+29A38 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-295DD Ext File Attributes   41ED0010 (1106051088)\n+29A3A Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-295E1 Local Header Offset   0000044E (1102)\n-295E5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+29A3E Local Header Offset   0000044E (1102)\n+29A42 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x295E5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x29A42: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x295E5: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x29A42: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x295BD: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x29A1A: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-29601 CENTRAL HEADER #21    02014B50 (33639248)\n-29605 Created Zip Spec      14 (20) '2.0'\n-29606 Created OS            03 (3) 'Unix'\n-29607 Extract Zip Spec      0A (10) '1.0'\n-29608 Extract OS            00 (0) 'MS-DOS'\n-29609 General Purpose Flag  0800 (2048)\n+29A5E CENTRAL HEADER #21    02014B50 (33639248)\n+29A62 Created Zip Spec      14 (20) '2.0'\n+29A63 Created OS            03 (3) 'Unix'\n+29A64 Extract Zip Spec      0A (10) '1.0'\n+29A65 Extract OS            00 (0) 'MS-DOS'\n+29A66 General Purpose Flag  0800 (2048)\n       [Bit 11]              1 'Language Encoding'\n-2960B Compression Method    0000 (0) 'Stored'\n-2960D Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-29611 CRC                   00000000 (0)\n-29615 Compressed Size       00000000 (0)\n-29619 Uncompressed Size     00000000 (0)\n-2961D Filename Length       001C (28)\n-2961F Extra Length          0000 (0)\n-29621 Comment Length        0000 (0)\n-29623 Disk Start            0000 (0)\n-29625 Int File Attributes   0000 (0)\n+29A68 Compression Method    0000 (0) 'Stored'\n+29A6A Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+29A6E CRC                   00000000 (0)\n+29A72 Compressed Size       00000000 (0)\n+29A76 Uncompressed Size     00000000 (0)\n+29A7A Filename Length       001C (28)\n+29A7C Extra Length          0000 (0)\n+29A7E Comment Length        0000 (0)\n+29A80 Disk Start            0000 (0)\n+29A82 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-29627 Ext File Attributes   41ED0010 (1106051088)\n+29A84 Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-2962B Local Header Offset   00000488 (1160)\n-2962F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+29A88 Local Header Offset   00000488 (1160)\n+29A8C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2962F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x29A8C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x2962F: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x29A8C: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x29607: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x29A64: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-2964B CENTRAL HEADER #22    02014B50 (33639248)\n-2964F Created Zip Spec      14 (20) '2.0'\n-29650 Created OS            03 (3) 'Unix'\n-29651 Extract Zip Spec      0A (10) '1.0'\n-29652 Extract OS            00 (0) 'MS-DOS'\n-29653 General Purpose Flag  0800 (2048)\n+29AA8 CENTRAL HEADER #22    02014B50 (33639248)\n+29AAC Created Zip Spec      14 (20) '2.0'\n+29AAD Created OS            03 (3) 'Unix'\n+29AAE Extract Zip Spec      0A (10) '1.0'\n+29AAF Extract OS            00 (0) 'MS-DOS'\n+29AB0 General Purpose Flag  0800 (2048)\n       [Bit 11]              1 'Language Encoding'\n-29655 Compression Method    0000 (0) 'Stored'\n-29657 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2965B CRC                   00000000 (0)\n-2965F Compressed Size       00000000 (0)\n-29663 Uncompressed Size     00000000 (0)\n-29667 Filename Length       0027 (39)\n-29669 Extra Length          0000 (0)\n-2966B Comment Length        0000 (0)\n-2966D Disk Start            0000 (0)\n-2966F Int File Attributes   0000 (0)\n+29AB2 Compression Method    0000 (0) 'Stored'\n+29AB4 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+29AB8 CRC                   00000000 (0)\n+29ABC Compressed Size       00000000 (0)\n+29AC0 Uncompressed Size     00000000 (0)\n+29AC4 Filename Length       0027 (39)\n+29AC6 Extra Length          0000 (0)\n+29AC8 Comment Length        0000 (0)\n+29ACA Disk Start            0000 (0)\n+29ACC Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-29671 Ext File Attributes   41ED0010 (1106051088)\n+29ACE Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-29675 Local Header Offset   000004C2 (1218)\n-29679 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+29AD2 Local Header Offset   000004C2 (1218)\n+29AD6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x29679: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x29AD6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x29679: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x29AD6: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x29651: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x29AAE: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-296A0 CENTRAL HEADER #23    02014B50 (33639248)\n-296A4 Created Zip Spec      14 (20) '2.0'\n-296A5 Created OS            03 (3) 'Unix'\n-296A6 Extract Zip Spec      0A (10) '1.0'\n-296A7 Extract OS            00 (0) 'MS-DOS'\n-296A8 General Purpose Flag  0800 (2048)\n+29AFD CENTRAL HEADER #23    02014B50 (33639248)\n+29B01 Created Zip Spec      14 (20) '2.0'\n+29B02 Created OS            03 (3) 'Unix'\n+29B03 Extract Zip Spec      0A (10) '1.0'\n+29B04 Extract OS            00 (0) 'MS-DOS'\n+29B05 General Purpose Flag  0800 (2048)\n       [Bit 11]              1 'Language Encoding'\n-296AA Compression Method    0000 (0) 'Stored'\n-296AC Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-296B0 CRC                   00000000 (0)\n-296B4 Compressed Size       00000000 (0)\n-296B8 Uncompressed Size     00000000 (0)\n-296BC Filename Length       001F (31)\n-296BE Extra Length          0000 (0)\n-296C0 Comment Length        0000 (0)\n-296C2 Disk Start            0000 (0)\n-296C4 Int File Attributes   0000 (0)\n+29B07 Compression Method    0000 (0) 'Stored'\n+29B09 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+29B0D CRC                   00000000 (0)\n+29B11 Compressed Size       00000000 (0)\n+29B15 Uncompressed Size     00000000 (0)\n+29B19 Filename Length       001F (31)\n+29B1B Extra Length          0000 (0)\n+29B1D Comment Length        0000 (0)\n+29B1F Disk Start            0000 (0)\n+29B21 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-296C6 Ext File Attributes   41ED0010 (1106051088)\n+29B23 Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-296CA Local Header Offset   00000507 (1287)\n-296CE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+29B27 Local Header Offset   00000507 (1287)\n+29B2B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x296CE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x29B2B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x296CE: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x29B2B: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x296A6: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x29B03: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-296ED CENTRAL HEADER #24    02014B50 (33639248)\n-296F1 Created Zip Spec      14 (20) '2.0'\n-296F2 Created OS            03 (3) 'Unix'\n-296F3 Extract Zip Spec      0A (10) '1.0'\n-296F4 Extract OS            00 (0) 'MS-DOS'\n-296F5 General Purpose Flag  0800 (2048)\n+29B4A CENTRAL HEADER #24    02014B50 (33639248)\n+29B4E Created Zip Spec      14 (20) '2.0'\n+29B4F Created OS            03 (3) 'Unix'\n+29B50 Extract Zip Spec      0A (10) '1.0'\n+29B51 Extract OS            00 (0) 'MS-DOS'\n+29B52 General Purpose Flag  0800 (2048)\n       [Bit 11]              1 'Language Encoding'\n-296F7 Compression Method    0000 (0) 'Stored'\n-296F9 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-296FD CRC                   00000000 (0)\n-29701 Compressed Size       00000000 (0)\n-29705 Uncompressed Size     00000000 (0)\n-29709 Filename Length       0021 (33)\n-2970B Extra Length          0000 (0)\n-2970D Comment Length        0000 (0)\n-2970F Disk Start            0000 (0)\n-29711 Int File Attributes   0000 (0)\n+29B54 Compression Method    0000 (0) 'Stored'\n+29B56 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+29B5A CRC                   00000000 (0)\n+29B5E Compressed Size       00000000 (0)\n+29B62 Uncompressed Size     00000000 (0)\n+29B66 Filename Length       0021 (33)\n+29B68 Extra Length          0000 (0)\n+29B6A Comment Length        0000 (0)\n+29B6C Disk Start            0000 (0)\n+29B6E Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-29713 Ext File Attributes   41ED0010 (1106051088)\n+29B70 Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-29717 Local Header Offset   00000544 (1348)\n-2971B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+29B74 Local Header Offset   00000544 (1348)\n+29B78 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2971B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x29B78: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x2971B: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x29B78: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x296F3: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x29B50: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-2973C CENTRAL HEADER #25    02014B50 (33639248)\n-29740 Created Zip Spec      14 (20) '2.0'\n-29741 Created OS            03 (3) 'Unix'\n-29742 Extract Zip Spec      0A (10) '1.0'\n-29743 Extract OS            00 (0) 'MS-DOS'\n-29744 General Purpose Flag  0800 (2048)\n+29B99 CENTRAL HEADER #25    02014B50 (33639248)\n+29B9D Created Zip Spec      14 (20) '2.0'\n+29B9E Created OS            03 (3) 'Unix'\n+29B9F Extract Zip Spec      0A (10) '1.0'\n+29BA0 Extract OS            00 (0) 'MS-DOS'\n+29BA1 General Purpose Flag  0800 (2048)\n       [Bit 11]              1 'Language Encoding'\n-29746 Compression Method    0000 (0) 'Stored'\n-29748 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2974C CRC                   00000000 (0)\n-29750 Compressed Size       00000000 (0)\n-29754 Uncompressed Size     00000000 (0)\n-29758 Filename Length       001D (29)\n-2975A Extra Length          0000 (0)\n-2975C Comment Length        0000 (0)\n-2975E Disk Start            0000 (0)\n-29760 Int File Attributes   0000 (0)\n+29BA3 Compression Method    0000 (0) 'Stored'\n+29BA5 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+29BA9 CRC                   00000000 (0)\n+29BAD Compressed Size       00000000 (0)\n+29BB1 Uncompressed Size     00000000 (0)\n+29BB5 Filename Length       001D (29)\n+29BB7 Extra Length          0000 (0)\n+29BB9 Comment Length        0000 (0)\n+29BBB Disk Start            0000 (0)\n+29BBD Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-29762 Ext File Attributes   41ED0010 (1106051088)\n+29BBF Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-29766 Local Header Offset   00000583 (1411)\n-2976A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+29BC3 Local Header Offset   00000583 (1411)\n+29BC7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2976A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x29BC7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x2976A: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x29BC7: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x29742: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x29B9F: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-29787 CENTRAL HEADER #26    02014B50 (33639248)\n-2978B Created Zip Spec      14 (20) '2.0'\n-2978C Created OS            03 (3) 'Unix'\n-2978D Extract Zip Spec      0A (10) '1.0'\n-2978E Extract OS            00 (0) 'MS-DOS'\n-2978F General Purpose Flag  0800 (2048)\n+29BE4 CENTRAL HEADER #26    02014B50 (33639248)\n+29BE8 Created Zip Spec      14 (20) '2.0'\n+29BE9 Created OS            03 (3) 'Unix'\n+29BEA Extract Zip Spec      0A (10) '1.0'\n+29BEB Extract OS            00 (0) 'MS-DOS'\n+29BEC General Purpose Flag  0800 (2048)\n       [Bit 11]              1 'Language Encoding'\n-29791 Compression Method    0000 (0) 'Stored'\n-29793 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-29797 CRC                   00000000 (0)\n-2979B Compressed Size       00000000 (0)\n-2979F Uncompressed Size     00000000 (0)\n-297A3 Filename Length       001E (30)\n-297A5 Extra Length          0000 (0)\n-297A7 Comment Length        0000 (0)\n-297A9 Disk Start            0000 (0)\n-297AB Int File Attributes   0000 (0)\n+29BEE Compression Method    0000 (0) 'Stored'\n+29BF0 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+29BF4 CRC                   00000000 (0)\n+29BF8 Compressed Size       00000000 (0)\n+29BFC Uncompressed Size     00000000 (0)\n+29C00 Filename Length       001E (30)\n+29C02 Extra Length          0000 (0)\n+29C04 Comment Length        0000 (0)\n+29C06 Disk Start            0000 (0)\n+29C08 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-297AD Ext File Attributes   41ED0010 (1106051088)\n+29C0A Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-297B1 Local Header Offset   000005BE (1470)\n-297B5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+29C0E Local Header Offset   000005BE (1470)\n+29C12 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x297B5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x29C12: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x297B5: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x29C12: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x2978D: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x29BEA: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-297D3 CENTRAL HEADER #27    02014B50 (33639248)\n-297D7 Created Zip Spec      14 (20) '2.0'\n-297D8 Created OS            03 (3) 'Unix'\n-297D9 Extract Zip Spec      0A (10) '1.0'\n-297DA Extract OS            00 (0) 'MS-DOS'\n-297DB General Purpose Flag  0800 (2048)\n+29C30 CENTRAL HEADER #27    02014B50 (33639248)\n+29C34 Created Zip Spec      14 (20) '2.0'\n+29C35 Created OS            03 (3) 'Unix'\n+29C36 Extract Zip Spec      0A (10) '1.0'\n+29C37 Extract OS            00 (0) 'MS-DOS'\n+29C38 General Purpose Flag  0800 (2048)\n       [Bit 11]              1 'Language Encoding'\n-297DD Compression Method    0000 (0) 'Stored'\n-297DF Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-297E3 CRC                   00000000 (0)\n-297E7 Compressed Size       00000000 (0)\n-297EB Uncompressed Size     00000000 (0)\n-297EF Filename Length       0014 (20)\n-297F1 Extra Length          0000 (0)\n-297F3 Comment Length        0000 (0)\n-297F5 Disk Start            0000 (0)\n-297F7 Int File Attributes   0000 (0)\n+29C3A Compression Method    0000 (0) 'Stored'\n+29C3C Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+29C40 CRC                   00000000 (0)\n+29C44 Compressed Size       00000000 (0)\n+29C48 Uncompressed Size     00000000 (0)\n+29C4C Filename Length       0014 (20)\n+29C4E Extra Length          0000 (0)\n+29C50 Comment Length        0000 (0)\n+29C52 Disk Start            0000 (0)\n+29C54 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-297F9 Ext File Attributes   41ED0010 (1106051088)\n+29C56 Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-297FD Local Header Offset   000005FA (1530)\n-29801 Filename              'XXXXXXXXXXXXXXXXXXXX'\n+29C5A Local Header Offset   000005FA (1530)\n+29C5E Filename              'XXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x29801: Filename 'XXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x29C5E: Filename 'XXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x29801: Directory 'XXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x29C5E: Directory 'XXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x297D9: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x29C36: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXX'\n #\n \n-29815 CENTRAL HEADER #28    02014B50 (33639248)\n-29819 Created Zip Spec      14 (20) '2.0'\n-2981A Created OS            03 (3) 'Unix'\n-2981B Extract Zip Spec      0A (10) '1.0'\n-2981C Extract OS            00 (0) 'MS-DOS'\n-2981D General Purpose Flag  0800 (2048)\n+29C72 CENTRAL HEADER #28    02014B50 (33639248)\n+29C76 Created Zip Spec      14 (20) '2.0'\n+29C77 Created OS            03 (3) 'Unix'\n+29C78 Extract Zip Spec      0A (10) '1.0'\n+29C79 Extract OS            00 (0) 'MS-DOS'\n+29C7A General Purpose Flag  0800 (2048)\n       [Bit 11]              1 'Language Encoding'\n-2981F Compression Method    0000 (0) 'Stored'\n-29821 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-29825 CRC                   00000000 (0)\n-29829 Compressed Size       00000000 (0)\n-2982D Uncompressed Size     00000000 (0)\n-29831 Filename Length       001C (28)\n-29833 Extra Length          0000 (0)\n-29835 Comment Length        0000 (0)\n-29837 Disk Start            0000 (0)\n-29839 Int File Attributes   0000 (0)\n+29C7C Compression Method    0000 (0) 'Stored'\n+29C7E Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+29C82 CRC                   00000000 (0)\n+29C86 Compressed Size       00000000 (0)\n+29C8A Uncompressed Size     00000000 (0)\n+29C8E Filename Length       001C (28)\n+29C90 Extra Length          0000 (0)\n+29C92 Comment Length        0000 (0)\n+29C94 Disk Start            0000 (0)\n+29C96 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2983B Ext File Attributes   41ED0010 (1106051088)\n+29C98 Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-2983F Local Header Offset   0000062C (1580)\n-29843 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+29C9C Local Header Offset   0000062C (1580)\n+29CA0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x29843: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x29CA0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x29843: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x29CA0: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x2981B: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x29C78: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-2985F CENTRAL HEADER #29    02014B50 (33639248)\n-29863 Created Zip Spec      14 (20) '2.0'\n-29864 Created OS            03 (3) 'Unix'\n-29865 Extract Zip Spec      0A (10) '1.0'\n-29866 Extract OS            00 (0) 'MS-DOS'\n-29867 General Purpose Flag  0800 (2048)\n+29CBC CENTRAL HEADER #29    02014B50 (33639248)\n+29CC0 Created Zip Spec      14 (20) '2.0'\n+29CC1 Created OS            03 (3) 'Unix'\n+29CC2 Extract Zip Spec      0A (10) '1.0'\n+29CC3 Extract OS            00 (0) 'MS-DOS'\n+29CC4 General Purpose Flag  0800 (2048)\n       [Bit 11]              1 'Language Encoding'\n-29869 Compression Method    0000 (0) 'Stored'\n-2986B Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2986F CRC                   00000000 (0)\n-29873 Compressed Size       00000000 (0)\n-29877 Uncompressed Size     00000000 (0)\n-2987B Filename Length       0027 (39)\n-2987D Extra Length          0000 (0)\n-2987F Comment Length        0000 (0)\n-29881 Disk Start            0000 (0)\n-29883 Int File Attributes   0000 (0)\n+29CC6 Compression Method    0000 (0) 'Stored'\n+29CC8 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+29CCC CRC                   00000000 (0)\n+29CD0 Compressed Size       00000000 (0)\n+29CD4 Uncompressed Size     00000000 (0)\n+29CD8 Filename Length       0027 (39)\n+29CDA Extra Length          0000 (0)\n+29CDC Comment Length        0000 (0)\n+29CDE Disk Start            0000 (0)\n+29CE0 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-29885 Ext File Attributes   41ED0010 (1106051088)\n+29CE2 Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-29889 Local Header Offset   00000666 (1638)\n-2988D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+29CE6 Local Header Offset   00000666 (1638)\n+29CEA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2988D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x29CEA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x2988D: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x29CEA: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x29865: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x29CC2: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-298B4 CENTRAL HEADER #30    02014B50 (33639248)\n-298B8 Created Zip Spec      14 (20) '2.0'\n-298B9 Created OS            03 (3) 'Unix'\n-298BA Extract Zip Spec      0A (10) '1.0'\n-298BB Extract OS            00 (0) 'MS-DOS'\n-298BC General Purpose Flag  0800 (2048)\n+29D11 CENTRAL HEADER #30    02014B50 (33639248)\n+29D15 Created Zip Spec      14 (20) '2.0'\n+29D16 Created OS            03 (3) 'Unix'\n+29D17 Extract Zip Spec      0A (10) '1.0'\n+29D18 Extract OS            00 (0) 'MS-DOS'\n+29D19 General Purpose Flag  0800 (2048)\n       [Bit 11]              1 'Language Encoding'\n-298BE Compression Method    0000 (0) 'Stored'\n-298C0 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-298C4 CRC                   00000000 (0)\n-298C8 Compressed Size       00000000 (0)\n-298CC Uncompressed Size     00000000 (0)\n-298D0 Filename Length       0025 (37)\n-298D2 Extra Length          0000 (0)\n-298D4 Comment Length        0000 (0)\n-298D6 Disk Start            0000 (0)\n-298D8 Int File Attributes   0000 (0)\n+29D1B Compression Method    0000 (0) 'Stored'\n+29D1D Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+29D21 CRC                   00000000 (0)\n+29D25 Compressed Size       00000000 (0)\n+29D29 Uncompressed Size     00000000 (0)\n+29D2D Filename Length       0025 (37)\n+29D2F Extra Length          0000 (0)\n+29D31 Comment Length        0000 (0)\n+29D33 Disk Start            0000 (0)\n+29D35 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-298DA Ext File Attributes   41ED0010 (1106051088)\n+29D37 Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-298DE Local Header Offset   000006AB (1707)\n-298E2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+29D3B Local Header Offset   000006AB (1707)\n+29D3F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x298E2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x29D3F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x298E2: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x29D3F: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x298BA: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x29D17: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-29907 CENTRAL HEADER #31    02014B50 (33639248)\n-2990B Created Zip Spec      14 (20) '2.0'\n-2990C Created OS            03 (3) 'Unix'\n-2990D Extract Zip Spec      0A (10) '1.0'\n-2990E Extract OS            00 (0) 'MS-DOS'\n-2990F General Purpose Flag  0800 (2048)\n+29D64 CENTRAL HEADER #31    02014B50 (33639248)\n+29D68 Created Zip Spec      14 (20) '2.0'\n+29D69 Created OS            03 (3) 'Unix'\n+29D6A Extract Zip Spec      0A (10) '1.0'\n+29D6B Extract OS            00 (0) 'MS-DOS'\n+29D6C General Purpose Flag  0800 (2048)\n       [Bit 11]              1 'Language Encoding'\n-29911 Compression Method    0000 (0) 'Stored'\n-29913 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-29917 CRC                   00000000 (0)\n-2991B Compressed Size       00000000 (0)\n-2991F Uncompressed Size     00000000 (0)\n-29923 Filename Length       0026 (38)\n-29925 Extra Length          0000 (0)\n-29927 Comment Length        0000 (0)\n-29929 Disk Start            0000 (0)\n-2992B Int File Attributes   0000 (0)\n+29D6E Compression Method    0000 (0) 'Stored'\n+29D70 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+29D74 CRC                   00000000 (0)\n+29D78 Compressed Size       00000000 (0)\n+29D7C Uncompressed Size     00000000 (0)\n+29D80 Filename Length       0026 (38)\n+29D82 Extra Length          0000 (0)\n+29D84 Comment Length        0000 (0)\n+29D86 Disk Start            0000 (0)\n+29D88 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2992D Ext File Attributes   41ED0010 (1106051088)\n+29D8A Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-29931 Local Header Offset   000006EE (1774)\n-29935 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+29D8E Local Header Offset   000006EE (1774)\n+29D92 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x29935: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x29D92: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x29935: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x29D92: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x2990D: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x29D6A: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-2995B CENTRAL HEADER #32    02014B50 (33639248)\n-2995F Created Zip Spec      14 (20) '2.0'\n-29960 Created OS            03 (3) 'Unix'\n-29961 Extract Zip Spec      0A (10) '1.0'\n-29962 Extract OS            00 (0) 'MS-DOS'\n-29963 General Purpose Flag  0800 (2048)\n+29DB8 CENTRAL HEADER #32    02014B50 (33639248)\n+29DBC Created Zip Spec      14 (20) '2.0'\n+29DBD Created OS            03 (3) 'Unix'\n+29DBE Extract Zip Spec      0A (10) '1.0'\n+29DBF Extract OS            00 (0) 'MS-DOS'\n+29DC0 General Purpose Flag  0800 (2048)\n       [Bit 11]              1 'Language Encoding'\n-29965 Compression Method    0000 (0) 'Stored'\n-29967 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2996B CRC                   00000000 (0)\n-2996F Compressed Size       00000000 (0)\n-29973 Uncompressed Size     00000000 (0)\n-29977 Filename Length       001A (26)\n-29979 Extra Length          0000 (0)\n-2997B Comment Length        0000 (0)\n-2997D Disk Start            0000 (0)\n-2997F Int File Attributes   0000 (0)\n+29DC2 Compression Method    0000 (0) 'Stored'\n+29DC4 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+29DC8 CRC                   00000000 (0)\n+29DCC Compressed Size       00000000 (0)\n+29DD0 Uncompressed Size     00000000 (0)\n+29DD4 Filename Length       001A (26)\n+29DD6 Extra Length          0000 (0)\n+29DD8 Comment Length        0000 (0)\n+29DDA Disk Start            0000 (0)\n+29DDC Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-29981 Ext File Attributes   41ED0010 (1106051088)\n+29DDE Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-29985 Local Header Offset   00000732 (1842)\n-29989 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n+29DE2 Local Header Offset   00000732 (1842)\n+29DE6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x29989: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x29DE6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x29989: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x29DE6: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x29961: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x29DBE: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-299A3 CENTRAL HEADER #33    02014B50 (33639248)\n-299A7 Created Zip Spec      14 (20) '2.0'\n-299A8 Created OS            03 (3) 'Unix'\n-299A9 Extract Zip Spec      0A (10) '1.0'\n-299AA Extract OS            00 (0) 'MS-DOS'\n-299AB General Purpose Flag  0800 (2048)\n+29E00 CENTRAL HEADER #33    02014B50 (33639248)\n+29E04 Created Zip Spec      14 (20) '2.0'\n+29E05 Created OS            03 (3) 'Unix'\n+29E06 Extract Zip Spec      0A (10) '1.0'\n+29E07 Extract OS            00 (0) 'MS-DOS'\n+29E08 General Purpose Flag  0800 (2048)\n       [Bit 11]              1 'Language Encoding'\n-299AD Compression Method    0000 (0) 'Stored'\n-299AF Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-299B3 CRC                   00000000 (0)\n-299B7 Compressed Size       00000000 (0)\n-299BB Uncompressed Size     00000000 (0)\n-299BF Filename Length       0021 (33)\n-299C1 Extra Length          0000 (0)\n-299C3 Comment Length        0000 (0)\n-299C5 Disk Start            0000 (0)\n-299C7 Int File Attributes   0000 (0)\n+29E0A Compression Method    0000 (0) 'Stored'\n+29E0C Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+29E10 CRC                   00000000 (0)\n+29E14 Compressed Size       00000000 (0)\n+29E18 Uncompressed Size     00000000 (0)\n+29E1C Filename Length       0021 (33)\n+29E1E Extra Length          0000 (0)\n+29E20 Comment Length        0000 (0)\n+29E22 Disk Start            0000 (0)\n+29E24 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-299C9 Ext File Attributes   41ED0010 (1106051088)\n+29E26 Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-299CD Local Header Offset   0000076A (1898)\n-299D1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+29E2A Local Header Offset   0000076A (1898)\n+29E2E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x299D1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x29E2E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x299D1: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x29E2E: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x299A9: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x29E06: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-299F2 CENTRAL HEADER #34    02014B50 (33639248)\n-299F6 Created Zip Spec      14 (20) '2.0'\n-299F7 Created OS            03 (3) 'Unix'\n-299F8 Extract Zip Spec      0A (10) '1.0'\n-299F9 Extract OS            00 (0) 'MS-DOS'\n-299FA General Purpose Flag  0800 (2048)\n+29E4F CENTRAL HEADER #34    02014B50 (33639248)\n+29E53 Created Zip Spec      14 (20) '2.0'\n+29E54 Created OS            03 (3) 'Unix'\n+29E55 Extract Zip Spec      0A (10) '1.0'\n+29E56 Extract OS            00 (0) 'MS-DOS'\n+29E57 General Purpose Flag  0800 (2048)\n       [Bit 11]              1 'Language Encoding'\n-299FC Compression Method    0000 (0) 'Stored'\n-299FE Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-29A02 CRC                   00000000 (0)\n-29A06 Compressed Size       00000000 (0)\n-29A0A Uncompressed Size     00000000 (0)\n-29A0E Filename Length       0026 (38)\n-29A10 Extra Length          0000 (0)\n-29A12 Comment Length        0000 (0)\n-29A14 Disk Start            0000 (0)\n-29A16 Int File Attributes   0000 (0)\n+29E59 Compression Method    0000 (0) 'Stored'\n+29E5B Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+29E5F CRC                   00000000 (0)\n+29E63 Compressed Size       00000000 (0)\n+29E67 Uncompressed Size     00000000 (0)\n+29E6B Filename Length       0026 (38)\n+29E6D Extra Length          0000 (0)\n+29E6F Comment Length        0000 (0)\n+29E71 Disk Start            0000 (0)\n+29E73 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-29A18 Ext File Attributes   41ED0010 (1106051088)\n+29E75 Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-29A1C Local Header Offset   000007A9 (1961)\n-29A20 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+29E79 Local Header Offset   000007A9 (1961)\n+29E7D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x29A20: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x29E7D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x29A20: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x29E7D: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x299F8: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x29E55: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-29A46 CENTRAL HEADER #35    02014B50 (33639248)\n-29A4A Created Zip Spec      14 (20) '2.0'\n-29A4B Created OS            03 (3) 'Unix'\n-29A4C Extract Zip Spec      0A (10) '1.0'\n-29A4D Extract OS            00 (0) 'MS-DOS'\n-29A4E General Purpose Flag  0800 (2048)\n+29EA3 CENTRAL HEADER #35    02014B50 (33639248)\n+29EA7 Created Zip Spec      14 (20) '2.0'\n+29EA8 Created OS            03 (3) 'Unix'\n+29EA9 Extract Zip Spec      0A (10) '1.0'\n+29EAA Extract OS            00 (0) 'MS-DOS'\n+29EAB General Purpose Flag  0800 (2048)\n       [Bit 11]              1 'Language Encoding'\n-29A50 Compression Method    0000 (0) 'Stored'\n-29A52 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-29A56 CRC                   00000000 (0)\n-29A5A Compressed Size       00000000 (0)\n-29A5E Uncompressed Size     00000000 (0)\n-29A62 Filename Length       001A (26)\n-29A64 Extra Length          0000 (0)\n-29A66 Comment Length        0000 (0)\n-29A68 Disk Start            0000 (0)\n-29A6A Int File Attributes   0000 (0)\n+29EAD Compression Method    0000 (0) 'Stored'\n+29EAF Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+29EB3 CRC                   00000000 (0)\n+29EB7 Compressed Size       00000000 (0)\n+29EBB Uncompressed Size     00000000 (0)\n+29EBF Filename Length       001A (26)\n+29EC1 Extra Length          0000 (0)\n+29EC3 Comment Length        0000 (0)\n+29EC5 Disk Start            0000 (0)\n+29EC7 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-29A6C Ext File Attributes   41ED0010 (1106051088)\n+29EC9 Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-29A70 Local Header Offset   000007ED (2029)\n-29A74 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n+29ECD Local Header Offset   000007ED (2029)\n+29ED1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x29A74: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x29ED1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x29A74: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x29ED1: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x29A4C: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x29EA9: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-29A8E CENTRAL HEADER #36    02014B50 (33639248)\n-29A92 Created Zip Spec      14 (20) '2.0'\n-29A93 Created OS            03 (3) 'Unix'\n-29A94 Extract Zip Spec      0A (10) '1.0'\n-29A95 Extract OS            00 (0) 'MS-DOS'\n-29A96 General Purpose Flag  0800 (2048)\n+29EEB CENTRAL HEADER #36    02014B50 (33639248)\n+29EEF Created Zip Spec      14 (20) '2.0'\n+29EF0 Created OS            03 (3) 'Unix'\n+29EF1 Extract Zip Spec      0A (10) '1.0'\n+29EF2 Extract OS            00 (0) 'MS-DOS'\n+29EF3 General Purpose Flag  0800 (2048)\n       [Bit 11]              1 'Language Encoding'\n-29A98 Compression Method    0000 (0) 'Stored'\n-29A9A Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-29A9E CRC                   00000000 (0)\n-29AA2 Compressed Size       00000000 (0)\n-29AA6 Uncompressed Size     00000000 (0)\n-29AAA Filename Length       0014 (20)\n-29AAC Extra Length          0000 (0)\n-29AAE Comment Length        0000 (0)\n-29AB0 Disk Start            0000 (0)\n-29AB2 Int File Attributes   0000 (0)\n+29EF5 Compression Method    0000 (0) 'Stored'\n+29EF7 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+29EFB CRC                   00000000 (0)\n+29EFF Compressed Size       00000000 (0)\n+29F03 Uncompressed Size     00000000 (0)\n+29F07 Filename Length       0014 (20)\n+29F09 Extra Length          0000 (0)\n+29F0B Comment Length        0000 (0)\n+29F0D Disk Start            0000 (0)\n+29F0F Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-29AB4 Ext File Attributes   41ED0010 (1106051088)\n+29F11 Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-29AB8 Local Header Offset   00000825 (2085)\n-29ABC Filename              'XXXXXXXXXXXXXXXXXXXX'\n+29F15 Local Header Offset   00000825 (2085)\n+29F19 Filename              'XXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x29ABC: Filename 'XXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x29F19: Filename 'XXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x29ABC: Directory 'XXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x29F19: Directory 'XXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x29A94: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x29EF1: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXX'\n #\n \n-29AD0 CENTRAL HEADER #37    02014B50 (33639248)\n-29AD4 Created Zip Spec      14 (20) '2.0'\n-29AD5 Created OS            03 (3) 'Unix'\n-29AD6 Extract Zip Spec      0A (10) '1.0'\n-29AD7 Extract OS            00 (0) 'MS-DOS'\n-29AD8 General Purpose Flag  0800 (2048)\n+29F2D CENTRAL HEADER #37    02014B50 (33639248)\n+29F31 Created Zip Spec      14 (20) '2.0'\n+29F32 Created OS            03 (3) 'Unix'\n+29F33 Extract Zip Spec      0A (10) '1.0'\n+29F34 Extract OS            00 (0) 'MS-DOS'\n+29F35 General Purpose Flag  0800 (2048)\n       [Bit 11]              1 'Language Encoding'\n-29ADA Compression Method    0000 (0) 'Stored'\n-29ADC Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-29AE0 CRC                   00000000 (0)\n-29AE4 Compressed Size       00000000 (0)\n-29AE8 Uncompressed Size     00000000 (0)\n-29AEC Filename Length       001B (27)\n-29AEE Extra Length          0000 (0)\n-29AF0 Comment Length        0000 (0)\n-29AF2 Disk Start            0000 (0)\n-29AF4 Int File Attributes   0000 (0)\n+29F37 Compression Method    0000 (0) 'Stored'\n+29F39 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+29F3D CRC                   00000000 (0)\n+29F41 Compressed Size       00000000 (0)\n+29F45 Uncompressed Size     00000000 (0)\n+29F49 Filename Length       001B (27)\n+29F4B Extra Length          0000 (0)\n+29F4D Comment Length        0000 (0)\n+29F4F Disk Start            0000 (0)\n+29F51 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-29AF6 Ext File Attributes   41ED0010 (1106051088)\n+29F53 Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-29AFA Local Header Offset   00000857 (2135)\n-29AFE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+29F57 Local Header Offset   00000857 (2135)\n+29F5B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x29AFE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x29F5B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x29AFE: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x29F5B: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x29AD6: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x29F33: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-29B19 CENTRAL HEADER #38    02014B50 (33639248)\n-29B1D Created Zip Spec      14 (20) '2.0'\n-29B1E Created OS            03 (3) 'Unix'\n-29B1F Extract Zip Spec      0A (10) '1.0'\n-29B20 Extract OS            00 (0) 'MS-DOS'\n-29B21 General Purpose Flag  0800 (2048)\n+29F76 CENTRAL HEADER #38    02014B50 (33639248)\n+29F7A Created Zip Spec      14 (20) '2.0'\n+29F7B Created OS            03 (3) 'Unix'\n+29F7C Extract Zip Spec      0A (10) '1.0'\n+29F7D Extract OS            00 (0) 'MS-DOS'\n+29F7E General Purpose Flag  0800 (2048)\n       [Bit 11]              1 'Language Encoding'\n-29B23 Compression Method    0000 (0) 'Stored'\n-29B25 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-29B29 CRC                   00000000 (0)\n-29B2D Compressed Size       00000000 (0)\n-29B31 Uncompressed Size     00000000 (0)\n-29B35 Filename Length       0016 (22)\n-29B37 Extra Length          0000 (0)\n-29B39 Comment Length        0000 (0)\n-29B3B Disk Start            0000 (0)\n-29B3D Int File Attributes   0000 (0)\n+29F80 Compression Method    0000 (0) 'Stored'\n+29F82 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+29F86 CRC                   00000000 (0)\n+29F8A Compressed Size       00000000 (0)\n+29F8E Uncompressed Size     00000000 (0)\n+29F92 Filename Length       0016 (22)\n+29F94 Extra Length          0000 (0)\n+29F96 Comment Length        0000 (0)\n+29F98 Disk Start            0000 (0)\n+29F9A Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-29B3F Ext File Attributes   41ED0010 (1106051088)\n+29F9C Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-29B43 Local Header Offset   00000890 (2192)\n-29B47 Filename              'XXXXXXXXXXXXXXXXXXXXXX'\n+29FA0 Local Header Offset   00000890 (2192)\n+29FA4 Filename              'XXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x29B47: Filename 'XXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x29FA4: Filename 'XXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x29B47: Directory 'XXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x29FA4: Directory 'XXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x29B1F: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x29F7C: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-29B5D CENTRAL HEADER #39    02014B50 (33639248)\n-29B61 Created Zip Spec      14 (20) '2.0'\n-29B62 Created OS            03 (3) 'Unix'\n-29B63 Extract Zip Spec      0A (10) '1.0'\n-29B64 Extract OS            00 (0) 'MS-DOS'\n-29B65 General Purpose Flag  0800 (2048)\n+29FBA CENTRAL HEADER #39    02014B50 (33639248)\n+29FBE Created Zip Spec      14 (20) '2.0'\n+29FBF Created OS            03 (3) 'Unix'\n+29FC0 Extract Zip Spec      0A (10) '1.0'\n+29FC1 Extract OS            00 (0) 'MS-DOS'\n+29FC2 General Purpose Flag  0800 (2048)\n       [Bit 11]              1 'Language Encoding'\n-29B67 Compression Method    0000 (0) 'Stored'\n-29B69 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-29B6D CRC                   00000000 (0)\n-29B71 Compressed Size       00000000 (0)\n-29B75 Uncompressed Size     00000000 (0)\n-29B79 Filename Length       0020 (32)\n-29B7B Extra Length          0000 (0)\n-29B7D Comment Length        0000 (0)\n-29B7F Disk Start            0000 (0)\n-29B81 Int File Attributes   0000 (0)\n+29FC4 Compression Method    0000 (0) 'Stored'\n+29FC6 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+29FCA CRC                   00000000 (0)\n+29FCE Compressed Size       00000000 (0)\n+29FD2 Uncompressed Size     00000000 (0)\n+29FD6 Filename Length       0020 (32)\n+29FD8 Extra Length          0000 (0)\n+29FDA Comment Length        0000 (0)\n+29FDC Disk Start            0000 (0)\n+29FDE Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-29B83 Ext File Attributes   41ED0010 (1106051088)\n+29FE0 Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-29B87 Local Header Offset   000008C4 (2244)\n-29B8B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+29FE4 Local Header Offset   000008C4 (2244)\n+29FE8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x29B8B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x29FE8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x29B8B: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x29FE8: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x29B63: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x29FC0: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-29BAB CENTRAL HEADER #40    02014B50 (33639248)\n-29BAF Created Zip Spec      14 (20) '2.0'\n-29BB0 Created OS            03 (3) 'Unix'\n-29BB1 Extract Zip Spec      0A (10) '1.0'\n-29BB2 Extract OS            00 (0) 'MS-DOS'\n-29BB3 General Purpose Flag  0800 (2048)\n+2A008 CENTRAL HEADER #40    02014B50 (33639248)\n+2A00C Created Zip Spec      14 (20) '2.0'\n+2A00D Created OS            03 (3) 'Unix'\n+2A00E Extract Zip Spec      0A (10) '1.0'\n+2A00F Extract OS            00 (0) 'MS-DOS'\n+2A010 General Purpose Flag  0800 (2048)\n       [Bit 11]              1 'Language Encoding'\n-29BB5 Compression Method    0000 (0) 'Stored'\n-29BB7 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-29BBB CRC                   00000000 (0)\n-29BBF Compressed Size       00000000 (0)\n-29BC3 Uncompressed Size     00000000 (0)\n-29BC7 Filename Length       001D (29)\n-29BC9 Extra Length          0000 (0)\n-29BCB Comment Length        0000 (0)\n-29BCD Disk Start            0000 (0)\n-29BCF Int File Attributes   0000 (0)\n+2A012 Compression Method    0000 (0) 'Stored'\n+2A014 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2A018 CRC                   00000000 (0)\n+2A01C Compressed Size       00000000 (0)\n+2A020 Uncompressed Size     00000000 (0)\n+2A024 Filename Length       001D (29)\n+2A026 Extra Length          0000 (0)\n+2A028 Comment Length        0000 (0)\n+2A02A Disk Start            0000 (0)\n+2A02C Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-29BD1 Ext File Attributes   41ED0010 (1106051088)\n+2A02E Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-29BD5 Local Header Offset   00000902 (2306)\n-29BD9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2A032 Local Header Offset   00000902 (2306)\n+2A036 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x29BD9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2A036: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x29BD9: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x2A036: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x29BB1: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2A00E: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-29BF6 CENTRAL HEADER #41    02014B50 (33639248)\n-29BFA Created Zip Spec      14 (20) '2.0'\n-29BFB Created OS            03 (3) 'Unix'\n-29BFC Extract Zip Spec      0A (10) '1.0'\n-29BFD Extract OS            00 (0) 'MS-DOS'\n-29BFE General Purpose Flag  0800 (2048)\n+2A053 CENTRAL HEADER #41    02014B50 (33639248)\n+2A057 Created Zip Spec      14 (20) '2.0'\n+2A058 Created OS            03 (3) 'Unix'\n+2A059 Extract Zip Spec      0A (10) '1.0'\n+2A05A Extract OS            00 (0) 'MS-DOS'\n+2A05B General Purpose Flag  0800 (2048)\n       [Bit 11]              1 'Language Encoding'\n-29C00 Compression Method    0000 (0) 'Stored'\n-29C02 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-29C06 CRC                   00000000 (0)\n-29C0A Compressed Size       00000000 (0)\n-29C0E Uncompressed Size     00000000 (0)\n-29C12 Filename Length       0022 (34)\n-29C14 Extra Length          0000 (0)\n-29C16 Comment Length        0000 (0)\n-29C18 Disk Start            0000 (0)\n-29C1A Int File Attributes   0000 (0)\n+2A05D Compression Method    0000 (0) 'Stored'\n+2A05F Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2A063 CRC                   00000000 (0)\n+2A067 Compressed Size       00000000 (0)\n+2A06B Uncompressed Size     00000000 (0)\n+2A06F Filename Length       0022 (34)\n+2A071 Extra Length          0000 (0)\n+2A073 Comment Length        0000 (0)\n+2A075 Disk Start            0000 (0)\n+2A077 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-29C1C Ext File Attributes   41ED0010 (1106051088)\n+2A079 Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-29C20 Local Header Offset   0000093D (2365)\n-29C24 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2A07D Local Header Offset   0000093D (2365)\n+2A081 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x29C24: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2A081: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x29C24: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x2A081: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x29BFC: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2A059: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-29C46 CENTRAL HEADER #42    02014B50 (33639248)\n-29C4A Created Zip Spec      14 (20) '2.0'\n-29C4B Created OS            03 (3) 'Unix'\n-29C4C Extract Zip Spec      0A (10) '1.0'\n-29C4D Extract OS            00 (0) 'MS-DOS'\n-29C4E General Purpose Flag  0800 (2048)\n+2A0A3 CENTRAL HEADER #42    02014B50 (33639248)\n+2A0A7 Created Zip Spec      14 (20) '2.0'\n+2A0A8 Created OS            03 (3) 'Unix'\n+2A0A9 Extract Zip Spec      0A (10) '1.0'\n+2A0AA Extract OS            00 (0) 'MS-DOS'\n+2A0AB General Purpose Flag  0800 (2048)\n       [Bit 11]              1 'Language Encoding'\n-29C50 Compression Method    0000 (0) 'Stored'\n-29C52 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-29C56 CRC                   00000000 (0)\n-29C5A Compressed Size       00000000 (0)\n-29C5E Uncompressed Size     00000000 (0)\n-29C62 Filename Length       000F (15)\n-29C64 Extra Length          0000 (0)\n-29C66 Comment Length        0000 (0)\n-29C68 Disk Start            0000 (0)\n-29C6A Int File Attributes   0000 (0)\n+2A0AD Compression Method    0000 (0) 'Stored'\n+2A0AF Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2A0B3 CRC                   00000000 (0)\n+2A0B7 Compressed Size       00000000 (0)\n+2A0BB Uncompressed Size     00000000 (0)\n+2A0BF Filename Length       000F (15)\n+2A0C1 Extra Length          0000 (0)\n+2A0C3 Comment Length        0000 (0)\n+2A0C5 Disk Start            0000 (0)\n+2A0C7 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-29C6C Ext File Attributes   41ED0010 (1106051088)\n+2A0C9 Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-29C70 Local Header Offset   0000097D (2429)\n-29C74 Filename              'XXXXXXXXXXXXXXX'\n+2A0CD Local Header Offset   0000097D (2429)\n+2A0D1 Filename              'XXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x29C74: Filename 'XXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2A0D1: Filename 'XXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x29C74: Directory 'XXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x2A0D1: Directory 'XXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x29C4C: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2A0A9: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXX'\n #\n \n-29C83 CENTRAL HEADER #43    02014B50 (33639248)\n-29C87 Created Zip Spec      14 (20) '2.0'\n-29C88 Created OS            03 (3) 'Unix'\n-29C89 Extract Zip Spec      0A (10) '1.0'\n-29C8A Extract OS            00 (0) 'MS-DOS'\n-29C8B General Purpose Flag  0800 (2048)\n+2A0E0 CENTRAL HEADER #43    02014B50 (33639248)\n+2A0E4 Created Zip Spec      14 (20) '2.0'\n+2A0E5 Created OS            03 (3) 'Unix'\n+2A0E6 Extract Zip Spec      0A (10) '1.0'\n+2A0E7 Extract OS            00 (0) 'MS-DOS'\n+2A0E8 General Purpose Flag  0800 (2048)\n       [Bit 11]              1 'Language Encoding'\n-29C8D Compression Method    0000 (0) 'Stored'\n-29C8F Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-29C93 CRC                   00000000 (0)\n-29C97 Compressed Size       00000000 (0)\n-29C9B Uncompressed Size     00000000 (0)\n-29C9F Filename Length       001F (31)\n-29CA1 Extra Length          0000 (0)\n-29CA3 Comment Length        0000 (0)\n-29CA5 Disk Start            0000 (0)\n-29CA7 Int File Attributes   0000 (0)\n+2A0EA Compression Method    0000 (0) 'Stored'\n+2A0EC Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2A0F0 CRC                   00000000 (0)\n+2A0F4 Compressed Size       00000000 (0)\n+2A0F8 Uncompressed Size     00000000 (0)\n+2A0FC Filename Length       001F (31)\n+2A0FE Extra Length          0000 (0)\n+2A100 Comment Length        0000 (0)\n+2A102 Disk Start            0000 (0)\n+2A104 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-29CA9 Ext File Attributes   41ED0010 (1106051088)\n+2A106 Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-29CAD Local Header Offset   000009AA (2474)\n-29CB1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2A10A Local Header Offset   000009AA (2474)\n+2A10E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x29CB1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2A10E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x29CB1: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x2A10E: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x29C89: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2A0E6: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-29CD0 CENTRAL HEADER #44    02014B50 (33639248)\n-29CD4 Created Zip Spec      14 (20) '2.0'\n-29CD5 Created OS            03 (3) 'Unix'\n-29CD6 Extract Zip Spec      0A (10) '1.0'\n-29CD7 Extract OS            00 (0) 'MS-DOS'\n-29CD8 General Purpose Flag  0800 (2048)\n+2A12D CENTRAL HEADER #44    02014B50 (33639248)\n+2A131 Created Zip Spec      14 (20) '2.0'\n+2A132 Created OS            03 (3) 'Unix'\n+2A133 Extract Zip Spec      0A (10) '1.0'\n+2A134 Extract OS            00 (0) 'MS-DOS'\n+2A135 General Purpose Flag  0800 (2048)\n       [Bit 11]              1 'Language Encoding'\n-29CDA Compression Method    0000 (0) 'Stored'\n-29CDC Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-29CE0 CRC                   00000000 (0)\n-29CE4 Compressed Size       00000000 (0)\n-29CE8 Uncompressed Size     00000000 (0)\n-29CEC Filename Length       0030 (48)\n-29CEE Extra Length          0000 (0)\n-29CF0 Comment Length        0000 (0)\n-29CF2 Disk Start            0000 (0)\n-29CF4 Int File Attributes   0000 (0)\n+2A137 Compression Method    0000 (0) 'Stored'\n+2A139 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2A13D CRC                   00000000 (0)\n+2A141 Compressed Size       00000000 (0)\n+2A145 Uncompressed Size     00000000 (0)\n+2A149 Filename Length       0030 (48)\n+2A14B Extra Length          0000 (0)\n+2A14D Comment Length        0000 (0)\n+2A14F Disk Start            0000 (0)\n+2A151 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-29CF6 Ext File Attributes   41ED0010 (1106051088)\n+2A153 Ext File Attributes   41ED0010 (1106051088)\n       [Bit 4]               Directory\n       [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n       [Bits 28-31]          04 (4) 'Directory'\n-29CFA Local Header Offset   000009E7 (2535)\n-29CFE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2A157 Local Header Offset   000009E7 (2535)\n+2A15B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x29CFE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2A15B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x29CFE: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x2A15B: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x29CD6: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2A133: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-29D2E CENTRAL HEADER #45    02014B50 (33639248)\n-29D32 Created Zip Spec      14 (20) '2.0'\n-29D33 Created OS            03 (3) 'Unix'\n-29D34 Extract Zip Spec      14 (20) '2.0'\n-29D35 Extract OS            00 (0) 'MS-DOS'\n-29D36 General Purpose Flag  0800 (2048)\n+2A18B CENTRAL HEADER #45    02014B50 (33639248)\n+2A18F Created Zip Spec      14 (20) '2.0'\n+2A190 Created OS            03 (3) 'Unix'\n+2A191 Extract Zip Spec      14 (20) '2.0'\n+2A192 Extract OS            00 (0) 'MS-DOS'\n+2A193 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-29D38 Compression Method    0008 (8) 'Deflated'\n-29D3A Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-29D3E CRC                   595ACB4C (1499122508)\n-29D42 Compressed Size       00000035 (53)\n-29D46 Uncompressed Size     00000052 (82)\n-29D4A Filename Length       0034 (52)\n-29D4C Extra Length          0000 (0)\n-29D4E Comment Length        0000 (0)\n-29D50 Disk Start            0000 (0)\n-29D52 Int File Attributes   0000 (0)\n+2A195 Compression Method    0008 (8) 'Deflated'\n+2A197 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2A19B CRC                   595ACB4C (1499122508)\n+2A19F Compressed Size       00000035 (53)\n+2A1A3 Uncompressed Size     00000052 (82)\n+2A1A7 Filename Length       0034 (52)\n+2A1A9 Extra Length          0000 (0)\n+2A1AB Comment Length        0000 (0)\n+2A1AD Disk Start            0000 (0)\n+2A1AF Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-29D54 Ext File Attributes   81A40000 (2175008768)\n+2A1B1 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-29D58 Local Header Offset   00000A35 (2613)\n-29D5C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2A1B5 Local Header Offset   00000A35 (2613)\n+2A1B9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x29D5C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2A1B9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-29D90 CENTRAL HEADER #46    02014B50 (33639248)\n-29D94 Created Zip Spec      14 (20) '2.0'\n-29D95 Created OS            03 (3) 'Unix'\n-29D96 Extract Zip Spec      14 (20) '2.0'\n-29D97 Extract OS            00 (0) 'MS-DOS'\n-29D98 General Purpose Flag  0800 (2048)\n+2A1ED CENTRAL HEADER #46    02014B50 (33639248)\n+2A1F1 Created Zip Spec      14 (20) '2.0'\n+2A1F2 Created OS            03 (3) 'Unix'\n+2A1F3 Extract Zip Spec      14 (20) '2.0'\n+2A1F4 Extract OS            00 (0) 'MS-DOS'\n+2A1F5 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-29D9A Compression Method    0008 (8) 'Deflated'\n-29D9C Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-29DA0 CRC                   10E6F8E1 (283572449)\n-29DA4 Compressed Size       00000029 (41)\n-29DA8 Uncompressed Size     00000027 (39)\n-29DAC Filename Length       0035 (53)\n-29DAE Extra Length          0000 (0)\n-29DB0 Comment Length        0000 (0)\n-29DB2 Disk Start            0000 (0)\n-29DB4 Int File Attributes   0000 (0)\n+2A1F7 Compression Method    0008 (8) 'Deflated'\n+2A1F9 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2A1FD CRC                   10E6F8E1 (283572449)\n+2A201 Compressed Size       00000029 (41)\n+2A205 Uncompressed Size     00000027 (39)\n+2A209 Filename Length       0035 (53)\n+2A20B Extra Length          0000 (0)\n+2A20D Comment Length        0000 (0)\n+2A20F Disk Start            0000 (0)\n+2A211 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-29DB6 Ext File Attributes   81A40000 (2175008768)\n+2A213 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-29DBA Local Header Offset   00000ABC (2748)\n-29DBE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2A217 Local Header Offset   00000ABC (2748)\n+2A21B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x29DBE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2A21B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-29DF3 CENTRAL HEADER #47    02014B50 (33639248)\n-29DF7 Created Zip Spec      14 (20) '2.0'\n-29DF8 Created OS            03 (3) 'Unix'\n-29DF9 Extract Zip Spec      14 (20) '2.0'\n-29DFA Extract OS            00 (0) 'MS-DOS'\n-29DFB General Purpose Flag  0800 (2048)\n+2A250 CENTRAL HEADER #47    02014B50 (33639248)\n+2A254 Created Zip Spec      14 (20) '2.0'\n+2A255 Created OS            03 (3) 'Unix'\n+2A256 Extract Zip Spec      14 (20) '2.0'\n+2A257 Extract OS            00 (0) 'MS-DOS'\n+2A258 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-29DFD Compression Method    0008 (8) 'Deflated'\n-29DFF Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-29E03 CRC                   BF90882F (3213920303)\n-29E07 Compressed Size       0000023E (574)\n-29E0B Uncompressed Size     000004F9 (1273)\n-29E0F Filename Length       0040 (64)\n-29E11 Extra Length          0000 (0)\n-29E13 Comment Length        0000 (0)\n-29E15 Disk Start            0000 (0)\n-29E17 Int File Attributes   0000 (0)\n+2A25A Compression Method    0008 (8) 'Deflated'\n+2A25C Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2A260 CRC                   6502A609 (1694672393)\n+2A264 Compressed Size       00000257 (599)\n+2A268 Uncompressed Size     00000534 (1332)\n+2A26C Filename Length       0040 (64)\n+2A26E Extra Length          0000 (0)\n+2A270 Comment Length        0000 (0)\n+2A272 Disk Start            0000 (0)\n+2A274 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-29E19 Ext File Attributes   81A40000 (2175008768)\n+2A276 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-29E1D Local Header Offset   00000B38 (2872)\n-29E21 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2A27A Local Header Offset   00000B38 (2872)\n+2A27E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x29E21: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2A27E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-29E61 CENTRAL HEADER #48    02014B50 (33639248)\n-29E65 Created Zip Spec      14 (20) '2.0'\n-29E66 Created OS            03 (3) 'Unix'\n-29E67 Extract Zip Spec      14 (20) '2.0'\n-29E68 Extract OS            00 (0) 'MS-DOS'\n-29E69 General Purpose Flag  0800 (2048)\n+2A2BE CENTRAL HEADER #48    02014B50 (33639248)\n+2A2C2 Created Zip Spec      14 (20) '2.0'\n+2A2C3 Created OS            03 (3) 'Unix'\n+2A2C4 Extract Zip Spec      14 (20) '2.0'\n+2A2C5 Extract OS            00 (0) 'MS-DOS'\n+2A2C6 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-29E6B Compression Method    0008 (8) 'Deflated'\n-29E6D Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-29E71 CRC                   2B935A46 (731077190)\n-29E75 Compressed Size       000009BF (2495)\n-29E79 Uncompressed Size     00001817 (6167)\n-29E7D Filename Length       0037 (55)\n-29E7F Extra Length          0000 (0)\n-29E81 Comment Length        0000 (0)\n-29E83 Disk Start            0000 (0)\n-29E85 Int File Attributes   0000 (0)\n+2A2C8 Compression Method    0008 (8) 'Deflated'\n+2A2CA Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2A2CE CRC                   E0919879 (3767638137)\n+2A2D2 Compressed Size       000009C0 (2496)\n+2A2D6 Uncompressed Size     0000180E (6158)\n+2A2DA Filename Length       0037 (55)\n+2A2DC Extra Length          0000 (0)\n+2A2DE Comment Length        0000 (0)\n+2A2E0 Disk Start            0000 (0)\n+2A2E2 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-29E87 Ext File Attributes   81A40000 (2175008768)\n+2A2E4 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-29E8B Local Header Offset   00000DD4 (3540)\n-29E8F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2A2E8 Local Header Offset   00000DED (3565)\n+2A2EC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x29E8F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2A2EC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-29EC6 CENTRAL HEADER #49    02014B50 (33639248)\n-29ECA Created Zip Spec      14 (20) '2.0'\n-29ECB Created OS            03 (3) 'Unix'\n-29ECC Extract Zip Spec      14 (20) '2.0'\n-29ECD Extract OS            00 (0) 'MS-DOS'\n-29ECE General Purpose Flag  0800 (2048)\n+2A323 CENTRAL HEADER #49    02014B50 (33639248)\n+2A327 Created Zip Spec      14 (20) '2.0'\n+2A328 Created OS            03 (3) 'Unix'\n+2A329 Extract Zip Spec      14 (20) '2.0'\n+2A32A Extract OS            00 (0) 'MS-DOS'\n+2A32B General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-29ED0 Compression Method    0008 (8) 'Deflated'\n-29ED2 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-29ED6 CRC                   CE3C4212 (3460055570)\n-29EDA Compressed Size       00000473 (1139)\n-29EDE Uncompressed Size     000009CB (2507)\n-29EE2 Filename Length       0039 (57)\n-29EE4 Extra Length          0000 (0)\n-29EE6 Comment Length        0000 (0)\n-29EE8 Disk Start            0000 (0)\n-29EEA Int File Attributes   0000 (0)\n+2A32D Compression Method    0008 (8) 'Deflated'\n+2A32F Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2A333 CRC                   00472512 (4662546)\n+2A337 Compressed Size       00000477 (1143)\n+2A33B Uncompressed Size     000009CB (2507)\n+2A33F Filename Length       0039 (57)\n+2A341 Extra Length          0000 (0)\n+2A343 Comment Length        0000 (0)\n+2A345 Disk Start            0000 (0)\n+2A347 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-29EEC Ext File Attributes   81A40000 (2175008768)\n+2A349 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-29EF0 Local Header Offset   000017E8 (6120)\n-29EF4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2A34D Local Header Offset   00001802 (6146)\n+2A351 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x29EF4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2A351: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-29F2D CENTRAL HEADER #50    02014B50 (33639248)\n-29F31 Created Zip Spec      14 (20) '2.0'\n-29F32 Created OS            03 (3) 'Unix'\n-29F33 Extract Zip Spec      14 (20) '2.0'\n-29F34 Extract OS            00 (0) 'MS-DOS'\n-29F35 General Purpose Flag  0800 (2048)\n+2A38A CENTRAL HEADER #50    02014B50 (33639248)\n+2A38E Created Zip Spec      14 (20) '2.0'\n+2A38F Created OS            03 (3) 'Unix'\n+2A390 Extract Zip Spec      14 (20) '2.0'\n+2A391 Extract OS            00 (0) 'MS-DOS'\n+2A392 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-29F37 Compression Method    0008 (8) 'Deflated'\n-29F39 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-29F3D CRC                   057A8D92 (91917714)\n-29F41 Compressed Size       000003A0 (928)\n-29F45 Uncompressed Size     00000896 (2198)\n-29F49 Filename Length       003D (61)\n-29F4B Extra Length          0000 (0)\n-29F4D Comment Length        0000 (0)\n-29F4F Disk Start            0000 (0)\n-29F51 Int File Attributes   0000 (0)\n+2A394 Compression Method    0008 (8) 'Deflated'\n+2A396 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2A39A CRC                   D61222D3 (3591512787)\n+2A39E Compressed Size       000003A7 (935)\n+2A3A2 Uncompressed Size     00000896 (2198)\n+2A3A6 Filename Length       003D (61)\n+2A3A8 Extra Length          0000 (0)\n+2A3AA Comment Length        0000 (0)\n+2A3AC Disk Start            0000 (0)\n+2A3AE Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-29F53 Ext File Attributes   81A40000 (2175008768)\n+2A3B0 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-29F57 Local Header Offset   00001CB2 (7346)\n-29F5B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2A3B4 Local Header Offset   00001CD0 (7376)\n+2A3B8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x29F5B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2A3B8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-29F98 CENTRAL HEADER #51    02014B50 (33639248)\n-29F9C Created Zip Spec      14 (20) '2.0'\n-29F9D Created OS            03 (3) 'Unix'\n-29F9E Extract Zip Spec      14 (20) '2.0'\n-29F9F Extract OS            00 (0) 'MS-DOS'\n-29FA0 General Purpose Flag  0800 (2048)\n+2A3F5 CENTRAL HEADER #51    02014B50 (33639248)\n+2A3F9 Created Zip Spec      14 (20) '2.0'\n+2A3FA Created OS            03 (3) 'Unix'\n+2A3FB Extract Zip Spec      14 (20) '2.0'\n+2A3FC Extract OS            00 (0) 'MS-DOS'\n+2A3FD General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-29FA2 Compression Method    0008 (8) 'Deflated'\n-29FA4 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-29FA8 CRC                   CA0A38E7 (3389667559)\n-29FAC Compressed Size       00000542 (1346)\n-29FB0 Uncompressed Size     00000C12 (3090)\n-29FB4 Filename Length       0033 (51)\n-29FB6 Extra Length          0000 (0)\n-29FB8 Comment Length        0000 (0)\n-29FBA Disk Start            0000 (0)\n-29FBC Int File Attributes   0000 (0)\n+2A3FF Compression Method    0008 (8) 'Deflated'\n+2A401 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2A405 CRC                   C83E33B8 (3359519672)\n+2A409 Compressed Size       00000553 (1363)\n+2A40D Uncompressed Size     00000C12 (3090)\n+2A411 Filename Length       0033 (51)\n+2A413 Extra Length          0000 (0)\n+2A415 Comment Length        0000 (0)\n+2A417 Disk Start            0000 (0)\n+2A419 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-29FBE Ext File Attributes   81A40000 (2175008768)\n+2A41B Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-29FC2 Local Header Offset   000020AD (8365)\n-29FC6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2A41F Local Header Offset   000020D2 (8402)\n+2A423 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x29FC6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2A423: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-29FF9 CENTRAL HEADER #52    02014B50 (33639248)\n-29FFD Created Zip Spec      14 (20) '2.0'\n-29FFE Created OS            03 (3) 'Unix'\n-29FFF Extract Zip Spec      14 (20) '2.0'\n-2A000 Extract OS            00 (0) 'MS-DOS'\n-2A001 General Purpose Flag  0800 (2048)\n+2A456 CENTRAL HEADER #52    02014B50 (33639248)\n+2A45A Created Zip Spec      14 (20) '2.0'\n+2A45B Created OS            03 (3) 'Unix'\n+2A45C Extract Zip Spec      14 (20) '2.0'\n+2A45D Extract OS            00 (0) 'MS-DOS'\n+2A45E General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2A003 Compression Method    0008 (8) 'Deflated'\n-2A005 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2A009 CRC                   846255CA (2221037002)\n-2A00D Compressed Size       000007EC (2028)\n-2A011 Uncompressed Size     000013E9 (5097)\n-2A015 Filename Length       0036 (54)\n-2A017 Extra Length          0000 (0)\n-2A019 Comment Length        0000 (0)\n-2A01B Disk Start            0000 (0)\n-2A01D Int File Attributes   0000 (0)\n+2A460 Compression Method    0008 (8) 'Deflated'\n+2A462 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2A466 CRC                   743D90B3 (1950191795)\n+2A46A Compressed Size       00000810 (2064)\n+2A46E Uncompressed Size     000013E9 (5097)\n+2A472 Filename Length       0036 (54)\n+2A474 Extra Length          0000 (0)\n+2A476 Comment Length        0000 (0)\n+2A478 Disk Start            0000 (0)\n+2A47A Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2A01F Ext File Attributes   81A40000 (2175008768)\n+2A47C Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2A023 Local Header Offset   00002640 (9792)\n-2A027 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2A480 Local Header Offset   00002676 (9846)\n+2A484 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2A027: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2A484: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2A05D CENTRAL HEADER #53    02014B50 (33639248)\n-2A061 Created Zip Spec      14 (20) '2.0'\n-2A062 Created OS            03 (3) 'Unix'\n-2A063 Extract Zip Spec      14 (20) '2.0'\n-2A064 Extract OS            00 (0) 'MS-DOS'\n-2A065 General Purpose Flag  0800 (2048)\n+2A4BA CENTRAL HEADER #53    02014B50 (33639248)\n+2A4BE Created Zip Spec      14 (20) '2.0'\n+2A4BF Created OS            03 (3) 'Unix'\n+2A4C0 Extract Zip Spec      14 (20) '2.0'\n+2A4C1 Extract OS            00 (0) 'MS-DOS'\n+2A4C2 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2A067 Compression Method    0008 (8) 'Deflated'\n-2A069 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2A06D CRC                   60EF8975 (1626311029)\n-2A071 Compressed Size       0000024D (589)\n-2A075 Uncompressed Size     000004EA (1258)\n-2A079 Filename Length       0039 (57)\n-2A07B Extra Length          0000 (0)\n-2A07D Comment Length        0000 (0)\n-2A07F Disk Start            0000 (0)\n-2A081 Int File Attributes   0000 (0)\n+2A4C4 Compression Method    0008 (8) 'Deflated'\n+2A4C6 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2A4CA CRC                   330D4B66 (856509286)\n+2A4CE Compressed Size       00000267 (615)\n+2A4D2 Uncompressed Size     00000525 (1317)\n+2A4D6 Filename Length       0039 (57)\n+2A4D8 Extra Length          0000 (0)\n+2A4DA Comment Length        0000 (0)\n+2A4DC Disk Start            0000 (0)\n+2A4DE Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2A083 Ext File Attributes   81A40000 (2175008768)\n+2A4E0 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2A087 Local Header Offset   00002E80 (11904)\n-2A08B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2A4E4 Local Header Offset   00002EDA (11994)\n+2A4E8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2A08B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2A4E8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2A0C4 CENTRAL HEADER #54    02014B50 (33639248)\n-2A0C8 Created Zip Spec      14 (20) '2.0'\n-2A0C9 Created OS            03 (3) 'Unix'\n-2A0CA Extract Zip Spec      14 (20) '2.0'\n-2A0CB Extract OS            00 (0) 'MS-DOS'\n-2A0CC General Purpose Flag  0800 (2048)\n+2A521 CENTRAL HEADER #54    02014B50 (33639248)\n+2A525 Created Zip Spec      14 (20) '2.0'\n+2A526 Created OS            03 (3) 'Unix'\n+2A527 Extract Zip Spec      14 (20) '2.0'\n+2A528 Extract OS            00 (0) 'MS-DOS'\n+2A529 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2A0CE Compression Method    0008 (8) 'Deflated'\n-2A0D0 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2A0D4 CRC                   A9DEB6E6 (2849945318)\n-2A0D8 Compressed Size       000003E5 (997)\n-2A0DC Uncompressed Size     00000AA1 (2721)\n-2A0E0 Filename Length       003F (63)\n-2A0E2 Extra Length          0000 (0)\n-2A0E4 Comment Length        0000 (0)\n-2A0E6 Disk Start            0000 (0)\n-2A0E8 Int File Attributes   0000 (0)\n+2A52B Compression Method    0008 (8) 'Deflated'\n+2A52D Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2A531 CRC                   AA8A4829 (2861189161)\n+2A535 Compressed Size       000003E3 (995)\n+2A539 Uncompressed Size     00000AA1 (2721)\n+2A53D Filename Length       003F (63)\n+2A53F Extra Length          0000 (0)\n+2A541 Comment Length        0000 (0)\n+2A543 Disk Start            0000 (0)\n+2A545 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2A0EA Ext File Attributes   81A40000 (2175008768)\n+2A547 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2A0EE Local Header Offset   00003124 (12580)\n-2A0F2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2A54B Local Header Offset   00003198 (12696)\n+2A54F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2A0F2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2A54F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2A131 CENTRAL HEADER #55    02014B50 (33639248)\n-2A135 Created Zip Spec      14 (20) '2.0'\n-2A136 Created OS            03 (3) 'Unix'\n-2A137 Extract Zip Spec      14 (20) '2.0'\n-2A138 Extract OS            00 (0) 'MS-DOS'\n-2A139 General Purpose Flag  0800 (2048)\n+2A58E CENTRAL HEADER #55    02014B50 (33639248)\n+2A592 Created Zip Spec      14 (20) '2.0'\n+2A593 Created OS            03 (3) 'Unix'\n+2A594 Extract Zip Spec      14 (20) '2.0'\n+2A595 Extract OS            00 (0) 'MS-DOS'\n+2A596 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2A13B Compression Method    0008 (8) 'Deflated'\n-2A13D Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2A141 CRC                   7023D1A9 (1881395625)\n-2A145 Compressed Size       00000EDC (3804)\n-2A149 Uncompressed Size     000024C5 (9413)\n-2A14D Filename Length       0037 (55)\n-2A14F Extra Length          0000 (0)\n-2A151 Comment Length        0000 (0)\n-2A153 Disk Start            0000 (0)\n-2A155 Int File Attributes   0000 (0)\n+2A598 Compression Method    0008 (8) 'Deflated'\n+2A59A Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2A59E CRC                   6D595579 (1834571129)\n+2A5A2 Compressed Size       00000EFC (3836)\n+2A5A6 Uncompressed Size     000024CA (9418)\n+2A5AA Filename Length       0037 (55)\n+2A5AC Extra Length          0000 (0)\n+2A5AE Comment Length        0000 (0)\n+2A5B0 Disk Start            0000 (0)\n+2A5B2 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2A157 Ext File Attributes   81A40000 (2175008768)\n+2A5B4 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2A15B Local Header Offset   00003566 (13670)\n-2A15F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2A5B8 Local Header Offset   000035D8 (13784)\n+2A5BC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2A15F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2A5BC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2A196 CENTRAL HEADER #56    02014B50 (33639248)\n-2A19A Created Zip Spec      14 (20) '2.0'\n-2A19B Created OS            03 (3) 'Unix'\n-2A19C Extract Zip Spec      14 (20) '2.0'\n-2A19D Extract OS            00 (0) 'MS-DOS'\n-2A19E General Purpose Flag  0800 (2048)\n+2A5F3 CENTRAL HEADER #56    02014B50 (33639248)\n+2A5F7 Created Zip Spec      14 (20) '2.0'\n+2A5F8 Created OS            03 (3) 'Unix'\n+2A5F9 Extract Zip Spec      14 (20) '2.0'\n+2A5FA Extract OS            00 (0) 'MS-DOS'\n+2A5FB General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2A1A0 Compression Method    0008 (8) 'Deflated'\n-2A1A2 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2A1A6 CRC                   27E382EF (669221615)\n-2A1AA Compressed Size       000002CE (718)\n-2A1AE Uncompressed Size     00000692 (1682)\n-2A1B2 Filename Length       0045 (69)\n-2A1B4 Extra Length          0000 (0)\n-2A1B6 Comment Length        0000 (0)\n-2A1B8 Disk Start            0000 (0)\n-2A1BA Int File Attributes   0000 (0)\n+2A5FD Compression Method    0008 (8) 'Deflated'\n+2A5FF Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2A603 CRC                   7F56624E (2136367694)\n+2A607 Compressed Size       000002CF (719)\n+2A60B Uncompressed Size     0000068F (1679)\n+2A60F Filename Length       0045 (69)\n+2A611 Extra Length          0000 (0)\n+2A613 Comment Length        0000 (0)\n+2A615 Disk Start            0000 (0)\n+2A617 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2A1BC Ext File Attributes   81A40000 (2175008768)\n+2A619 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2A1C0 Local Header Offset   00004497 (17559)\n-2A1C4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2A61D Local Header Offset   00004529 (17705)\n+2A621 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2A1C4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2A621: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2A209 CENTRAL HEADER #57    02014B50 (33639248)\n-2A20D Created Zip Spec      14 (20) '2.0'\n-2A20E Created OS            03 (3) 'Unix'\n-2A20F Extract Zip Spec      14 (20) '2.0'\n-2A210 Extract OS            00 (0) 'MS-DOS'\n-2A211 General Purpose Flag  0800 (2048)\n+2A666 CENTRAL HEADER #57    02014B50 (33639248)\n+2A66A Created Zip Spec      14 (20) '2.0'\n+2A66B Created OS            03 (3) 'Unix'\n+2A66C Extract Zip Spec      14 (20) '2.0'\n+2A66D Extract OS            00 (0) 'MS-DOS'\n+2A66E General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2A213 Compression Method    0008 (8) 'Deflated'\n-2A215 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2A219 CRC                   4A264766 (1244022630)\n-2A21D Compressed Size       00000257 (599)\n-2A221 Uncompressed Size     0000052C (1324)\n-2A225 Filename Length       0042 (66)\n-2A227 Extra Length          0000 (0)\n-2A229 Comment Length        0000 (0)\n-2A22B Disk Start            0000 (0)\n-2A22D Int File Attributes   0000 (0)\n+2A670 Compression Method    0008 (8) 'Deflated'\n+2A672 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2A676 CRC                   06D3E6D4 (114550484)\n+2A67A Compressed Size       0000026F (623)\n+2A67E Uncompressed Size     00000567 (1383)\n+2A682 Filename Length       0042 (66)\n+2A684 Extra Length          0000 (0)\n+2A686 Comment Length        0000 (0)\n+2A688 Disk Start            0000 (0)\n+2A68A Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2A22F Ext File Attributes   81A40000 (2175008768)\n+2A68C Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2A233 Local Header Offset   000047C8 (18376)\n-2A237 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2A690 Local Header Offset   0000485B (18523)\n+2A694 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2A237: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2A694: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2A279 CENTRAL HEADER #58    02014B50 (33639248)\n-2A27D Created Zip Spec      14 (20) '2.0'\n-2A27E Created OS            03 (3) 'Unix'\n-2A27F Extract Zip Spec      14 (20) '2.0'\n-2A280 Extract OS            00 (0) 'MS-DOS'\n-2A281 General Purpose Flag  0800 (2048)\n+2A6D6 CENTRAL HEADER #58    02014B50 (33639248)\n+2A6DA Created Zip Spec      14 (20) '2.0'\n+2A6DB Created OS            03 (3) 'Unix'\n+2A6DC Extract Zip Spec      14 (20) '2.0'\n+2A6DD Extract OS            00 (0) 'MS-DOS'\n+2A6DE General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2A283 Compression Method    0008 (8) 'Deflated'\n-2A285 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2A289 CRC                   03008853 (50366547)\n-2A28D Compressed Size       000002F3 (755)\n-2A291 Uncompressed Size     000006DA (1754)\n-2A295 Filename Length       0037 (55)\n-2A297 Extra Length          0000 (0)\n-2A299 Comment Length        0000 (0)\n-2A29B Disk Start            0000 (0)\n-2A29D Int File Attributes   0000 (0)\n+2A6E0 Compression Method    0008 (8) 'Deflated'\n+2A6E2 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2A6E6 CRC                   8B6E7B6E (2339273582)\n+2A6EA Compressed Size       000002F7 (759)\n+2A6EE Uncompressed Size     000006DA (1754)\n+2A6F2 Filename Length       0037 (55)\n+2A6F4 Extra Length          0000 (0)\n+2A6F6 Comment Length        0000 (0)\n+2A6F8 Disk Start            0000 (0)\n+2A6FA Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2A29F Ext File Attributes   81A40000 (2175008768)\n+2A6FC Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2A2A3 Local Header Offset   00004A7F (19071)\n-2A2A7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2A700 Local Header Offset   00004B2A (19242)\n+2A704 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2A2A7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2A704: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2A2DE CENTRAL HEADER #59    02014B50 (33639248)\n-2A2E2 Created Zip Spec      14 (20) '2.0'\n-2A2E3 Created OS            03 (3) 'Unix'\n-2A2E4 Extract Zip Spec      14 (20) '2.0'\n-2A2E5 Extract OS            00 (0) 'MS-DOS'\n-2A2E6 General Purpose Flag  0800 (2048)\n+2A73B CENTRAL HEADER #59    02014B50 (33639248)\n+2A73F Created Zip Spec      14 (20) '2.0'\n+2A740 Created OS            03 (3) 'Unix'\n+2A741 Extract Zip Spec      14 (20) '2.0'\n+2A742 Extract OS            00 (0) 'MS-DOS'\n+2A743 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2A2E8 Compression Method    0008 (8) 'Deflated'\n-2A2EA Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2A2EE CRC                   E30F75DE (3809441246)\n-2A2F2 Compressed Size       0000020A (522)\n-2A2F6 Uncompressed Size     00000433 (1075)\n-2A2FA Filename Length       0038 (56)\n-2A2FC Extra Length          0000 (0)\n-2A2FE Comment Length        0000 (0)\n-2A300 Disk Start            0000 (0)\n-2A302 Int File Attributes   0000 (0)\n+2A745 Compression Method    0008 (8) 'Deflated'\n+2A747 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2A74B CRC                   3669465B (912868955)\n+2A74F Compressed Size       00000209 (521)\n+2A753 Uncompressed Size     0000042A (1066)\n+2A757 Filename Length       0038 (56)\n+2A759 Extra Length          0000 (0)\n+2A75B Comment Length        0000 (0)\n+2A75D Disk Start            0000 (0)\n+2A75F Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2A304 Ext File Attributes   81A40000 (2175008768)\n+2A761 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2A308 Local Header Offset   00004DC7 (19911)\n-2A30C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2A765 Local Header Offset   00004E76 (20086)\n+2A769 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2A30C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2A769: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2A344 CENTRAL HEADER #60    02014B50 (33639248)\n-2A348 Created Zip Spec      14 (20) '2.0'\n-2A349 Created OS            03 (3) 'Unix'\n-2A34A Extract Zip Spec      14 (20) '2.0'\n-2A34B Extract OS            00 (0) 'MS-DOS'\n-2A34C General Purpose Flag  0800 (2048)\n+2A7A1 CENTRAL HEADER #60    02014B50 (33639248)\n+2A7A5 Created Zip Spec      14 (20) '2.0'\n+2A7A6 Created OS            03 (3) 'Unix'\n+2A7A7 Extract Zip Spec      14 (20) '2.0'\n+2A7A8 Extract OS            00 (0) 'MS-DOS'\n+2A7A9 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2A34E Compression Method    0008 (8) 'Deflated'\n-2A350 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2A354 CRC                   74C75A24 (1959221796)\n-2A358 Compressed Size       00000233 (563)\n-2A35C Uncompressed Size     0000049A (1178)\n-2A360 Filename Length       0043 (67)\n-2A362 Extra Length          0000 (0)\n-2A364 Comment Length        0000 (0)\n-2A366 Disk Start            0000 (0)\n-2A368 Int File Attributes   0000 (0)\n+2A7AB Compression Method    0008 (8) 'Deflated'\n+2A7AD Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2A7B1 CRC                   7D90A409 (2106631177)\n+2A7B5 Compressed Size       0000023C (572)\n+2A7B9 Uncompressed Size     0000049A (1178)\n+2A7BD Filename Length       0043 (67)\n+2A7BF Extra Length          0000 (0)\n+2A7C1 Comment Length        0000 (0)\n+2A7C3 Disk Start            0000 (0)\n+2A7C5 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2A36A Ext File Attributes   81A40000 (2175008768)\n+2A7C7 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2A36E Local Header Offset   00005027 (20519)\n-2A372 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2A7CB Local Header Offset   000050D5 (20693)\n+2A7CF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2A372: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2A7CF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2A3B5 CENTRAL HEADER #61    02014B50 (33639248)\n-2A3B9 Created Zip Spec      14 (20) '2.0'\n-2A3BA Created OS            03 (3) 'Unix'\n-2A3BB Extract Zip Spec      14 (20) '2.0'\n-2A3BC Extract OS            00 (0) 'MS-DOS'\n-2A3BD General Purpose Flag  0800 (2048)\n+2A812 CENTRAL HEADER #61    02014B50 (33639248)\n+2A816 Created Zip Spec      14 (20) '2.0'\n+2A817 Created OS            03 (3) 'Unix'\n+2A818 Extract Zip Spec      14 (20) '2.0'\n+2A819 Extract OS            00 (0) 'MS-DOS'\n+2A81A General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2A3BF Compression Method    0008 (8) 'Deflated'\n-2A3C1 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2A3C5 CRC                   5A0F0092 (1510932626)\n-2A3C9 Compressed Size       00000297 (663)\n-2A3CD Uncompressed Size     0000054C (1356)\n-2A3D1 Filename Length       0044 (68)\n-2A3D3 Extra Length          0000 (0)\n-2A3D5 Comment Length        0000 (0)\n-2A3D7 Disk Start            0000 (0)\n-2A3D9 Int File Attributes   0000 (0)\n+2A81C Compression Method    0008 (8) 'Deflated'\n+2A81E Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2A822 CRC                   0E9F3A5C (245316188)\n+2A826 Compressed Size       0000029B (667)\n+2A82A Uncompressed Size     00000546 (1350)\n+2A82E Filename Length       0044 (68)\n+2A830 Extra Length          0000 (0)\n+2A832 Comment Length        0000 (0)\n+2A834 Disk Start            0000 (0)\n+2A836 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2A3DB Ext File Attributes   81A40000 (2175008768)\n+2A838 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2A3DF Local Header Offset   000052BB (21179)\n-2A3E3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2A83C Local Header Offset   00005372 (21362)\n+2A840 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2A3E3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2A840: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2A427 CENTRAL HEADER #62    02014B50 (33639248)\n-2A42B Created Zip Spec      14 (20) '2.0'\n-2A42C Created OS            03 (3) 'Unix'\n-2A42D Extract Zip Spec      14 (20) '2.0'\n-2A42E Extract OS            00 (0) 'MS-DOS'\n-2A42F General Purpose Flag  0800 (2048)\n+2A884 CENTRAL HEADER #62    02014B50 (33639248)\n+2A888 Created Zip Spec      14 (20) '2.0'\n+2A889 Created OS            03 (3) 'Unix'\n+2A88A Extract Zip Spec      14 (20) '2.0'\n+2A88B Extract OS            00 (0) 'MS-DOS'\n+2A88C General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2A431 Compression Method    0008 (8) 'Deflated'\n-2A433 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2A437 CRC                   CFC03DEB (3485482475)\n-2A43B Compressed Size       0000080F (2063)\n-2A43F Uncompressed Size     00001446 (5190)\n-2A443 Filename Length       0036 (54)\n-2A445 Extra Length          0000 (0)\n-2A447 Comment Length        0000 (0)\n-2A449 Disk Start            0000 (0)\n-2A44B Int File Attributes   0000 (0)\n+2A88E Compression Method    0008 (8) 'Deflated'\n+2A890 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2A894 CRC                   4EA4211F (1319379231)\n+2A898 Compressed Size       000007CE (1998)\n+2A89C Uncompressed Size     000013B6 (5046)\n+2A8A0 Filename Length       0036 (54)\n+2A8A2 Extra Length          0000 (0)\n+2A8A4 Comment Length        0000 (0)\n+2A8A6 Disk Start            0000 (0)\n+2A8A8 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2A44D Ext File Attributes   81A40000 (2175008768)\n+2A8AA Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2A451 Local Header Offset   000055B4 (21940)\n-2A455 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2A8AE Local Header Offset   0000566F (22127)\n+2A8B2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2A455: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2A8B2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2A48B CENTRAL HEADER #63    02014B50 (33639248)\n-2A48F Created Zip Spec      14 (20) '2.0'\n-2A490 Created OS            03 (3) 'Unix'\n-2A491 Extract Zip Spec      14 (20) '2.0'\n-2A492 Extract OS            00 (0) 'MS-DOS'\n-2A493 General Purpose Flag  0800 (2048)\n+2A8E8 CENTRAL HEADER #63    02014B50 (33639248)\n+2A8EC Created Zip Spec      14 (20) '2.0'\n+2A8ED Created OS            03 (3) 'Unix'\n+2A8EE Extract Zip Spec      14 (20) '2.0'\n+2A8EF Extract OS            00 (0) 'MS-DOS'\n+2A8F0 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2A495 Compression Method    0008 (8) 'Deflated'\n-2A497 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2A49B CRC                   DAAE3E94 (3668852372)\n-2A49F Compressed Size       0000045A (1114)\n-2A4A3 Uncompressed Size     00000B96 (2966)\n-2A4A7 Filename Length       004B (75)\n-2A4A9 Extra Length          0000 (0)\n-2A4AB Comment Length        0000 (0)\n-2A4AD Disk Start            0000 (0)\n-2A4AF Int File Attributes   0000 (0)\n+2A8F2 Compression Method    0008 (8) 'Deflated'\n+2A8F4 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2A8F8 CRC                   5350F976 (1397815670)\n+2A8FC Compressed Size       00000468 (1128)\n+2A900 Uncompressed Size     00000B96 (2966)\n+2A904 Filename Length       004B (75)\n+2A906 Extra Length          0000 (0)\n+2A908 Comment Length        0000 (0)\n+2A90A Disk Start            0000 (0)\n+2A90C Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2A4B1 Ext File Attributes   81A40000 (2175008768)\n+2A90E Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2A4B5 Local Header Offset   00005E17 (24087)\n-2A4B9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2A912 Local Header Offset   00005E91 (24209)\n+2A916 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2A4B9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2A916: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2A504 CENTRAL HEADER #64    02014B50 (33639248)\n-2A508 Created Zip Spec      14 (20) '2.0'\n-2A509 Created OS            03 (3) 'Unix'\n-2A50A Extract Zip Spec      14 (20) '2.0'\n-2A50B Extract OS            00 (0) 'MS-DOS'\n-2A50C General Purpose Flag  0800 (2048)\n+2A961 CENTRAL HEADER #64    02014B50 (33639248)\n+2A965 Created Zip Spec      14 (20) '2.0'\n+2A966 Created OS            03 (3) 'Unix'\n+2A967 Extract Zip Spec      14 (20) '2.0'\n+2A968 Extract OS            00 (0) 'MS-DOS'\n+2A969 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2A50E Compression Method    0008 (8) 'Deflated'\n-2A510 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2A514 CRC                   8DE30265 (2380464741)\n-2A518 Compressed Size       00000364 (868)\n-2A51C Uncompressed Size     000007C7 (1991)\n-2A520 Filename Length       0038 (56)\n-2A522 Extra Length          0000 (0)\n-2A524 Comment Length        0000 (0)\n-2A526 Disk Start            0000 (0)\n-2A528 Int File Attributes   0000 (0)\n+2A96B Compression Method    0008 (8) 'Deflated'\n+2A96D Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2A971 CRC                   10864B8C (277236620)\n+2A975 Compressed Size       00000366 (870)\n+2A979 Uncompressed Size     000007C7 (1991)\n+2A97D Filename Length       0038 (56)\n+2A97F Extra Length          0000 (0)\n+2A981 Comment Length        0000 (0)\n+2A983 Disk Start            0000 (0)\n+2A985 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2A52A Ext File Attributes   81A40000 (2175008768)\n+2A987 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2A52E Local Header Offset   000062DA (25306)\n-2A532 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2A98B Local Header Offset   00006362 (25442)\n+2A98F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2A532: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2A98F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2A56A CENTRAL HEADER #65    02014B50 (33639248)\n-2A56E Created Zip Spec      14 (20) '2.0'\n-2A56F Created OS            03 (3) 'Unix'\n-2A570 Extract Zip Spec      14 (20) '2.0'\n-2A571 Extract OS            00 (0) 'MS-DOS'\n-2A572 General Purpose Flag  0800 (2048)\n+2A9C7 CENTRAL HEADER #65    02014B50 (33639248)\n+2A9CB Created Zip Spec      14 (20) '2.0'\n+2A9CC Created OS            03 (3) 'Unix'\n+2A9CD Extract Zip Spec      14 (20) '2.0'\n+2A9CE Extract OS            00 (0) 'MS-DOS'\n+2A9CF General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2A574 Compression Method    0008 (8) 'Deflated'\n-2A576 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2A57A CRC                   B0BFE5FC (2965366268)\n-2A57E Compressed Size       000005CE (1486)\n-2A582 Uncompressed Size     00000E69 (3689)\n-2A586 Filename Length       0030 (48)\n-2A588 Extra Length          0000 (0)\n-2A58A Comment Length        0000 (0)\n-2A58C Disk Start            0000 (0)\n-2A58E Int File Attributes   0000 (0)\n+2A9D1 Compression Method    0008 (8) 'Deflated'\n+2A9D3 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2A9D7 CRC                   9DD32FAD (2647863213)\n+2A9DB Compressed Size       000005D9 (1497)\n+2A9DF Uncompressed Size     00000E69 (3689)\n+2A9E3 Filename Length       0030 (48)\n+2A9E5 Extra Length          0000 (0)\n+2A9E7 Comment Length        0000 (0)\n+2A9E9 Disk Start            0000 (0)\n+2A9EB Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2A590 Ext File Attributes   81A40000 (2175008768)\n+2A9ED Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2A594 Local Header Offset   00006694 (26260)\n-2A598 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2A9F1 Local Header Offset   0000671E (26398)\n+2A9F5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2A598: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2A9F5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2A5C8 CENTRAL HEADER #66    02014B50 (33639248)\n-2A5CC Created Zip Spec      14 (20) '2.0'\n-2A5CD Created OS            03 (3) 'Unix'\n-2A5CE Extract Zip Spec      14 (20) '2.0'\n-2A5CF Extract OS            00 (0) 'MS-DOS'\n-2A5D0 General Purpose Flag  0800 (2048)\n+2AA25 CENTRAL HEADER #66    02014B50 (33639248)\n+2AA29 Created Zip Spec      14 (20) '2.0'\n+2AA2A Created OS            03 (3) 'Unix'\n+2AA2B Extract Zip Spec      14 (20) '2.0'\n+2AA2C Extract OS            00 (0) 'MS-DOS'\n+2AA2D General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2A5D2 Compression Method    0008 (8) 'Deflated'\n-2A5D4 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2A5D8 CRC                   BB4A5EDA (3142213338)\n-2A5DC Compressed Size       000004B4 (1204)\n-2A5E0 Uncompressed Size     00000AF8 (2808)\n-2A5E4 Filename Length       003B (59)\n-2A5E6 Extra Length          0000 (0)\n-2A5E8 Comment Length        0000 (0)\n-2A5EA Disk Start            0000 (0)\n-2A5EC Int File Attributes   0000 (0)\n+2AA2F Compression Method    0008 (8) 'Deflated'\n+2AA31 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2AA35 CRC                   F6B3CB5C (4138978140)\n+2AA39 Compressed Size       000004BA (1210)\n+2AA3D Uncompressed Size     00000AF8 (2808)\n+2AA41 Filename Length       003B (59)\n+2AA43 Extra Length          0000 (0)\n+2AA45 Comment Length        0000 (0)\n+2AA47 Disk Start            0000 (0)\n+2AA49 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2A5EE Ext File Attributes   81A40000 (2175008768)\n+2AA4B Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2A5F2 Local Header Offset   00006CB0 (27824)\n-2A5F6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2AA4F Local Header Offset   00006D45 (27973)\n+2AA53 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2A5F6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2AA53: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2A631 CENTRAL HEADER #67    02014B50 (33639248)\n-2A635 Created Zip Spec      14 (20) '2.0'\n-2A636 Created OS            03 (3) 'Unix'\n-2A637 Extract Zip Spec      14 (20) '2.0'\n-2A638 Extract OS            00 (0) 'MS-DOS'\n-2A639 General Purpose Flag  0800 (2048)\n+2AA8E CENTRAL HEADER #67    02014B50 (33639248)\n+2AA92 Created Zip Spec      14 (20) '2.0'\n+2AA93 Created OS            03 (3) 'Unix'\n+2AA94 Extract Zip Spec      14 (20) '2.0'\n+2AA95 Extract OS            00 (0) 'MS-DOS'\n+2AA96 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2A63B Compression Method    0008 (8) 'Deflated'\n-2A63D Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2A641 CRC                   A03B05A8 (2688222632)\n-2A645 Compressed Size       000006B7 (1719)\n-2A649 Uncompressed Size     00000F7E (3966)\n-2A64D Filename Length       0030 (48)\n-2A64F Extra Length          0000 (0)\n-2A651 Comment Length        0000 (0)\n-2A653 Disk Start            0000 (0)\n-2A655 Int File Attributes   0000 (0)\n+2AA98 Compression Method    0008 (8) 'Deflated'\n+2AA9A Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2AA9E CRC                   93036480 (2466473088)\n+2AAA2 Compressed Size       000006CF (1743)\n+2AAA6 Uncompressed Size     00000F7E (3966)\n+2AAAA Filename Length       0030 (48)\n+2AAAC Extra Length          0000 (0)\n+2AAAE Comment Length        0000 (0)\n+2AAB0 Disk Start            0000 (0)\n+2AAB2 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2A657 Ext File Attributes   81A40000 (2175008768)\n+2AAB4 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2A65B Local Header Offset   000071BD (29117)\n-2A65F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2AAB8 Local Header Offset   00007258 (29272)\n+2AABC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2A65F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2AABC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2A68F CENTRAL HEADER #68    02014B50 (33639248)\n-2A693 Created Zip Spec      14 (20) '2.0'\n-2A694 Created OS            03 (3) 'Unix'\n-2A695 Extract Zip Spec      14 (20) '2.0'\n-2A696 Extract OS            00 (0) 'MS-DOS'\n-2A697 General Purpose Flag  0800 (2048)\n+2AAEC CENTRAL HEADER #68    02014B50 (33639248)\n+2AAF0 Created Zip Spec      14 (20) '2.0'\n+2AAF1 Created OS            03 (3) 'Unix'\n+2AAF2 Extract Zip Spec      14 (20) '2.0'\n+2AAF3 Extract OS            00 (0) 'MS-DOS'\n+2AAF4 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2A699 Compression Method    0008 (8) 'Deflated'\n-2A69B Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2A69F CRC                   E6B32CE0 (3870502112)\n-2A6A3 Compressed Size       00000528 (1320)\n-2A6A7 Uncompressed Size     00000B6F (2927)\n-2A6AB Filename Length       0032 (50)\n-2A6AD Extra Length          0000 (0)\n-2A6AF Comment Length        0000 (0)\n-2A6B1 Disk Start            0000 (0)\n-2A6B3 Int File Attributes   0000 (0)\n+2AAF6 Compression Method    0008 (8) 'Deflated'\n+2AAF8 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2AAFC CRC                   ED73F0E8 (3983798504)\n+2AB00 Compressed Size       0000052B (1323)\n+2AB04 Uncompressed Size     00000B6F (2927)\n+2AB08 Filename Length       0032 (50)\n+2AB0A Extra Length          0000 (0)\n+2AB0C Comment Length        0000 (0)\n+2AB0E Disk Start            0000 (0)\n+2AB10 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2A6B5 Ext File Attributes   81A40000 (2175008768)\n+2AB12 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2A6B9 Local Header Offset   000078C2 (30914)\n-2A6BD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2AB16 Local Header Offset   00007975 (31093)\n+2AB1A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2A6BD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2AB1A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2A6EF CENTRAL HEADER #69    02014B50 (33639248)\n-2A6F3 Created Zip Spec      14 (20) '2.0'\n-2A6F4 Created OS            03 (3) 'Unix'\n-2A6F5 Extract Zip Spec      14 (20) '2.0'\n-2A6F6 Extract OS            00 (0) 'MS-DOS'\n-2A6F7 General Purpose Flag  0800 (2048)\n+2AB4C CENTRAL HEADER #69    02014B50 (33639248)\n+2AB50 Created Zip Spec      14 (20) '2.0'\n+2AB51 Created OS            03 (3) 'Unix'\n+2AB52 Extract Zip Spec      14 (20) '2.0'\n+2AB53 Extract OS            00 (0) 'MS-DOS'\n+2AB54 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2A6F9 Compression Method    0008 (8) 'Deflated'\n-2A6FB Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2A6FF CRC                   A23E9949 (2722011465)\n-2A703 Compressed Size       000005CE (1486)\n-2A707 Uncompressed Size     00000CA7 (3239)\n-2A70B Filename Length       002A (42)\n-2A70D Extra Length          0000 (0)\n-2A70F Comment Length        0000 (0)\n-2A711 Disk Start            0000 (0)\n-2A713 Int File Attributes   0000 (0)\n+2AB56 Compression Method    0008 (8) 'Deflated'\n+2AB58 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2AB5C CRC                   6390CFE7 (1670434791)\n+2AB60 Compressed Size       000005DB (1499)\n+2AB64 Uncompressed Size     00000CA7 (3239)\n+2AB68 Filename Length       002A (42)\n+2AB6A Extra Length          0000 (0)\n+2AB6C Comment Length        0000 (0)\n+2AB6E Disk Start            0000 (0)\n+2AB70 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2A715 Ext File Attributes   81A40000 (2175008768)\n+2AB72 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2A719 Local Header Offset   00007E3A (32314)\n-2A71D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2AB76 Local Header Offset   00007EF0 (32496)\n+2AB7A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2A71D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2AB7A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2A747 CENTRAL HEADER #70    02014B50 (33639248)\n-2A74B Created Zip Spec      14 (20) '2.0'\n-2A74C Created OS            03 (3) 'Unix'\n-2A74D Extract Zip Spec      14 (20) '2.0'\n-2A74E Extract OS            00 (0) 'MS-DOS'\n-2A74F General Purpose Flag  0800 (2048)\n+2ABA4 CENTRAL HEADER #70    02014B50 (33639248)\n+2ABA8 Created Zip Spec      14 (20) '2.0'\n+2ABA9 Created OS            03 (3) 'Unix'\n+2ABAA Extract Zip Spec      14 (20) '2.0'\n+2ABAB Extract OS            00 (0) 'MS-DOS'\n+2ABAC General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2A751 Compression Method    0008 (8) 'Deflated'\n-2A753 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2A757 CRC                   25124015 (621953045)\n-2A75B Compressed Size       0000071C (1820)\n-2A75F Uncompressed Size     0000119A (4506)\n-2A763 Filename Length       0030 (48)\n-2A765 Extra Length          0000 (0)\n-2A767 Comment Length        0000 (0)\n-2A769 Disk Start            0000 (0)\n-2A76B Int File Attributes   0000 (0)\n+2ABAE Compression Method    0008 (8) 'Deflated'\n+2ABB0 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2ABB4 CRC                   01F26E78 (32665208)\n+2ABB8 Compressed Size       00000739 (1849)\n+2ABBC Uncompressed Size     0000119A (4506)\n+2ABC0 Filename Length       0030 (48)\n+2ABC2 Extra Length          0000 (0)\n+2ABC4 Comment Length        0000 (0)\n+2ABC6 Disk Start            0000 (0)\n+2ABC8 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2A76D Ext File Attributes   81A40000 (2175008768)\n+2ABCA Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2A771 Local Header Offset   00008450 (33872)\n-2A775 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2ABCE Local Header Offset   00008513 (34067)\n+2ABD2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2A775: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2ABD2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2A7A5 CENTRAL HEADER #71    02014B50 (33639248)\n-2A7A9 Created Zip Spec      14 (20) '2.0'\n-2A7AA Created OS            03 (3) 'Unix'\n-2A7AB Extract Zip Spec      14 (20) '2.0'\n-2A7AC Extract OS            00 (0) 'MS-DOS'\n-2A7AD General Purpose Flag  0800 (2048)\n+2AC02 CENTRAL HEADER #71    02014B50 (33639248)\n+2AC06 Created Zip Spec      14 (20) '2.0'\n+2AC07 Created OS            03 (3) 'Unix'\n+2AC08 Extract Zip Spec      14 (20) '2.0'\n+2AC09 Extract OS            00 (0) 'MS-DOS'\n+2AC0A General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2A7AF Compression Method    0008 (8) 'Deflated'\n-2A7B1 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2A7B5 CRC                   5996933F (1503040319)\n-2A7B9 Compressed Size       0000095C (2396)\n-2A7BD Uncompressed Size     000019C0 (6592)\n-2A7C1 Filename Length       003C (60)\n-2A7C3 Extra Length          0000 (0)\n-2A7C5 Comment Length        0000 (0)\n-2A7C7 Disk Start            0000 (0)\n-2A7C9 Int File Attributes   0000 (0)\n+2AC0C Compression Method    0008 (8) 'Deflated'\n+2AC0E Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2AC12 CRC                   025CA19F (39625119)\n+2AC16 Compressed Size       0000097D (2429)\n+2AC1A Uncompressed Size     000019C0 (6592)\n+2AC1E Filename Length       003C (60)\n+2AC20 Extra Length          0000 (0)\n+2AC22 Comment Length        0000 (0)\n+2AC24 Disk Start            0000 (0)\n+2AC26 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2A7CB Ext File Attributes   81A40000 (2175008768)\n+2AC28 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2A7CF Local Header Offset   00008BBA (35770)\n-2A7D3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2AC2C Local Header Offset   00008C9A (35994)\n+2AC30 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2A7D3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2AC30: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2A80F CENTRAL HEADER #72    02014B50 (33639248)\n-2A813 Created Zip Spec      14 (20) '2.0'\n-2A814 Created OS            03 (3) 'Unix'\n-2A815 Extract Zip Spec      14 (20) '2.0'\n-2A816 Extract OS            00 (0) 'MS-DOS'\n-2A817 General Purpose Flag  0800 (2048)\n+2AC6C CENTRAL HEADER #72    02014B50 (33639248)\n+2AC70 Created Zip Spec      14 (20) '2.0'\n+2AC71 Created OS            03 (3) 'Unix'\n+2AC72 Extract Zip Spec      14 (20) '2.0'\n+2AC73 Extract OS            00 (0) 'MS-DOS'\n+2AC74 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2A819 Compression Method    0008 (8) 'Deflated'\n-2A81B Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2A81F CRC                   421C3746 (1109145414)\n-2A823 Compressed Size       0000025D (605)\n-2A827 Uncompressed Size     000004CF (1231)\n-2A82B Filename Length       0036 (54)\n-2A82D Extra Length          0000 (0)\n-2A82F Comment Length        0000 (0)\n-2A831 Disk Start            0000 (0)\n-2A833 Int File Attributes   0000 (0)\n+2AC76 Compression Method    0008 (8) 'Deflated'\n+2AC78 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2AC7C CRC                   E319FE76 (3810131574)\n+2AC80 Compressed Size       00000261 (609)\n+2AC84 Uncompressed Size     000004CF (1231)\n+2AC88 Filename Length       0036 (54)\n+2AC8A Extra Length          0000 (0)\n+2AC8C Comment Length        0000 (0)\n+2AC8E Disk Start            0000 (0)\n+2AC90 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2A835 Ext File Attributes   81A40000 (2175008768)\n+2AC92 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2A839 Local Header Offset   00009570 (38256)\n-2A83D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2AC96 Local Header Offset   00009671 (38513)\n+2AC9A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2A83D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2AC9A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2A873 CENTRAL HEADER #73    02014B50 (33639248)\n-2A877 Created Zip Spec      14 (20) '2.0'\n-2A878 Created OS            03 (3) 'Unix'\n-2A879 Extract Zip Spec      14 (20) '2.0'\n-2A87A Extract OS            00 (0) 'MS-DOS'\n-2A87B General Purpose Flag  0800 (2048)\n+2ACD0 CENTRAL HEADER #73    02014B50 (33639248)\n+2ACD4 Created Zip Spec      14 (20) '2.0'\n+2ACD5 Created OS            03 (3) 'Unix'\n+2ACD6 Extract Zip Spec      14 (20) '2.0'\n+2ACD7 Extract OS            00 (0) 'MS-DOS'\n+2ACD8 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2A87D Compression Method    0008 (8) 'Deflated'\n-2A87F Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2A883 CRC                   0F927E5E (261258846)\n-2A887 Compressed Size       000006D6 (1750)\n-2A88B Uncompressed Size     00001348 (4936)\n-2A88F Filename Length       0033 (51)\n-2A891 Extra Length          0000 (0)\n-2A893 Comment Length        0000 (0)\n-2A895 Disk Start            0000 (0)\n-2A897 Int File Attributes   0000 (0)\n+2ACDA Compression Method    0008 (8) 'Deflated'\n+2ACDC Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2ACE0 CRC                   E988474B (3918022475)\n+2ACE4 Compressed Size       000006F7 (1783)\n+2ACE8 Uncompressed Size     00001348 (4936)\n+2ACEC Filename Length       0033 (51)\n+2ACEE Extra Length          0000 (0)\n+2ACF0 Comment Length        0000 (0)\n+2ACF2 Disk Start            0000 (0)\n+2ACF4 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2A899 Ext File Attributes   81A40000 (2175008768)\n+2ACF6 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2A89D Local Header Offset   00009821 (38945)\n-2A8A1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2ACFA Local Header Offset   00009926 (39206)\n+2ACFE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2A8A1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2ACFE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2A8D4 CENTRAL HEADER #74    02014B50 (33639248)\n-2A8D8 Created Zip Spec      14 (20) '2.0'\n-2A8D9 Created OS            03 (3) 'Unix'\n-2A8DA Extract Zip Spec      14 (20) '2.0'\n-2A8DB Extract OS            00 (0) 'MS-DOS'\n-2A8DC General Purpose Flag  0800 (2048)\n+2AD31 CENTRAL HEADER #74    02014B50 (33639248)\n+2AD35 Created Zip Spec      14 (20) '2.0'\n+2AD36 Created OS            03 (3) 'Unix'\n+2AD37 Extract Zip Spec      14 (20) '2.0'\n+2AD38 Extract OS            00 (0) 'MS-DOS'\n+2AD39 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2A8DE Compression Method    0008 (8) 'Deflated'\n-2A8E0 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2A8E4 CRC                   CDF9EC0F (3455708175)\n-2A8E8 Compressed Size       000003E0 (992)\n-2A8EC Uncompressed Size     000008C5 (2245)\n-2A8F0 Filename Length       0034 (52)\n-2A8F2 Extra Length          0000 (0)\n-2A8F4 Comment Length        0000 (0)\n-2A8F6 Disk Start            0000 (0)\n-2A8F8 Int File Attributes   0000 (0)\n+2AD3B Compression Method    0008 (8) 'Deflated'\n+2AD3D Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2AD41 CRC                   4F3510BA (1328877754)\n+2AD45 Compressed Size       000003EE (1006)\n+2AD49 Uncompressed Size     000008C5 (2245)\n+2AD4D Filename Length       0034 (52)\n+2AD4F Extra Length          0000 (0)\n+2AD51 Comment Length        0000 (0)\n+2AD53 Disk Start            0000 (0)\n+2AD55 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2A8FA Ext File Attributes   81A40000 (2175008768)\n+2AD57 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2A8FE Local Header Offset   00009F48 (40776)\n-2A902 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2AD5B Local Header Offset   0000A06E (41070)\n+2AD5F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2A902: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2AD5F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2A936 CENTRAL HEADER #75    02014B50 (33639248)\n-2A93A Created Zip Spec      14 (20) '2.0'\n-2A93B Created OS            03 (3) 'Unix'\n-2A93C Extract Zip Spec      14 (20) '2.0'\n-2A93D Extract OS            00 (0) 'MS-DOS'\n-2A93E General Purpose Flag  0800 (2048)\n+2AD93 CENTRAL HEADER #75    02014B50 (33639248)\n+2AD97 Created Zip Spec      14 (20) '2.0'\n+2AD98 Created OS            03 (3) 'Unix'\n+2AD99 Extract Zip Spec      14 (20) '2.0'\n+2AD9A Extract OS            00 (0) 'MS-DOS'\n+2AD9B General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2A940 Compression Method    0008 (8) 'Deflated'\n-2A942 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2A946 CRC                   5A33884E (1513326670)\n-2A94A Compressed Size       00000545 (1349)\n-2A94E Uncompressed Size     00000D35 (3381)\n-2A952 Filename Length       0041 (65)\n-2A954 Extra Length          0000 (0)\n-2A956 Comment Length        0000 (0)\n-2A958 Disk Start            0000 (0)\n-2A95A Int File Attributes   0000 (0)\n+2AD9D Compression Method    0008 (8) 'Deflated'\n+2AD9F Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2ADA3 CRC                   20A5CCED (547736813)\n+2ADA7 Compressed Size       00000555 (1365)\n+2ADAB Uncompressed Size     00000D35 (3381)\n+2ADAF Filename Length       0041 (65)\n+2ADB1 Extra Length          0000 (0)\n+2ADB3 Comment Length        0000 (0)\n+2ADB5 Disk Start            0000 (0)\n+2ADB7 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2A95C Ext File Attributes   81A40000 (2175008768)\n+2ADB9 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2A960 Local Header Offset   0000A37A (41850)\n-2A964 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2ADBD Local Header Offset   0000A4AE (42158)\n+2ADC1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2A964: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2ADC1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2A9A5 CENTRAL HEADER #76    02014B50 (33639248)\n-2A9A9 Created Zip Spec      14 (20) '2.0'\n-2A9AA Created OS            03 (3) 'Unix'\n-2A9AB Extract Zip Spec      14 (20) '2.0'\n-2A9AC Extract OS            00 (0) 'MS-DOS'\n-2A9AD General Purpose Flag  0800 (2048)\n+2AE02 CENTRAL HEADER #76    02014B50 (33639248)\n+2AE06 Created Zip Spec      14 (20) '2.0'\n+2AE07 Created OS            03 (3) 'Unix'\n+2AE08 Extract Zip Spec      14 (20) '2.0'\n+2AE09 Extract OS            00 (0) 'MS-DOS'\n+2AE0A General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2A9AF Compression Method    0008 (8) 'Deflated'\n-2A9B1 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2A9B5 CRC                   8665BB83 (2254814083)\n-2A9B9 Compressed Size       00000985 (2437)\n-2A9BD Uncompressed Size     00001A24 (6692)\n-2A9C1 Filename Length       0032 (50)\n-2A9C3 Extra Length          0000 (0)\n-2A9C5 Comment Length        0000 (0)\n-2A9C7 Disk Start            0000 (0)\n-2A9C9 Int File Attributes   0000 (0)\n+2AE0C Compression Method    0008 (8) 'Deflated'\n+2AE0E Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2AE12 CRC                   CCA441E8 (3433316840)\n+2AE16 Compressed Size       00000993 (2451)\n+2AE1A Uncompressed Size     00001A24 (6692)\n+2AE1E Filename Length       0032 (50)\n+2AE20 Extra Length          0000 (0)\n+2AE22 Comment Length        0000 (0)\n+2AE24 Disk Start            0000 (0)\n+2AE26 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2A9CB Ext File Attributes   81A40000 (2175008768)\n+2AE28 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2A9CF Local Header Offset   0000A91E (43294)\n-2A9D3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2AE2C Local Header Offset   0000AA62 (43618)\n+2AE30 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2A9D3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2AE30: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2AA05 CENTRAL HEADER #77    02014B50 (33639248)\n-2AA09 Created Zip Spec      14 (20) '2.0'\n-2AA0A Created OS            03 (3) 'Unix'\n-2AA0B Extract Zip Spec      14 (20) '2.0'\n-2AA0C Extract OS            00 (0) 'MS-DOS'\n-2AA0D General Purpose Flag  0800 (2048)\n+2AE62 CENTRAL HEADER #77    02014B50 (33639248)\n+2AE66 Created Zip Spec      14 (20) '2.0'\n+2AE67 Created OS            03 (3) 'Unix'\n+2AE68 Extract Zip Spec      14 (20) '2.0'\n+2AE69 Extract OS            00 (0) 'MS-DOS'\n+2AE6A General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2AA0F Compression Method    0008 (8) 'Deflated'\n-2AA11 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2AA15 CRC                   DB628F10 (3680669456)\n-2AA19 Compressed Size       00000738 (1848)\n-2AA1D Uncompressed Size     00001176 (4470)\n-2AA21 Filename Length       0032 (50)\n-2AA23 Extra Length          0000 (0)\n-2AA25 Comment Length        0000 (0)\n-2AA27 Disk Start            0000 (0)\n-2AA29 Int File Attributes   0000 (0)\n+2AE6C Compression Method    0008 (8) 'Deflated'\n+2AE6E Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2AE72 CRC                   20DB00B6 (551223478)\n+2AE76 Compressed Size       0000074A (1866)\n+2AE7A Uncompressed Size     00001176 (4470)\n+2AE7E Filename Length       0032 (50)\n+2AE80 Extra Length          0000 (0)\n+2AE82 Comment Length        0000 (0)\n+2AE84 Disk Start            0000 (0)\n+2AE86 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2AA2B Ext File Attributes   81A40000 (2175008768)\n+2AE88 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2AA2F Local Header Offset   0000B2F3 (45811)\n-2AA33 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2AE8C Local Header Offset   0000B445 (46149)\n+2AE90 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2AA33: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2AE90: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2AA65 CENTRAL HEADER #78    02014B50 (33639248)\n-2AA69 Created Zip Spec      14 (20) '2.0'\n-2AA6A Created OS            03 (3) 'Unix'\n-2AA6B Extract Zip Spec      14 (20) '2.0'\n-2AA6C Extract OS            00 (0) 'MS-DOS'\n-2AA6D General Purpose Flag  0800 (2048)\n+2AEC2 CENTRAL HEADER #78    02014B50 (33639248)\n+2AEC6 Created Zip Spec      14 (20) '2.0'\n+2AEC7 Created OS            03 (3) 'Unix'\n+2AEC8 Extract Zip Spec      14 (20) '2.0'\n+2AEC9 Extract OS            00 (0) 'MS-DOS'\n+2AECA General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2AA6F Compression Method    0008 (8) 'Deflated'\n-2AA71 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2AA75 CRC                   E5E3EA59 (3856919129)\n-2AA79 Compressed Size       00000234 (564)\n-2AA7D Uncompressed Size     0000051D (1309)\n-2AA81 Filename Length       0057 (87)\n-2AA83 Extra Length          0000 (0)\n-2AA85 Comment Length        0000 (0)\n-2AA87 Disk Start            0000 (0)\n-2AA89 Int File Attributes   0000 (0)\n+2AECC Compression Method    0008 (8) 'Deflated'\n+2AECE Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2AED2 CRC                   3CC0C248 (1019265608)\n+2AED6 Compressed Size       00000239 (569)\n+2AEDA Uncompressed Size     0000051A (1306)\n+2AEDE Filename Length       0057 (87)\n+2AEE0 Extra Length          0000 (0)\n+2AEE2 Comment Length        0000 (0)\n+2AEE4 Disk Start            0000 (0)\n+2AEE6 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2AA8B Ext File Attributes   81A40000 (2175008768)\n+2AEE8 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2AA8F Local Header Offset   0000BA7B (47739)\n-2AA93 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2AEEC Local Header Offset   0000BBDF (48095)\n+2AEF0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2AA93: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2AEF0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2AAEA CENTRAL HEADER #79    02014B50 (33639248)\n-2AAEE Created Zip Spec      14 (20) '2.0'\n-2AAEF Created OS            03 (3) 'Unix'\n-2AAF0 Extract Zip Spec      14 (20) '2.0'\n-2AAF1 Extract OS            00 (0) 'MS-DOS'\n-2AAF2 General Purpose Flag  0800 (2048)\n+2AF47 CENTRAL HEADER #79    02014B50 (33639248)\n+2AF4B Created Zip Spec      14 (20) '2.0'\n+2AF4C Created OS            03 (3) 'Unix'\n+2AF4D Extract Zip Spec      14 (20) '2.0'\n+2AF4E Extract OS            00 (0) 'MS-DOS'\n+2AF4F General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2AAF4 Compression Method    0008 (8) 'Deflated'\n-2AAF6 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2AAFA CRC                   F1DBC679 (4057712249)\n-2AAFE Compressed Size       000003DC (988)\n-2AB02 Uncompressed Size     000008B2 (2226)\n-2AB06 Filename Length       003D (61)\n-2AB08 Extra Length          0000 (0)\n-2AB0A Comment Length        0000 (0)\n-2AB0C Disk Start            0000 (0)\n-2AB0E Int File Attributes   0000 (0)\n+2AF51 Compression Method    0008 (8) 'Deflated'\n+2AF53 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2AF57 CRC                   344ACFDE (877318110)\n+2AF5B Compressed Size       000003E3 (995)\n+2AF5F Uncompressed Size     000008B2 (2226)\n+2AF63 Filename Length       003D (61)\n+2AF65 Extra Length          0000 (0)\n+2AF67 Comment Length        0000 (0)\n+2AF69 Disk Start            0000 (0)\n+2AF6B Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2AB10 Ext File Attributes   81A40000 (2175008768)\n+2AF6D Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2AB14 Local Header Offset   0000BD24 (48420)\n-2AB18 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2AF71 Local Header Offset   0000BE8D (48781)\n+2AF75 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2AB18: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2AF75: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2AB55 CENTRAL HEADER #80    02014B50 (33639248)\n-2AB59 Created Zip Spec      14 (20) '2.0'\n-2AB5A Created OS            03 (3) 'Unix'\n-2AB5B Extract Zip Spec      14 (20) '2.0'\n-2AB5C Extract OS            00 (0) 'MS-DOS'\n-2AB5D General Purpose Flag  0800 (2048)\n+2AFB2 CENTRAL HEADER #80    02014B50 (33639248)\n+2AFB6 Created Zip Spec      14 (20) '2.0'\n+2AFB7 Created OS            03 (3) 'Unix'\n+2AFB8 Extract Zip Spec      14 (20) '2.0'\n+2AFB9 Extract OS            00 (0) 'MS-DOS'\n+2AFBA General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2AB5F Compression Method    0008 (8) 'Deflated'\n-2AB61 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2AB65 CRC                   C3188174 (3273163124)\n-2AB69 Compressed Size       00000262 (610)\n-2AB6D Uncompressed Size     00000547 (1351)\n-2AB71 Filename Length       002D (45)\n-2AB73 Extra Length          0000 (0)\n-2AB75 Comment Length        0000 (0)\n-2AB77 Disk Start            0000 (0)\n-2AB79 Int File Attributes   0000 (0)\n+2AFBC Compression Method    0008 (8) 'Deflated'\n+2AFBE Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2AFC2 CRC                   4F7B3403 (1333474307)\n+2AFC6 Compressed Size       00000263 (611)\n+2AFCA Uncompressed Size     00000547 (1351)\n+2AFCE Filename Length       002D (45)\n+2AFD0 Extra Length          0000 (0)\n+2AFD2 Comment Length        0000 (0)\n+2AFD4 Disk Start            0000 (0)\n+2AFD6 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2AB7B Ext File Attributes   81A40000 (2175008768)\n+2AFD8 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2AB7F Local Header Offset   0000C15B (49499)\n-2AB83 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2AFDC Local Header Offset   0000C2CB (49867)\n+2AFE0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2AB83: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2AFE0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2ABB0 CENTRAL HEADER #81    02014B50 (33639248)\n-2ABB4 Created Zip Spec      14 (20) '2.0'\n-2ABB5 Created OS            03 (3) 'Unix'\n-2ABB6 Extract Zip Spec      14 (20) '2.0'\n-2ABB7 Extract OS            00 (0) 'MS-DOS'\n-2ABB8 General Purpose Flag  0800 (2048)\n+2B00D CENTRAL HEADER #81    02014B50 (33639248)\n+2B011 Created Zip Spec      14 (20) '2.0'\n+2B012 Created OS            03 (3) 'Unix'\n+2B013 Extract Zip Spec      14 (20) '2.0'\n+2B014 Extract OS            00 (0) 'MS-DOS'\n+2B015 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2ABBA Compression Method    0008 (8) 'Deflated'\n-2ABBC Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2ABC0 CRC                   F3F211B7 (4092727735)\n-2ABC4 Compressed Size       0000017F (383)\n-2ABC8 Uncompressed Size     000002D2 (722)\n-2ABCC Filename Length       0032 (50)\n-2ABCE Extra Length          0000 (0)\n-2ABD0 Comment Length        0000 (0)\n-2ABD2 Disk Start            0000 (0)\n-2ABD4 Int File Attributes   0000 (0)\n+2B017 Compression Method    0008 (8) 'Deflated'\n+2B019 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2B01D CRC                   7E842F24 (2122592036)\n+2B021 Compressed Size       00000186 (390)\n+2B025 Uncompressed Size     000002D2 (722)\n+2B029 Filename Length       0032 (50)\n+2B02B Extra Length          0000 (0)\n+2B02D Comment Length        0000 (0)\n+2B02F Disk Start            0000 (0)\n+2B031 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2ABD6 Ext File Attributes   81A40000 (2175008768)\n+2B033 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2ABDA Local Header Offset   0000C408 (50184)\n-2ABDE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2B037 Local Header Offset   0000C579 (50553)\n+2B03B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2ABDE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2B03B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2AC10 CENTRAL HEADER #82    02014B50 (33639248)\n-2AC14 Created Zip Spec      14 (20) '2.0'\n-2AC15 Created OS            03 (3) 'Unix'\n-2AC16 Extract Zip Spec      14 (20) '2.0'\n-2AC17 Extract OS            00 (0) 'MS-DOS'\n-2AC18 General Purpose Flag  0800 (2048)\n+2B06D CENTRAL HEADER #82    02014B50 (33639248)\n+2B071 Created Zip Spec      14 (20) '2.0'\n+2B072 Created OS            03 (3) 'Unix'\n+2B073 Extract Zip Spec      14 (20) '2.0'\n+2B074 Extract OS            00 (0) 'MS-DOS'\n+2B075 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2AC1A Compression Method    0008 (8) 'Deflated'\n-2AC1C Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2AC20 CRC                   7C5D6AFA (2086497018)\n-2AC24 Compressed Size       00000217 (535)\n-2AC28 Uncompressed Size     000003CF (975)\n-2AC2C Filename Length       003C (60)\n-2AC2E Extra Length          0000 (0)\n-2AC30 Comment Length        0000 (0)\n-2AC32 Disk Start            0000 (0)\n-2AC34 Int File Attributes   0000 (0)\n+2B077 Compression Method    0008 (8) 'Deflated'\n+2B079 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2B07D CRC                   4EBF134A (1321145162)\n+2B081 Compressed Size       00000218 (536)\n+2B085 Uncompressed Size     000003CC (972)\n+2B089 Filename Length       003C (60)\n+2B08B Extra Length          0000 (0)\n+2B08D Comment Length        0000 (0)\n+2B08F Disk Start            0000 (0)\n+2B091 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2AC36 Ext File Attributes   81A40000 (2175008768)\n+2B093 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2AC3A Local Header Offset   0000C5D7 (50647)\n-2AC3E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2B097 Local Header Offset   0000C74F (51023)\n+2B09B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2AC3E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2B09B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2AC7A CENTRAL HEADER #83    02014B50 (33639248)\n-2AC7E Created Zip Spec      14 (20) '2.0'\n-2AC7F Created OS            03 (3) 'Unix'\n-2AC80 Extract Zip Spec      14 (20) '2.0'\n-2AC81 Extract OS            00 (0) 'MS-DOS'\n-2AC82 General Purpose Flag  0800 (2048)\n+2B0D7 CENTRAL HEADER #83    02014B50 (33639248)\n+2B0DB Created Zip Spec      14 (20) '2.0'\n+2B0DC Created OS            03 (3) 'Unix'\n+2B0DD Extract Zip Spec      14 (20) '2.0'\n+2B0DE Extract OS            00 (0) 'MS-DOS'\n+2B0DF General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2AC84 Compression Method    0008 (8) 'Deflated'\n-2AC86 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2AC8A CRC                   0192E22B (26403371)\n-2AC8E Compressed Size       000001F8 (504)\n-2AC92 Uncompressed Size     00000359 (857)\n-2AC96 Filename Length       0038 (56)\n-2AC98 Extra Length          0000 (0)\n-2AC9A Comment Length        0000 (0)\n-2AC9C Disk Start            0000 (0)\n-2AC9E Int File Attributes   0000 (0)\n+2B0E1 Compression Method    0008 (8) 'Deflated'\n+2B0E3 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2B0E7 CRC                   6C6C2451 (1819026513)\n+2B0EB Compressed Size       000001FA (506)\n+2B0EF Uncompressed Size     00000356 (854)\n+2B0F3 Filename Length       0038 (56)\n+2B0F5 Extra Length          0000 (0)\n+2B0F7 Comment Length        0000 (0)\n+2B0F9 Disk Start            0000 (0)\n+2B0FB Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2ACA0 Ext File Attributes   81A40000 (2175008768)\n+2B0FD Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2ACA4 Local Header Offset   0000C848 (51272)\n-2ACA8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2B101 Local Header Offset   0000C9C1 (51649)\n+2B105 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2ACA8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2B105: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2ACE0 CENTRAL HEADER #84    02014B50 (33639248)\n-2ACE4 Created Zip Spec      14 (20) '2.0'\n-2ACE5 Created OS            03 (3) 'Unix'\n-2ACE6 Extract Zip Spec      14 (20) '2.0'\n-2ACE7 Extract OS            00 (0) 'MS-DOS'\n-2ACE8 General Purpose Flag  0800 (2048)\n+2B13D CENTRAL HEADER #84    02014B50 (33639248)\n+2B141 Created Zip Spec      14 (20) '2.0'\n+2B142 Created OS            03 (3) 'Unix'\n+2B143 Extract Zip Spec      14 (20) '2.0'\n+2B144 Extract OS            00 (0) 'MS-DOS'\n+2B145 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2ACEA Compression Method    0008 (8) 'Deflated'\n-2ACEC Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2ACF0 CRC                   26456553 (642082131)\n-2ACF4 Compressed Size       000009EB (2539)\n-2ACF8 Uncompressed Size     0000179C (6044)\n-2ACFC Filename Length       0030 (48)\n-2ACFE Extra Length          0000 (0)\n-2AD00 Comment Length        0000 (0)\n-2AD02 Disk Start            0000 (0)\n-2AD04 Int File Attributes   0000 (0)\n+2B147 Compression Method    0008 (8) 'Deflated'\n+2B149 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2B14D CRC                   4CF35C69 (1291017321)\n+2B151 Compressed Size       000009C0 (2496)\n+2B155 Uncompressed Size     0000172C (5932)\n+2B159 Filename Length       0030 (48)\n+2B15B Extra Length          0000 (0)\n+2B15D Comment Length        0000 (0)\n+2B15F Disk Start            0000 (0)\n+2B161 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2AD06 Ext File Attributes   81A40000 (2175008768)\n+2B163 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2AD0A Local Header Offset   0000CA96 (51862)\n-2AD0E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2B167 Local Header Offset   0000CC11 (52241)\n+2B16B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2AD0E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2B16B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2AD3E CENTRAL HEADER #85    02014B50 (33639248)\n-2AD42 Created Zip Spec      14 (20) '2.0'\n-2AD43 Created OS            03 (3) 'Unix'\n-2AD44 Extract Zip Spec      14 (20) '2.0'\n-2AD45 Extract OS            00 (0) 'MS-DOS'\n-2AD46 General Purpose Flag  0800 (2048)\n+2B19B CENTRAL HEADER #85    02014B50 (33639248)\n+2B19F Created Zip Spec      14 (20) '2.0'\n+2B1A0 Created OS            03 (3) 'Unix'\n+2B1A1 Extract Zip Spec      14 (20) '2.0'\n+2B1A2 Extract OS            00 (0) 'MS-DOS'\n+2B1A3 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2AD48 Compression Method    0008 (8) 'Deflated'\n-2AD4A Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2AD4E CRC                   A742848E (2806154382)\n-2AD52 Compressed Size       000000A3 (163)\n-2AD56 Uncompressed Size     000000DE (222)\n-2AD5A Filename Length       0029 (41)\n-2AD5C Extra Length          0000 (0)\n-2AD5E Comment Length        0000 (0)\n-2AD60 Disk Start            0000 (0)\n-2AD62 Int File Attributes   0000 (0)\n+2B1A5 Compression Method    0008 (8) 'Deflated'\n+2B1A7 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2B1AB CRC                   0E9435B8 (244594104)\n+2B1AF Compressed Size       000000A1 (161)\n+2B1B3 Uncompressed Size     000000DE (222)\n+2B1B7 Filename Length       0029 (41)\n+2B1B9 Extra Length          0000 (0)\n+2B1BB Comment Length        0000 (0)\n+2B1BD Disk Start            0000 (0)\n+2B1BF Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2AD64 Ext File Attributes   81A40000 (2175008768)\n+2B1C1 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2AD68 Local Header Offset   0000D4CF (54479)\n-2AD6C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2B1C5 Local Header Offset   0000D61F (54815)\n+2B1C9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2AD6C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2B1C9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2AD95 CENTRAL HEADER #86    02014B50 (33639248)\n-2AD99 Created Zip Spec      14 (20) '2.0'\n-2AD9A Created OS            03 (3) 'Unix'\n-2AD9B Extract Zip Spec      14 (20) '2.0'\n-2AD9C Extract OS            00 (0) 'MS-DOS'\n-2AD9D General Purpose Flag  0800 (2048)\n+2B1F2 CENTRAL HEADER #86    02014B50 (33639248)\n+2B1F6 Created Zip Spec      14 (20) '2.0'\n+2B1F7 Created OS            03 (3) 'Unix'\n+2B1F8 Extract Zip Spec      14 (20) '2.0'\n+2B1F9 Extract OS            00 (0) 'MS-DOS'\n+2B1FA General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2AD9F Compression Method    0008 (8) 'Deflated'\n-2ADA1 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2ADA5 CRC                   B3EE9627 (3018757671)\n-2ADA9 Compressed Size       00000280 (640)\n-2ADAD Uncompressed Size     0000061F (1567)\n-2ADB1 Filename Length       0030 (48)\n-2ADB3 Extra Length          0000 (0)\n-2ADB5 Comment Length        0000 (0)\n-2ADB7 Disk Start            0000 (0)\n-2ADB9 Int File Attributes   0000 (0)\n+2B1FC Compression Method    0008 (8) 'Deflated'\n+2B1FE Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2B202 CRC                   7E2D3D43 (2116894019)\n+2B206 Compressed Size       0000027E (638)\n+2B20A Uncompressed Size     0000061F (1567)\n+2B20E Filename Length       0030 (48)\n+2B210 Extra Length          0000 (0)\n+2B212 Comment Length        0000 (0)\n+2B214 Disk Start            0000 (0)\n+2B216 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2ADBB Ext File Attributes   81A40000 (2175008768)\n+2B218 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2ADBF Local Header Offset   0000D5B9 (54713)\n-2ADC3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2B21C Local Header Offset   0000D707 (55047)\n+2B220 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2ADC3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2B220: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2ADF3 CENTRAL HEADER #87    02014B50 (33639248)\n-2ADF7 Created Zip Spec      14 (20) '2.0'\n-2ADF8 Created OS            03 (3) 'Unix'\n-2ADF9 Extract Zip Spec      14 (20) '2.0'\n-2ADFA Extract OS            00 (0) 'MS-DOS'\n-2ADFB General Purpose Flag  0800 (2048)\n+2B250 CENTRAL HEADER #87    02014B50 (33639248)\n+2B254 Created Zip Spec      14 (20) '2.0'\n+2B255 Created OS            03 (3) 'Unix'\n+2B256 Extract Zip Spec      14 (20) '2.0'\n+2B257 Extract OS            00 (0) 'MS-DOS'\n+2B258 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2ADFD Compression Method    0008 (8) 'Deflated'\n-2ADFF Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2AE03 CRC                   AEEAA635 (2934613557)\n-2AE07 Compressed Size       0000017B (379)\n-2AE0B Uncompressed Size     000002AF (687)\n-2AE0F Filename Length       0032 (50)\n-2AE11 Extra Length          0000 (0)\n-2AE13 Comment Length        0000 (0)\n-2AE15 Disk Start            0000 (0)\n-2AE17 Int File Attributes   0000 (0)\n+2B25A Compression Method    0008 (8) 'Deflated'\n+2B25C Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2B260 CRC                   1657AE16 (374844950)\n+2B264 Compressed Size       0000017F (383)\n+2B268 Uncompressed Size     000002AF (687)\n+2B26C Filename Length       0032 (50)\n+2B26E Extra Length          0000 (0)\n+2B270 Comment Length        0000 (0)\n+2B272 Disk Start            0000 (0)\n+2B274 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2AE19 Ext File Attributes   81A40000 (2175008768)\n+2B276 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2AE1D Local Header Offset   0000D887 (55431)\n-2AE21 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2B27A Local Header Offset   0000D9D3 (55763)\n+2B27E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2AE21: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2B27E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2AE53 CENTRAL HEADER #88    02014B50 (33639248)\n-2AE57 Created Zip Spec      14 (20) '2.0'\n-2AE58 Created OS            03 (3) 'Unix'\n-2AE59 Extract Zip Spec      14 (20) '2.0'\n-2AE5A Extract OS            00 (0) 'MS-DOS'\n-2AE5B General Purpose Flag  0800 (2048)\n+2B2B0 CENTRAL HEADER #88    02014B50 (33639248)\n+2B2B4 Created Zip Spec      14 (20) '2.0'\n+2B2B5 Created OS            03 (3) 'Unix'\n+2B2B6 Extract Zip Spec      14 (20) '2.0'\n+2B2B7 Extract OS            00 (0) 'MS-DOS'\n+2B2B8 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2AE5D Compression Method    0008 (8) 'Deflated'\n-2AE5F Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2AE63 CRC                   0FF8665E (267937374)\n-2AE67 Compressed Size       00000760 (1888)\n-2AE6B Uncompressed Size     00001084 (4228)\n-2AE6F Filename Length       0027 (39)\n-2AE71 Extra Length          0000 (0)\n-2AE73 Comment Length        0000 (0)\n-2AE75 Disk Start            0000 (0)\n-2AE77 Int File Attributes   0000 (0)\n+2B2BA Compression Method    0008 (8) 'Deflated'\n+2B2BC Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2B2C0 CRC                   E50DBBE1 (3842882529)\n+2B2C4 Compressed Size       0000072D (1837)\n+2B2C8 Uncompressed Size     00000FFC (4092)\n+2B2CC Filename Length       0027 (39)\n+2B2CE Extra Length          0000 (0)\n+2B2D0 Comment Length        0000 (0)\n+2B2D2 Disk Start            0000 (0)\n+2B2D4 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2AE79 Ext File Attributes   81A40000 (2175008768)\n+2B2D6 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2AE7D Local Header Offset   0000DA52 (55890)\n-2AE81 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2B2DA Local Header Offset   0000DBA2 (56226)\n+2B2DE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2AE81: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2B2DE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2AEA8 CENTRAL HEADER #89    02014B50 (33639248)\n-2AEAC Created Zip Spec      14 (20) '2.0'\n-2AEAD Created OS            03 (3) 'Unix'\n-2AEAE Extract Zip Spec      14 (20) '2.0'\n-2AEAF Extract OS            00 (0) 'MS-DOS'\n-2AEB0 General Purpose Flag  0800 (2048)\n+2B305 CENTRAL HEADER #89    02014B50 (33639248)\n+2B309 Created Zip Spec      14 (20) '2.0'\n+2B30A Created OS            03 (3) 'Unix'\n+2B30B Extract Zip Spec      14 (20) '2.0'\n+2B30C Extract OS            00 (0) 'MS-DOS'\n+2B30D General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2AEB2 Compression Method    0008 (8) 'Deflated'\n-2AEB4 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2AEB8 CRC                   F0E6137B (4041610107)\n-2AEBC Compressed Size       000008E0 (2272)\n-2AEC0 Uncompressed Size     000016A0 (5792)\n-2AEC4 Filename Length       002D (45)\n-2AEC6 Extra Length          0000 (0)\n-2AEC8 Comment Length        0000 (0)\n-2AECA Disk Start            0000 (0)\n-2AECC Int File Attributes   0000 (0)\n+2B30F Compression Method    0008 (8) 'Deflated'\n+2B311 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2B315 CRC                   BC142CBC (3155438780)\n+2B319 Compressed Size       000008E6 (2278)\n+2B31D Uncompressed Size     000016AC (5804)\n+2B321 Filename Length       002D (45)\n+2B323 Extra Length          0000 (0)\n+2B325 Comment Length        0000 (0)\n+2B327 Disk Start            0000 (0)\n+2B329 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2AECE Ext File Attributes   81A40000 (2175008768)\n+2B32B Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2AED2 Local Header Offset   0000E1F7 (57847)\n-2AED6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2B32F Local Header Offset   0000E314 (58132)\n+2B333 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2AED6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2B333: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2AF03 CENTRAL HEADER #90    02014B50 (33639248)\n-2AF07 Created Zip Spec      14 (20) '2.0'\n-2AF08 Created OS            03 (3) 'Unix'\n-2AF09 Extract Zip Spec      14 (20) '2.0'\n-2AF0A Extract OS            00 (0) 'MS-DOS'\n-2AF0B General Purpose Flag  0800 (2048)\n+2B360 CENTRAL HEADER #90    02014B50 (33639248)\n+2B364 Created Zip Spec      14 (20) '2.0'\n+2B365 Created OS            03 (3) 'Unix'\n+2B366 Extract Zip Spec      14 (20) '2.0'\n+2B367 Extract OS            00 (0) 'MS-DOS'\n+2B368 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2AF0D Compression Method    0008 (8) 'Deflated'\n-2AF0F Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2AF13 CRC                   2442917B (608342395)\n-2AF17 Compressed Size       00000F46 (3910)\n-2AF1B Uncompressed Size     000025D4 (9684)\n-2AF1F Filename Length       0028 (40)\n-2AF21 Extra Length          0000 (0)\n-2AF23 Comment Length        0000 (0)\n-2AF25 Disk Start            0000 (0)\n-2AF27 Int File Attributes   0000 (0)\n+2B36A Compression Method    0008 (8) 'Deflated'\n+2B36C Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2B370 CRC                   23BE2A56 (599665238)\n+2B374 Compressed Size       00000F6F (3951)\n+2B378 Uncompressed Size     000025D2 (9682)\n+2B37C Filename Length       0028 (40)\n+2B37E Extra Length          0000 (0)\n+2B380 Comment Length        0000 (0)\n+2B382 Disk Start            0000 (0)\n+2B384 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2AF29 Ext File Attributes   81A40000 (2175008768)\n+2B386 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2AF2D Local Header Offset   0000EB22 (60194)\n-2AF31 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2B38A Local Header Offset   0000EC45 (60485)\n+2B38E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2AF31: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2B38E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2AF59 CENTRAL HEADER #91    02014B50 (33639248)\n-2AF5D Created Zip Spec      14 (20) '2.0'\n-2AF5E Created OS            03 (3) 'Unix'\n-2AF5F Extract Zip Spec      14 (20) '2.0'\n-2AF60 Extract OS            00 (0) 'MS-DOS'\n-2AF61 General Purpose Flag  0800 (2048)\n+2B3B6 CENTRAL HEADER #91    02014B50 (33639248)\n+2B3BA Created Zip Spec      14 (20) '2.0'\n+2B3BB Created OS            03 (3) 'Unix'\n+2B3BC Extract Zip Spec      14 (20) '2.0'\n+2B3BD Extract OS            00 (0) 'MS-DOS'\n+2B3BE General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2AF63 Compression Method    0008 (8) 'Deflated'\n-2AF65 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2AF69 CRC                   C3FAA4DD (3287983325)\n-2AF6D Compressed Size       00000DF6 (3574)\n-2AF71 Uncompressed Size     00002792 (10130)\n-2AF75 Filename Length       0032 (50)\n-2AF77 Extra Length          0000 (0)\n-2AF79 Comment Length        0000 (0)\n-2AF7B Disk Start            0000 (0)\n-2AF7D Int File Attributes   0000 (0)\n+2B3C0 Compression Method    0008 (8) 'Deflated'\n+2B3C2 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2B3C6 CRC                   E3F04F5A (3824176986)\n+2B3CA Compressed Size       00000DFF (3583)\n+2B3CE Uncompressed Size     0000278F (10127)\n+2B3D2 Filename Length       0032 (50)\n+2B3D4 Extra Length          0000 (0)\n+2B3D6 Comment Length        0000 (0)\n+2B3D8 Disk Start            0000 (0)\n+2B3DA Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2AF7F Ext File Attributes   81A40000 (2175008768)\n+2B3DC Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2AF83 Local Header Offset   0000FAAE (64174)\n-2AF87 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2B3E0 Local Header Offset   0000FBFA (64506)\n+2B3E4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2AF87: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2B3E4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2AFB9 CENTRAL HEADER #92    02014B50 (33639248)\n-2AFBD Created Zip Spec      14 (20) '2.0'\n-2AFBE Created OS            03 (3) 'Unix'\n-2AFBF Extract Zip Spec      14 (20) '2.0'\n-2AFC0 Extract OS            00 (0) 'MS-DOS'\n-2AFC1 General Purpose Flag  0800 (2048)\n+2B416 CENTRAL HEADER #92    02014B50 (33639248)\n+2B41A Created Zip Spec      14 (20) '2.0'\n+2B41B Created OS            03 (3) 'Unix'\n+2B41C Extract Zip Spec      14 (20) '2.0'\n+2B41D Extract OS            00 (0) 'MS-DOS'\n+2B41E General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2AFC3 Compression Method    0008 (8) 'Deflated'\n-2AFC5 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2AFC9 CRC                   9F500704 (2672822020)\n-2AFCD Compressed Size       000003DF (991)\n-2AFD1 Uncompressed Size     00000A5F (2655)\n-2AFD5 Filename Length       0030 (48)\n-2AFD7 Extra Length          0000 (0)\n-2AFD9 Comment Length        0000 (0)\n-2AFDB Disk Start            0000 (0)\n-2AFDD Int File Attributes   0000 (0)\n+2B420 Compression Method    0008 (8) 'Deflated'\n+2B422 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2B426 CRC                   6D97C843 (1838663747)\n+2B42A Compressed Size       000003E4 (996)\n+2B42E Uncompressed Size     00000A5C (2652)\n+2B432 Filename Length       0030 (48)\n+2B434 Extra Length          0000 (0)\n+2B436 Comment Length        0000 (0)\n+2B438 Disk Start            0000 (0)\n+2B43A Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2AFDF Ext File Attributes   81A40000 (2175008768)\n+2B43C Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2AFE3 Local Header Offset   000108F4 (67828)\n-2AFE7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2B440 Local Header Offset   00010A49 (68169)\n+2B444 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2AFE7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2B444: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2B017 CENTRAL HEADER #93    02014B50 (33639248)\n-2B01B Created Zip Spec      14 (20) '2.0'\n-2B01C Created OS            03 (3) 'Unix'\n-2B01D Extract Zip Spec      14 (20) '2.0'\n-2B01E Extract OS            00 (0) 'MS-DOS'\n-2B01F General Purpose Flag  0800 (2048)\n+2B474 CENTRAL HEADER #93    02014B50 (33639248)\n+2B478 Created Zip Spec      14 (20) '2.0'\n+2B479 Created OS            03 (3) 'Unix'\n+2B47A Extract Zip Spec      14 (20) '2.0'\n+2B47B Extract OS            00 (0) 'MS-DOS'\n+2B47C General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2B021 Compression Method    0008 (8) 'Deflated'\n-2B023 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2B027 CRC                   F12CA953 (4046235987)\n-2B02B Compressed Size       000001BA (442)\n-2B02F Uncompressed Size     00000478 (1144)\n-2B033 Filename Length       0058 (88)\n-2B035 Extra Length          0000 (0)\n-2B037 Comment Length        0000 (0)\n-2B039 Disk Start            0000 (0)\n-2B03B Int File Attributes   0000 (0)\n+2B47E Compression Method    0008 (8) 'Deflated'\n+2B480 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2B484 CRC                   35479578 (893883768)\n+2B488 Compressed Size       000001BF (447)\n+2B48C Uncompressed Size     00000478 (1144)\n+2B490 Filename Length       0058 (88)\n+2B492 Extra Length          0000 (0)\n+2B494 Comment Length        0000 (0)\n+2B496 Disk Start            0000 (0)\n+2B498 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2B03D Ext File Attributes   81A40000 (2175008768)\n+2B49A Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2B041 Local Header Offset   00010D21 (68897)\n-2B045 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2B49E Local Header Offset   00010E7B (69243)\n+2B4A2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2B045: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2B4A2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2B09D CENTRAL HEADER #94    02014B50 (33639248)\n-2B0A1 Created Zip Spec      14 (20) '2.0'\n-2B0A2 Created OS            03 (3) 'Unix'\n-2B0A3 Extract Zip Spec      14 (20) '2.0'\n-2B0A4 Extract OS            00 (0) 'MS-DOS'\n-2B0A5 General Purpose Flag  0800 (2048)\n+2B4FA CENTRAL HEADER #94    02014B50 (33639248)\n+2B4FE Created Zip Spec      14 (20) '2.0'\n+2B4FF Created OS            03 (3) 'Unix'\n+2B500 Extract Zip Spec      14 (20) '2.0'\n+2B501 Extract OS            00 (0) 'MS-DOS'\n+2B502 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2B0A7 Compression Method    0008 (8) 'Deflated'\n-2B0A9 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2B0AD CRC                   BEAABD2F (3198860591)\n-2B0B1 Compressed Size       0000020D (525)\n-2B0B5 Uncompressed Size     00000477 (1143)\n-2B0B9 Filename Length       0038 (56)\n-2B0BB Extra Length          0000 (0)\n-2B0BD Comment Length        0000 (0)\n-2B0BF Disk Start            0000 (0)\n-2B0C1 Int File Attributes   0000 (0)\n+2B504 Compression Method    0008 (8) 'Deflated'\n+2B506 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2B50A CRC                   3F93A3EA (1066640362)\n+2B50E Compressed Size       0000020E (526)\n+2B512 Uncompressed Size     00000477 (1143)\n+2B516 Filename Length       0038 (56)\n+2B518 Extra Length          0000 (0)\n+2B51A Comment Length        0000 (0)\n+2B51C Disk Start            0000 (0)\n+2B51E Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2B0C3 Ext File Attributes   81A40000 (2175008768)\n+2B520 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2B0C7 Local Header Offset   00010F51 (69457)\n-2B0CB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2B524 Local Header Offset   000110B0 (69808)\n+2B528 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2B0CB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2B528: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2B103 CENTRAL HEADER #95    02014B50 (33639248)\n-2B107 Created Zip Spec      14 (20) '2.0'\n-2B108 Created OS            03 (3) 'Unix'\n-2B109 Extract Zip Spec      14 (20) '2.0'\n-2B10A Extract OS            00 (0) 'MS-DOS'\n-2B10B General Purpose Flag  0800 (2048)\n+2B560 CENTRAL HEADER #95    02014B50 (33639248)\n+2B564 Created Zip Spec      14 (20) '2.0'\n+2B565 Created OS            03 (3) 'Unix'\n+2B566 Extract Zip Spec      14 (20) '2.0'\n+2B567 Extract OS            00 (0) 'MS-DOS'\n+2B568 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2B10D Compression Method    0008 (8) 'Deflated'\n-2B10F Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2B113 CRC                   0E52C45C (240305244)\n-2B117 Compressed Size       00000188 (392)\n-2B11B Uncompressed Size     000002F1 (753)\n-2B11F Filename Length       0036 (54)\n-2B121 Extra Length          0000 (0)\n-2B123 Comment Length        0000 (0)\n-2B125 Disk Start            0000 (0)\n-2B127 Int File Attributes   0000 (0)\n+2B56A Compression Method    0008 (8) 'Deflated'\n+2B56C Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2B570 CRC                   398CD30C (965530380)\n+2B574 Compressed Size       0000018C (396)\n+2B578 Uncompressed Size     000002F1 (753)\n+2B57C Filename Length       0036 (54)\n+2B57E Extra Length          0000 (0)\n+2B580 Comment Length        0000 (0)\n+2B582 Disk Start            0000 (0)\n+2B584 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2B129 Ext File Attributes   81A40000 (2175008768)\n+2B586 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2B12D Local Header Offset   000111B4 (70068)\n-2B131 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2B58A Local Header Offset   00011314 (70420)\n+2B58E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2B131: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2B58E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2B167 CENTRAL HEADER #96    02014B50 (33639248)\n-2B16B Created Zip Spec      14 (20) '2.0'\n-2B16C Created OS            03 (3) 'Unix'\n-2B16D Extract Zip Spec      14 (20) '2.0'\n-2B16E Extract OS            00 (0) 'MS-DOS'\n-2B16F General Purpose Flag  0800 (2048)\n+2B5C4 CENTRAL HEADER #96    02014B50 (33639248)\n+2B5C8 Created Zip Spec      14 (20) '2.0'\n+2B5C9 Created OS            03 (3) 'Unix'\n+2B5CA Extract Zip Spec      14 (20) '2.0'\n+2B5CB Extract OS            00 (0) 'MS-DOS'\n+2B5CC General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2B171 Compression Method    0008 (8) 'Deflated'\n-2B173 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2B177 CRC                   8AC14B9F (2327923615)\n-2B17B Compressed Size       0000040F (1039)\n-2B17F Uncompressed Size     00000924 (2340)\n-2B183 Filename Length       0029 (41)\n-2B185 Extra Length          0000 (0)\n-2B187 Comment Length        0000 (0)\n-2B189 Disk Start            0000 (0)\n-2B18B Int File Attributes   0000 (0)\n+2B5CE Compression Method    0008 (8) 'Deflated'\n+2B5D0 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2B5D4 CRC                   73F4B1AD (1945416109)\n+2B5D8 Compressed Size       0000041D (1053)\n+2B5DC Uncompressed Size     00000924 (2340)\n+2B5E0 Filename Length       0029 (41)\n+2B5E2 Extra Length          0000 (0)\n+2B5E4 Comment Length        0000 (0)\n+2B5E6 Disk Start            0000 (0)\n+2B5E8 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2B18D Ext File Attributes   81A40000 (2175008768)\n+2B5EA Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2B191 Local Header Offset   00011390 (70544)\n-2B195 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2B5EE Local Header Offset   000114F4 (70900)\n+2B5F2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2B195: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2B5F2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2B1BE CENTRAL HEADER #97    02014B50 (33639248)\n-2B1C2 Created Zip Spec      14 (20) '2.0'\n-2B1C3 Created OS            03 (3) 'Unix'\n-2B1C4 Extract Zip Spec      14 (20) '2.0'\n-2B1C5 Extract OS            00 (0) 'MS-DOS'\n-2B1C6 General Purpose Flag  0800 (2048)\n+2B61B CENTRAL HEADER #97    02014B50 (33639248)\n+2B61F Created Zip Spec      14 (20) '2.0'\n+2B620 Created OS            03 (3) 'Unix'\n+2B621 Extract Zip Spec      14 (20) '2.0'\n+2B622 Extract OS            00 (0) 'MS-DOS'\n+2B623 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2B1C8 Compression Method    0008 (8) 'Deflated'\n-2B1CA Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2B1CE CRC                   C3825DA4 (3280100772)\n-2B1D2 Compressed Size       00000296 (662)\n-2B1D6 Uncompressed Size     0000061E (1566)\n-2B1DA Filename Length       0049 (73)\n-2B1DC Extra Length          0000 (0)\n-2B1DE Comment Length        0000 (0)\n-2B1E0 Disk Start            0000 (0)\n-2B1E2 Int File Attributes   0000 (0)\n+2B625 Compression Method    0008 (8) 'Deflated'\n+2B627 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2B62B CRC                   305262CA (810705610)\n+2B62F Compressed Size       000002A3 (675)\n+2B633 Uncompressed Size     0000061E (1566)\n+2B637 Filename Length       0049 (73)\n+2B639 Extra Length          0000 (0)\n+2B63B Comment Length        0000 (0)\n+2B63D Disk Start            0000 (0)\n+2B63F Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2B1E4 Ext File Attributes   81A40000 (2175008768)\n+2B641 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2B1E8 Local Header Offset   000117E6 (71654)\n-2B1EC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2B645 Local Header Offset   00011958 (72024)\n+2B649 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2B1EC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2B649: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2B235 CENTRAL HEADER #98    02014B50 (33639248)\n-2B239 Created Zip Spec      14 (20) '2.0'\n-2B23A Created OS            03 (3) 'Unix'\n-2B23B Extract Zip Spec      14 (20) '2.0'\n-2B23C Extract OS            00 (0) 'MS-DOS'\n-2B23D General Purpose Flag  0800 (2048)\n+2B692 CENTRAL HEADER #98    02014B50 (33639248)\n+2B696 Created Zip Spec      14 (20) '2.0'\n+2B697 Created OS            03 (3) 'Unix'\n+2B698 Extract Zip Spec      14 (20) '2.0'\n+2B699 Extract OS            00 (0) 'MS-DOS'\n+2B69A General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2B23F Compression Method    0008 (8) 'Deflated'\n-2B241 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2B245 CRC                   5F4C893F (1598851391)\n-2B249 Compressed Size       00000764 (1892)\n-2B24D Uncompressed Size     000013B5 (5045)\n-2B251 Filename Length       0036 (54)\n-2B253 Extra Length          0000 (0)\n-2B255 Comment Length        0000 (0)\n-2B257 Disk Start            0000 (0)\n-2B259 Int File Attributes   0000 (0)\n+2B69C Compression Method    0008 (8) 'Deflated'\n+2B69E Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2B6A2 CRC                   E8016802 (3892406274)\n+2B6A6 Compressed Size       0000078B (1931)\n+2B6AA Uncompressed Size     000013B5 (5045)\n+2B6AE Filename Length       0036 (54)\n+2B6B0 Extra Length          0000 (0)\n+2B6B2 Comment Length        0000 (0)\n+2B6B4 Disk Start            0000 (0)\n+2B6B6 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2B25B Ext File Attributes   81A40000 (2175008768)\n+2B6B8 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2B25F Local Header Offset   00011AE3 (72419)\n-2B263 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2B6BC Local Header Offset   00011C62 (72802)\n+2B6C0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2B263: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2B6C0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2B299 CENTRAL HEADER #99    02014B50 (33639248)\n-2B29D Created Zip Spec      14 (20) '2.0'\n-2B29E Created OS            03 (3) 'Unix'\n-2B29F Extract Zip Spec      14 (20) '2.0'\n-2B2A0 Extract OS            00 (0) 'MS-DOS'\n-2B2A1 General Purpose Flag  0800 (2048)\n+2B6F6 CENTRAL HEADER #99    02014B50 (33639248)\n+2B6FA Created Zip Spec      14 (20) '2.0'\n+2B6FB Created OS            03 (3) 'Unix'\n+2B6FC Extract Zip Spec      14 (20) '2.0'\n+2B6FD Extract OS            00 (0) 'MS-DOS'\n+2B6FE General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2B2A3 Compression Method    0008 (8) 'Deflated'\n-2B2A5 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2B2A9 CRC                   746795EC (1952945644)\n-2B2AD Compressed Size       000002B6 (694)\n-2B2B1 Uncompressed Size     00000752 (1874)\n-2B2B5 Filename Length       0058 (88)\n-2B2B7 Extra Length          0000 (0)\n-2B2B9 Comment Length        0000 (0)\n-2B2BB Disk Start            0000 (0)\n-2B2BD Int File Attributes   0000 (0)\n+2B700 Compression Method    0008 (8) 'Deflated'\n+2B702 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2B706 CRC                   6885B64A (1753593418)\n+2B70A Compressed Size       000002BD (701)\n+2B70E Uncompressed Size     00000752 (1874)\n+2B712 Filename Length       0058 (88)\n+2B714 Extra Length          0000 (0)\n+2B716 Comment Length        0000 (0)\n+2B718 Disk Start            0000 (0)\n+2B71A Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2B2BF Ext File Attributes   81A40000 (2175008768)\n+2B71C Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2B2C3 Local Header Offset   0001229B (74395)\n-2B2C7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2B720 Local Header Offset   00012441 (74817)\n+2B724 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2B2C7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2B724: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2B31F CENTRAL HEADER #100   02014B50 (33639248)\n-2B323 Created Zip Spec      14 (20) '2.0'\n-2B324 Created OS            03 (3) 'Unix'\n-2B325 Extract Zip Spec      14 (20) '2.0'\n-2B326 Extract OS            00 (0) 'MS-DOS'\n-2B327 General Purpose Flag  0800 (2048)\n+2B77C CENTRAL HEADER #100   02014B50 (33639248)\n+2B780 Created Zip Spec      14 (20) '2.0'\n+2B781 Created OS            03 (3) 'Unix'\n+2B782 Extract Zip Spec      14 (20) '2.0'\n+2B783 Extract OS            00 (0) 'MS-DOS'\n+2B784 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2B329 Compression Method    0008 (8) 'Deflated'\n-2B32B Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2B32F CRC                   D8D02F36 (3637522230)\n-2B333 Compressed Size       0000030C (780)\n-2B337 Uncompressed Size     0000084F (2127)\n-2B33B Filename Length       005B (91)\n-2B33D Extra Length          0000 (0)\n-2B33F Comment Length        0000 (0)\n-2B341 Disk Start            0000 (0)\n-2B343 Int File Attributes   0000 (0)\n+2B786 Compression Method    0008 (8) 'Deflated'\n+2B788 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2B78C CRC                   3C5A566B (1012553323)\n+2B790 Compressed Size       00000319 (793)\n+2B794 Uncompressed Size     0000084F (2127)\n+2B798 Filename Length       005B (91)\n+2B79A Extra Length          0000 (0)\n+2B79C Comment Length        0000 (0)\n+2B79E Disk Start            0000 (0)\n+2B7A0 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2B345 Ext File Attributes   81A40000 (2175008768)\n+2B7A2 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2B349 Local Header Offset   000125C7 (75207)\n-2B34D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2B7A6 Local Header Offset   00012774 (75636)\n+2B7AA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2B34D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2B7AA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2B3A8 CENTRAL HEADER #101   02014B50 (33639248)\n-2B3AC Created Zip Spec      14 (20) '2.0'\n-2B3AD Created OS            03 (3) 'Unix'\n-2B3AE Extract Zip Spec      14 (20) '2.0'\n-2B3AF Extract OS            00 (0) 'MS-DOS'\n-2B3B0 General Purpose Flag  0800 (2048)\n+2B805 CENTRAL HEADER #101   02014B50 (33639248)\n+2B809 Created Zip Spec      14 (20) '2.0'\n+2B80A Created OS            03 (3) 'Unix'\n+2B80B Extract Zip Spec      14 (20) '2.0'\n+2B80C Extract OS            00 (0) 'MS-DOS'\n+2B80D General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2B3B2 Compression Method    0008 (8) 'Deflated'\n-2B3B4 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2B3B8 CRC                   650EE0FC (1695473916)\n-2B3BC Compressed Size       000007F2 (2034)\n-2B3C0 Uncompressed Size     000016FC (5884)\n-2B3C4 Filename Length       003F (63)\n-2B3C6 Extra Length          0000 (0)\n-2B3C8 Comment Length        0000 (0)\n-2B3CA Disk Start            0000 (0)\n-2B3CC Int File Attributes   0000 (0)\n+2B80F Compression Method    0008 (8) 'Deflated'\n+2B811 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2B815 CRC                   3A65F954 (979761492)\n+2B819 Compressed Size       00000815 (2069)\n+2B81D Uncompressed Size     000016FC (5884)\n+2B821 Filename Length       003F (63)\n+2B823 Extra Length          0000 (0)\n+2B825 Comment Length        0000 (0)\n+2B827 Disk Start            0000 (0)\n+2B829 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2B3CE Ext File Attributes   81A40000 (2175008768)\n+2B82B Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2B3D2 Local Header Offset   0001294C (76108)\n-2B3D6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2B82F Local Header Offset   00012B06 (76550)\n+2B833 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2B3D6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2B833: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2B415 CENTRAL HEADER #102   02014B50 (33639248)\n-2B419 Created Zip Spec      14 (20) '2.0'\n-2B41A Created OS            03 (3) 'Unix'\n-2B41B Extract Zip Spec      14 (20) '2.0'\n-2B41C Extract OS            00 (0) 'MS-DOS'\n-2B41D General Purpose Flag  0800 (2048)\n+2B872 CENTRAL HEADER #102   02014B50 (33639248)\n+2B876 Created Zip Spec      14 (20) '2.0'\n+2B877 Created OS            03 (3) 'Unix'\n+2B878 Extract Zip Spec      14 (20) '2.0'\n+2B879 Extract OS            00 (0) 'MS-DOS'\n+2B87A General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2B41F Compression Method    0008 (8) 'Deflated'\n-2B421 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2B425 CRC                   95A69441 (2510722113)\n-2B429 Compressed Size       00000401 (1025)\n-2B42D Uncompressed Size     00000A31 (2609)\n-2B431 Filename Length       003D (61)\n-2B433 Extra Length          0000 (0)\n-2B435 Comment Length        0000 (0)\n-2B437 Disk Start            0000 (0)\n-2B439 Int File Attributes   0000 (0)\n+2B87C Compression Method    0008 (8) 'Deflated'\n+2B87E Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2B882 CRC                   66FAA47E (1727702142)\n+2B886 Compressed Size       00000411 (1041)\n+2B88A Uncompressed Size     00000A2E (2606)\n+2B88E Filename Length       003D (61)\n+2B890 Extra Length          0000 (0)\n+2B892 Comment Length        0000 (0)\n+2B894 Disk Start            0000 (0)\n+2B896 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2B43B Ext File Attributes   81A40000 (2175008768)\n+2B898 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2B43F Local Header Offset   0001319B (78235)\n-2B443 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2B89C Local Header Offset   00013378 (78712)\n+2B8A0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2B443: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2B8A0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2B480 CENTRAL HEADER #103   02014B50 (33639248)\n-2B484 Created Zip Spec      14 (20) '2.0'\n-2B485 Created OS            03 (3) 'Unix'\n-2B486 Extract Zip Spec      14 (20) '2.0'\n-2B487 Extract OS            00 (0) 'MS-DOS'\n-2B488 General Purpose Flag  0800 (2048)\n+2B8DD CENTRAL HEADER #103   02014B50 (33639248)\n+2B8E1 Created Zip Spec      14 (20) '2.0'\n+2B8E2 Created OS            03 (3) 'Unix'\n+2B8E3 Extract Zip Spec      14 (20) '2.0'\n+2B8E4 Extract OS            00 (0) 'MS-DOS'\n+2B8E5 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2B48A Compression Method    0008 (8) 'Deflated'\n-2B48C Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2B490 CRC                   FA045593 (4194588051)\n-2B494 Compressed Size       00000347 (839)\n-2B498 Uncompressed Size     00000822 (2082)\n-2B49C Filename Length       005B (91)\n-2B49E Extra Length          0000 (0)\n-2B4A0 Comment Length        0000 (0)\n-2B4A2 Disk Start            0000 (0)\n-2B4A4 Int File Attributes   0000 (0)\n+2B8E7 Compression Method    0008 (8) 'Deflated'\n+2B8E9 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2B8ED CRC                   1836791F (406223135)\n+2B8F1 Compressed Size       0000034A (842)\n+2B8F5 Uncompressed Size     00000822 (2082)\n+2B8F9 Filename Length       005B (91)\n+2B8FB Extra Length          0000 (0)\n+2B8FD Comment Length        0000 (0)\n+2B8FF Disk Start            0000 (0)\n+2B901 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2B4A6 Ext File Attributes   81A40000 (2175008768)\n+2B903 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2B4AA Local Header Offset   000135F7 (79351)\n-2B4AE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2B907 Local Header Offset   000137E4 (79844)\n+2B90B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2B4AE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2B90B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2B509 CENTRAL HEADER #104   02014B50 (33639248)\n-2B50D Created Zip Spec      14 (20) '2.0'\n-2B50E Created OS            03 (3) 'Unix'\n-2B50F Extract Zip Spec      14 (20) '2.0'\n-2B510 Extract OS            00 (0) 'MS-DOS'\n-2B511 General Purpose Flag  0800 (2048)\n+2B966 CENTRAL HEADER #104   02014B50 (33639248)\n+2B96A Created Zip Spec      14 (20) '2.0'\n+2B96B Created OS            03 (3) 'Unix'\n+2B96C Extract Zip Spec      14 (20) '2.0'\n+2B96D Extract OS            00 (0) 'MS-DOS'\n+2B96E General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2B513 Compression Method    0008 (8) 'Deflated'\n-2B515 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2B519 CRC                   F379F16D (4084855149)\n-2B51D Compressed Size       0000039D (925)\n-2B521 Uncompressed Size     000007C7 (1991)\n-2B525 Filename Length       0038 (56)\n-2B527 Extra Length          0000 (0)\n-2B529 Comment Length        0000 (0)\n-2B52B Disk Start            0000 (0)\n-2B52D Int File Attributes   0000 (0)\n+2B970 Compression Method    0008 (8) 'Deflated'\n+2B972 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2B976 CRC                   24E9C6CA (619300554)\n+2B97A Compressed Size       000003A1 (929)\n+2B97E Uncompressed Size     000007C7 (1991)\n+2B982 Filename Length       0038 (56)\n+2B984 Extra Length          0000 (0)\n+2B986 Comment Length        0000 (0)\n+2B988 Disk Start            0000 (0)\n+2B98A Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2B52F Ext File Attributes   81A40000 (2175008768)\n+2B98C Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2B533 Local Header Offset   000139B7 (80311)\n-2B537 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2B990 Local Header Offset   00013BA7 (80807)\n+2B994 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2B537: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2B994: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2B56F CENTRAL HEADER #105   02014B50 (33639248)\n-2B573 Created Zip Spec      14 (20) '2.0'\n-2B574 Created OS            03 (3) 'Unix'\n-2B575 Extract Zip Spec      14 (20) '2.0'\n-2B576 Extract OS            00 (0) 'MS-DOS'\n-2B577 General Purpose Flag  0800 (2048)\n+2B9CC CENTRAL HEADER #105   02014B50 (33639248)\n+2B9D0 Created Zip Spec      14 (20) '2.0'\n+2B9D1 Created OS            03 (3) 'Unix'\n+2B9D2 Extract Zip Spec      14 (20) '2.0'\n+2B9D3 Extract OS            00 (0) 'MS-DOS'\n+2B9D4 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2B579 Compression Method    0008 (8) 'Deflated'\n-2B57B Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2B57F CRC                   88ADB6B0 (2293085872)\n-2B583 Compressed Size       00000483 (1155)\n-2B587 Uncompressed Size     00000AE8 (2792)\n-2B58B Filename Length       0033 (51)\n-2B58D Extra Length          0000 (0)\n-2B58F Comment Length        0000 (0)\n-2B591 Disk Start            0000 (0)\n-2B593 Int File Attributes   0000 (0)\n+2B9D6 Compression Method    0008 (8) 'Deflated'\n+2B9D8 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2B9DC CRC                   528FA981 (1385146753)\n+2B9E0 Compressed Size       00000498 (1176)\n+2B9E4 Uncompressed Size     00000AE2 (2786)\n+2B9E8 Filename Length       0033 (51)\n+2B9EA Extra Length          0000 (0)\n+2B9EC Comment Length        0000 (0)\n+2B9EE Disk Start            0000 (0)\n+2B9F0 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2B595 Ext File Attributes   81A40000 (2175008768)\n+2B9F2 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2B599 Local Header Offset   00013DAA (81322)\n-2B59D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2B9F6 Local Header Offset   00013F9E (81822)\n+2B9FA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2B59D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2B9FA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2B5D0 CENTRAL HEADER #106   02014B50 (33639248)\n-2B5D4 Created Zip Spec      14 (20) '2.0'\n-2B5D5 Created OS            03 (3) 'Unix'\n-2B5D6 Extract Zip Spec      14 (20) '2.0'\n-2B5D7 Extract OS            00 (0) 'MS-DOS'\n-2B5D8 General Purpose Flag  0800 (2048)\n+2BA2D CENTRAL HEADER #106   02014B50 (33639248)\n+2BA31 Created Zip Spec      14 (20) '2.0'\n+2BA32 Created OS            03 (3) 'Unix'\n+2BA33 Extract Zip Spec      14 (20) '2.0'\n+2BA34 Extract OS            00 (0) 'MS-DOS'\n+2BA35 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2B5DA Compression Method    0008 (8) 'Deflated'\n-2B5DC Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2B5E0 CRC                   0EAC3ED9 (246169305)\n-2B5E4 Compressed Size       00000247 (583)\n-2B5E8 Uncompressed Size     00000540 (1344)\n-2B5EC Filename Length       0051 (81)\n-2B5EE Extra Length          0000 (0)\n-2B5F0 Comment Length        0000 (0)\n-2B5F2 Disk Start            0000 (0)\n-2B5F4 Int File Attributes   0000 (0)\n+2BA37 Compression Method    0008 (8) 'Deflated'\n+2BA39 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2BA3D CRC                   15D75F6D (366436205)\n+2BA41 Compressed Size       00000247 (583)\n+2BA45 Uncompressed Size     00000540 (1344)\n+2BA49 Filename Length       0051 (81)\n+2BA4B Extra Length          0000 (0)\n+2BA4D Comment Length        0000 (0)\n+2BA4F Disk Start            0000 (0)\n+2BA51 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2B5F6 Ext File Attributes   81A40000 (2175008768)\n+2BA53 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2B5FA Local Header Offset   0001427E (82558)\n-2B5FE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2BA57 Local Header Offset   00014487 (83079)\n+2BA5B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2B5FE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2BA5B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2B64F CENTRAL HEADER #107   02014B50 (33639248)\n-2B653 Created Zip Spec      14 (20) '2.0'\n-2B654 Created OS            03 (3) 'Unix'\n-2B655 Extract Zip Spec      14 (20) '2.0'\n-2B656 Extract OS            00 (0) 'MS-DOS'\n-2B657 General Purpose Flag  0800 (2048)\n+2BAAC CENTRAL HEADER #107   02014B50 (33639248)\n+2BAB0 Created Zip Spec      14 (20) '2.0'\n+2BAB1 Created OS            03 (3) 'Unix'\n+2BAB2 Extract Zip Spec      14 (20) '2.0'\n+2BAB3 Extract OS            00 (0) 'MS-DOS'\n+2BAB4 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2B659 Compression Method    0008 (8) 'Deflated'\n-2B65B Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2B65F CRC                   F917B64C (4179080780)\n-2B663 Compressed Size       000004F8 (1272)\n-2B667 Uncompressed Size     00000D32 (3378)\n-2B66B Filename Length       004B (75)\n-2B66D Extra Length          0000 (0)\n-2B66F Comment Length        0000 (0)\n-2B671 Disk Start            0000 (0)\n-2B673 Int File Attributes   0000 (0)\n+2BAB6 Compression Method    0008 (8) 'Deflated'\n+2BAB8 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2BABC CRC                   4661EC65 (1180822629)\n+2BAC0 Compressed Size       000004F8 (1272)\n+2BAC4 Uncompressed Size     00000D32 (3378)\n+2BAC8 Filename Length       004B (75)\n+2BACA Extra Length          0000 (0)\n+2BACC Comment Length        0000 (0)\n+2BACE Disk Start            0000 (0)\n+2BAD0 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2B675 Ext File Attributes   81A40000 (2175008768)\n+2BAD2 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2B679 Local Header Offset   00014534 (83252)\n-2B67D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2BAD6 Local Header Offset   0001473D (83773)\n+2BADA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2B67D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2BADA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2B6C8 CENTRAL HEADER #108   02014B50 (33639248)\n-2B6CC Created Zip Spec      14 (20) '2.0'\n-2B6CD Created OS            03 (3) 'Unix'\n-2B6CE Extract Zip Spec      14 (20) '2.0'\n-2B6CF Extract OS            00 (0) 'MS-DOS'\n-2B6D0 General Purpose Flag  0800 (2048)\n+2BB25 CENTRAL HEADER #108   02014B50 (33639248)\n+2BB29 Created Zip Spec      14 (20) '2.0'\n+2BB2A Created OS            03 (3) 'Unix'\n+2BB2B Extract Zip Spec      14 (20) '2.0'\n+2BB2C Extract OS            00 (0) 'MS-DOS'\n+2BB2D General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2B6D2 Compression Method    0008 (8) 'Deflated'\n-2B6D4 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2B6D8 CRC                   EA4A8A35 (3930753589)\n-2B6DC Compressed Size       00000605 (1541)\n-2B6E0 Uncompressed Size     00000F8E (3982)\n-2B6E4 Filename Length       0038 (56)\n-2B6E6 Extra Length          0000 (0)\n-2B6E8 Comment Length        0000 (0)\n-2B6EA Disk Start            0000 (0)\n-2B6EC Int File Attributes   0000 (0)\n+2BB2F Compression Method    0008 (8) 'Deflated'\n+2BB31 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2BB35 CRC                   A3928BCE (2744290254)\n+2BB39 Compressed Size       00000615 (1557)\n+2BB3D Uncompressed Size     00000F8E (3982)\n+2BB41 Filename Length       0038 (56)\n+2BB43 Extra Length          0000 (0)\n+2BB45 Comment Length        0000 (0)\n+2BB47 Disk Start            0000 (0)\n+2BB49 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2B6EE Ext File Attributes   81A40000 (2175008768)\n+2BB4B Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2B6F2 Local Header Offset   00014A95 (84629)\n-2B6F6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2BB4F Local Header Offset   00014C9E (85150)\n+2BB53 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2B6F6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2BB53: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2B72E CENTRAL HEADER #109   02014B50 (33639248)\n-2B732 Created Zip Spec      14 (20) '2.0'\n-2B733 Created OS            03 (3) 'Unix'\n-2B734 Extract Zip Spec      14 (20) '2.0'\n-2B735 Extract OS            00 (0) 'MS-DOS'\n-2B736 General Purpose Flag  0800 (2048)\n+2BB8B CENTRAL HEADER #109   02014B50 (33639248)\n+2BB8F Created Zip Spec      14 (20) '2.0'\n+2BB90 Created OS            03 (3) 'Unix'\n+2BB91 Extract Zip Spec      14 (20) '2.0'\n+2BB92 Extract OS            00 (0) 'MS-DOS'\n+2BB93 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2B738 Compression Method    0008 (8) 'Deflated'\n-2B73A Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2B73E CRC                   EBB29269 (3954348649)\n-2B742 Compressed Size       00000189 (393)\n-2B746 Uncompressed Size     00000356 (854)\n-2B74A Filename Length       0060 (96)\n-2B74C Extra Length          0000 (0)\n-2B74E Comment Length        0000 (0)\n-2B750 Disk Start            0000 (0)\n-2B752 Int File Attributes   0000 (0)\n+2BB95 Compression Method    0008 (8) 'Deflated'\n+2BB97 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2BB9B CRC                   6943170E (1766004494)\n+2BB9F Compressed Size       0000018F (399)\n+2BBA3 Uncompressed Size     00000356 (854)\n+2BBA7 Filename Length       0060 (96)\n+2BBA9 Extra Length          0000 (0)\n+2BBAB Comment Length        0000 (0)\n+2BBAD Disk Start            0000 (0)\n+2BBAF Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2B754 Ext File Attributes   81A40000 (2175008768)\n+2BBB1 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2B758 Local Header Offset   000150F0 (86256)\n-2B75C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2BBB5 Local Header Offset   00015309 (86793)\n+2BBB9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2B75C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2BBB9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2B7BC CENTRAL HEADER #110   02014B50 (33639248)\n-2B7C0 Created Zip Spec      14 (20) '2.0'\n-2B7C1 Created OS            03 (3) 'Unix'\n-2B7C2 Extract Zip Spec      14 (20) '2.0'\n-2B7C3 Extract OS            00 (0) 'MS-DOS'\n-2B7C4 General Purpose Flag  0800 (2048)\n+2BC19 CENTRAL HEADER #110   02014B50 (33639248)\n+2BC1D Created Zip Spec      14 (20) '2.0'\n+2BC1E Created OS            03 (3) 'Unix'\n+2BC1F Extract Zip Spec      14 (20) '2.0'\n+2BC20 Extract OS            00 (0) 'MS-DOS'\n+2BC21 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2B7C6 Compression Method    0008 (8) 'Deflated'\n-2B7C8 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2B7CC CRC                   350155F3 (889279987)\n-2B7D0 Compressed Size       00000319 (793)\n-2B7D4 Uncompressed Size     0000068B (1675)\n-2B7D8 Filename Length       003D (61)\n-2B7DA Extra Length          0000 (0)\n-2B7DC Comment Length        0000 (0)\n-2B7DE Disk Start            0000 (0)\n-2B7E0 Int File Attributes   0000 (0)\n+2BC23 Compression Method    0008 (8) 'Deflated'\n+2BC25 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2BC29 CRC                   B9E3821A (3118694938)\n+2BC2D Compressed Size       0000031F (799)\n+2BC31 Uncompressed Size     0000068B (1675)\n+2BC35 Filename Length       003D (61)\n+2BC37 Extra Length          0000 (0)\n+2BC39 Comment Length        0000 (0)\n+2BC3B Disk Start            0000 (0)\n+2BC3D Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2B7E2 Ext File Attributes   81A40000 (2175008768)\n+2BC3F Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2B7E6 Local Header Offset   000152F7 (86775)\n-2B7EA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2BC43 Local Header Offset   00015516 (87318)\n+2BC47 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2B7EA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2BC47: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2B827 CENTRAL HEADER #111   02014B50 (33639248)\n-2B82B Created Zip Spec      14 (20) '2.0'\n-2B82C Created OS            03 (3) 'Unix'\n-2B82D Extract Zip Spec      14 (20) '2.0'\n-2B82E Extract OS            00 (0) 'MS-DOS'\n-2B82F General Purpose Flag  0800 (2048)\n+2BC84 CENTRAL HEADER #111   02014B50 (33639248)\n+2BC88 Created Zip Spec      14 (20) '2.0'\n+2BC89 Created OS            03 (3) 'Unix'\n+2BC8A Extract Zip Spec      14 (20) '2.0'\n+2BC8B Extract OS            00 (0) 'MS-DOS'\n+2BC8C General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2B831 Compression Method    0008 (8) 'Deflated'\n-2B833 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2B837 CRC                   9418DDB4 (2484657588)\n-2B83B Compressed Size       000001C8 (456)\n-2B83F Uncompressed Size     00000411 (1041)\n-2B843 Filename Length       0040 (64)\n-2B845 Extra Length          0000 (0)\n-2B847 Comment Length        0000 (0)\n-2B849 Disk Start            0000 (0)\n-2B84B Int File Attributes   0000 (0)\n+2BC8E Compression Method    0008 (8) 'Deflated'\n+2BC90 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2BC94 CRC                   1D0FCAE9 (487574249)\n+2BC98 Compressed Size       000001D0 (464)\n+2BC9C Uncompressed Size     00000411 (1041)\n+2BCA0 Filename Length       0040 (64)\n+2BCA2 Extra Length          0000 (0)\n+2BCA4 Comment Length        0000 (0)\n+2BCA6 Disk Start            0000 (0)\n+2BCA8 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2B84D Ext File Attributes   81A40000 (2175008768)\n+2BCAA Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2B851 Local Header Offset   0001566B (87659)\n-2B855 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2BCAE Local Header Offset   00015890 (88208)\n+2BCB2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2B855: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2BCB2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2B895 CENTRAL HEADER #112   02014B50 (33639248)\n-2B899 Created Zip Spec      14 (20) '2.0'\n-2B89A Created OS            03 (3) 'Unix'\n-2B89B Extract Zip Spec      14 (20) '2.0'\n-2B89C Extract OS            00 (0) 'MS-DOS'\n-2B89D General Purpose Flag  0800 (2048)\n+2BCF2 CENTRAL HEADER #112   02014B50 (33639248)\n+2BCF6 Created Zip Spec      14 (20) '2.0'\n+2BCF7 Created OS            03 (3) 'Unix'\n+2BCF8 Extract Zip Spec      14 (20) '2.0'\n+2BCF9 Extract OS            00 (0) 'MS-DOS'\n+2BCFA General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2B89F Compression Method    0008 (8) 'Deflated'\n-2B8A1 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2B8A5 CRC                   CA7E6088 (3397279880)\n-2B8A9 Compressed Size       0000065C (1628)\n-2B8AD Uncompressed Size     000010DD (4317)\n-2B8B1 Filename Length       0030 (48)\n-2B8B3 Extra Length          0000 (0)\n-2B8B5 Comment Length        0000 (0)\n-2B8B7 Disk Start            0000 (0)\n-2B8B9 Int File Attributes   0000 (0)\n+2BCFC Compression Method    0008 (8) 'Deflated'\n+2BCFE Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2BD02 CRC                   B9B8CEE2 (3115896546)\n+2BD06 Compressed Size       00000674 (1652)\n+2BD0A Uncompressed Size     000010DD (4317)\n+2BD0E Filename Length       0030 (48)\n+2BD10 Extra Length          0000 (0)\n+2BD12 Comment Length        0000 (0)\n+2BD14 Disk Start            0000 (0)\n+2BD16 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2B8BB Ext File Attributes   81A40000 (2175008768)\n+2BD18 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2B8BF Local Header Offset   00015891 (88209)\n-2B8C3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2BD1C Local Header Offset   00015ABE (88766)\n+2BD20 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2B8C3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2BD20: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2B8F3 CENTRAL HEADER #113   02014B50 (33639248)\n-2B8F7 Created Zip Spec      14 (20) '2.0'\n-2B8F8 Created OS            03 (3) 'Unix'\n-2B8F9 Extract Zip Spec      14 (20) '2.0'\n-2B8FA Extract OS            00 (0) 'MS-DOS'\n-2B8FB General Purpose Flag  0800 (2048)\n+2BD50 CENTRAL HEADER #113   02014B50 (33639248)\n+2BD54 Created Zip Spec      14 (20) '2.0'\n+2BD55 Created OS            03 (3) 'Unix'\n+2BD56 Extract Zip Spec      14 (20) '2.0'\n+2BD57 Extract OS            00 (0) 'MS-DOS'\n+2BD58 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2B8FD Compression Method    0008 (8) 'Deflated'\n-2B8FF Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2B903 CRC                   452F6D91 (1160736145)\n-2B907 Compressed Size       00000AFF (2815)\n-2B90B Uncompressed Size     00001C1F (7199)\n-2B90F Filename Length       0034 (52)\n-2B911 Extra Length          0000 (0)\n-2B913 Comment Length        0000 (0)\n-2B915 Disk Start            0000 (0)\n-2B917 Int File Attributes   0000 (0)\n+2BD5A Compression Method    0008 (8) 'Deflated'\n+2BD5C Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2BD60 CRC                   629F1B01 (1654594305)\n+2BD64 Compressed Size       00000B1E (2846)\n+2BD68 Uncompressed Size     00001C1F (7199)\n+2BD6C Filename Length       0034 (52)\n+2BD6E Extra Length          0000 (0)\n+2BD70 Comment Length        0000 (0)\n+2BD72 Disk Start            0000 (0)\n+2BD74 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2B919 Ext File Attributes   81A40000 (2175008768)\n+2BD76 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2B91D Local Header Offset   00015F3B (89915)\n-2B921 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2BD7A Local Header Offset   00016180 (90496)\n+2BD7E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2B921: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2BD7E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2B955 CENTRAL HEADER #114   02014B50 (33639248)\n-2B959 Created Zip Spec      14 (20) '2.0'\n-2B95A Created OS            03 (3) 'Unix'\n-2B95B Extract Zip Spec      14 (20) '2.0'\n-2B95C Extract OS            00 (0) 'MS-DOS'\n-2B95D General Purpose Flag  0800 (2048)\n+2BDB2 CENTRAL HEADER #114   02014B50 (33639248)\n+2BDB6 Created Zip Spec      14 (20) '2.0'\n+2BDB7 Created OS            03 (3) 'Unix'\n+2BDB8 Extract Zip Spec      14 (20) '2.0'\n+2BDB9 Extract OS            00 (0) 'MS-DOS'\n+2BDBA General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2B95F Compression Method    0008 (8) 'Deflated'\n-2B961 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2B965 CRC                   596C85E3 (1500284387)\n-2B969 Compressed Size       000005DD (1501)\n-2B96D Uncompressed Size     00000E7F (3711)\n-2B971 Filename Length       002C (44)\n-2B973 Extra Length          0000 (0)\n-2B975 Comment Length        0000 (0)\n-2B977 Disk Start            0000 (0)\n-2B979 Int File Attributes   0000 (0)\n+2BDBC Compression Method    0008 (8) 'Deflated'\n+2BDBE Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2BDC2 CRC                   CE6B5057 (3463139415)\n+2BDC6 Compressed Size       000005E6 (1510)\n+2BDCA Uncompressed Size     00000E7F (3711)\n+2BDCE Filename Length       002C (44)\n+2BDD0 Extra Length          0000 (0)\n+2BDD2 Comment Length        0000 (0)\n+2BDD4 Disk Start            0000 (0)\n+2BDD6 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2B97B Ext File Attributes   81A40000 (2175008768)\n+2BDD8 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2B97F Local Header Offset   00016A8C (92812)\n-2B983 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2BDDC Local Header Offset   00016CF0 (93424)\n+2BDE0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2B983: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2BDE0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2B9AF CENTRAL HEADER #115   02014B50 (33639248)\n-2B9B3 Created Zip Spec      14 (20) '2.0'\n-2B9B4 Created OS            03 (3) 'Unix'\n-2B9B5 Extract Zip Spec      14 (20) '2.0'\n-2B9B6 Extract OS            00 (0) 'MS-DOS'\n-2B9B7 General Purpose Flag  0800 (2048)\n+2BE0C CENTRAL HEADER #115   02014B50 (33639248)\n+2BE10 Created Zip Spec      14 (20) '2.0'\n+2BE11 Created OS            03 (3) 'Unix'\n+2BE12 Extract Zip Spec      14 (20) '2.0'\n+2BE13 Extract OS            00 (0) 'MS-DOS'\n+2BE14 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2B9B9 Compression Method    0008 (8) 'Deflated'\n-2B9BB Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2B9BF CRC                   A057B335 (2690102069)\n-2B9C3 Compressed Size       0000019B (411)\n-2B9C7 Uncompressed Size     0000031C (796)\n-2B9CB Filename Length       005C (92)\n-2B9CD Extra Length          0000 (0)\n-2B9CF Comment Length        0000 (0)\n-2B9D1 Disk Start            0000 (0)\n-2B9D3 Int File Attributes   0000 (0)\n+2BE16 Compression Method    0008 (8) 'Deflated'\n+2BE18 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2BE1C CRC                   C2DA5AAE (3269089966)\n+2BE20 Compressed Size       0000019E (414)\n+2BE24 Uncompressed Size     0000031C (796)\n+2BE28 Filename Length       005C (92)\n+2BE2A Extra Length          0000 (0)\n+2BE2C Comment Length        0000 (0)\n+2BE2E Disk Start            0000 (0)\n+2BE30 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2B9D5 Ext File Attributes   81A40000 (2175008768)\n+2BE32 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2B9D9 Local Header Offset   000170B3 (94387)\n-2B9DD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2BE36 Local Header Offset   00017320 (95008)\n+2BE3A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2B9DD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2BE3A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2BA39 CENTRAL HEADER #116   02014B50 (33639248)\n-2BA3D Created Zip Spec      14 (20) '2.0'\n-2BA3E Created OS            03 (3) 'Unix'\n-2BA3F Extract Zip Spec      14 (20) '2.0'\n-2BA40 Extract OS            00 (0) 'MS-DOS'\n-2BA41 General Purpose Flag  0800 (2048)\n+2BE96 CENTRAL HEADER #116   02014B50 (33639248)\n+2BE9A Created Zip Spec      14 (20) '2.0'\n+2BE9B Created OS            03 (3) 'Unix'\n+2BE9C Extract Zip Spec      14 (20) '2.0'\n+2BE9D Extract OS            00 (0) 'MS-DOS'\n+2BE9E General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2BA43 Compression Method    0008 (8) 'Deflated'\n-2BA45 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2BA49 CRC                   6321A4B6 (1663149238)\n-2BA4D Compressed Size       00000194 (404)\n-2BA51 Uncompressed Size     0000030E (782)\n-2BA55 Filename Length       0058 (88)\n-2BA57 Extra Length          0000 (0)\n-2BA59 Comment Length        0000 (0)\n-2BA5B Disk Start            0000 (0)\n-2BA5D Int File Attributes   0000 (0)\n+2BEA0 Compression Method    0008 (8) 'Deflated'\n+2BEA2 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2BEA6 CRC                   F511A1A1 (4111573409)\n+2BEAA Compressed Size       00000198 (408)\n+2BEAE Uncompressed Size     0000030E (782)\n+2BEB2 Filename Length       0058 (88)\n+2BEB4 Extra Length          0000 (0)\n+2BEB6 Comment Length        0000 (0)\n+2BEB8 Disk Start            0000 (0)\n+2BEBA Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2BA5F Ext File Attributes   81A40000 (2175008768)\n+2BEBC Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2BA63 Local Header Offset   000172C8 (94920)\n-2BA67 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2BEC0 Local Header Offset   00017538 (95544)\n+2BEC4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2BA67: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2BEC4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2BABF CENTRAL HEADER #117   02014B50 (33639248)\n-2BAC3 Created Zip Spec      14 (20) '2.0'\n-2BAC4 Created OS            03 (3) 'Unix'\n-2BAC5 Extract Zip Spec      14 (20) '2.0'\n-2BAC6 Extract OS            00 (0) 'MS-DOS'\n-2BAC7 General Purpose Flag  0800 (2048)\n+2BF1C CENTRAL HEADER #117   02014B50 (33639248)\n+2BF20 Created Zip Spec      14 (20) '2.0'\n+2BF21 Created OS            03 (3) 'Unix'\n+2BF22 Extract Zip Spec      14 (20) '2.0'\n+2BF23 Extract OS            00 (0) 'MS-DOS'\n+2BF24 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2BAC9 Compression Method    0008 (8) 'Deflated'\n-2BACB Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2BACF CRC                   61507D51 (1632664913)\n-2BAD3 Compressed Size       00000558 (1368)\n-2BAD7 Uncompressed Size     00000E4B (3659)\n-2BADB Filename Length       004F (79)\n-2BADD Extra Length          0000 (0)\n-2BADF Comment Length        0000 (0)\n-2BAE1 Disk Start            0000 (0)\n-2BAE3 Int File Attributes   0000 (0)\n+2BF26 Compression Method    0008 (8) 'Deflated'\n+2BF28 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2BF2C CRC                   5CF570C5 (1559589061)\n+2BF30 Compressed Size       0000056B (1387)\n+2BF34 Uncompressed Size     00000E4B (3659)\n+2BF38 Filename Length       004F (79)\n+2BF3A Extra Length          0000 (0)\n+2BF3C Comment Length        0000 (0)\n+2BF3E Disk Start            0000 (0)\n+2BF40 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2BAE5 Ext File Attributes   81A40000 (2175008768)\n+2BF42 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2BAE9 Local Header Offset   000174D2 (95442)\n-2BAED Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2BF46 Local Header Offset   00017746 (96070)\n+2BF4A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2BAED: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2BF4A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2BB3C CENTRAL HEADER #118   02014B50 (33639248)\n-2BB40 Created Zip Spec      14 (20) '2.0'\n-2BB41 Created OS            03 (3) 'Unix'\n-2BB42 Extract Zip Spec      14 (20) '2.0'\n-2BB43 Extract OS            00 (0) 'MS-DOS'\n-2BB44 General Purpose Flag  0800 (2048)\n+2BF99 CENTRAL HEADER #118   02014B50 (33639248)\n+2BF9D Created Zip Spec      14 (20) '2.0'\n+2BF9E Created OS            03 (3) 'Unix'\n+2BF9F Extract Zip Spec      14 (20) '2.0'\n+2BFA0 Extract OS            00 (0) 'MS-DOS'\n+2BFA1 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2BB46 Compression Method    0008 (8) 'Deflated'\n-2BB48 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2BB4C CRC                   5344292B (1396975915)\n-2BB50 Compressed Size       000001B7 (439)\n-2BB54 Uncompressed Size     000003A3 (931)\n-2BB58 Filename Length       0053 (83)\n-2BB5A Extra Length          0000 (0)\n-2BB5C Comment Length        0000 (0)\n-2BB5E Disk Start            0000 (0)\n-2BB60 Int File Attributes   0000 (0)\n+2BFA3 Compression Method    0008 (8) 'Deflated'\n+2BFA5 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2BFA9 CRC                   4D0E0F19 (1292767001)\n+2BFAD Compressed Size       000001B9 (441)\n+2BFB1 Uncompressed Size     000003A3 (931)\n+2BFB5 Filename Length       0053 (83)\n+2BFB7 Extra Length          0000 (0)\n+2BFB9 Comment Length        0000 (0)\n+2BFBB Disk Start            0000 (0)\n+2BFBD Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2BB62 Ext File Attributes   81A40000 (2175008768)\n+2BFBF Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2BB66 Local Header Offset   00017A97 (96919)\n-2BB6A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2BFC3 Local Header Offset   00017D1E (97566)\n+2BFC7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2BB6A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2BFC7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2BBBD CENTRAL HEADER #119   02014B50 (33639248)\n-2BBC1 Created Zip Spec      14 (20) '2.0'\n-2BBC2 Created OS            03 (3) 'Unix'\n-2BBC3 Extract Zip Spec      14 (20) '2.0'\n-2BBC4 Extract OS            00 (0) 'MS-DOS'\n-2BBC5 General Purpose Flag  0800 (2048)\n+2C01A CENTRAL HEADER #119   02014B50 (33639248)\n+2C01E Created Zip Spec      14 (20) '2.0'\n+2C01F Created OS            03 (3) 'Unix'\n+2C020 Extract Zip Spec      14 (20) '2.0'\n+2C021 Extract OS            00 (0) 'MS-DOS'\n+2C022 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2BBC7 Compression Method    0008 (8) 'Deflated'\n-2BBC9 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2BBCD CRC                   D63BC3A1 (3594240929)\n-2BBD1 Compressed Size       0000027C (636)\n-2BBD5 Uncompressed Size     00000641 (1601)\n-2BBD9 Filename Length       0059 (89)\n-2BBDB Extra Length          0000 (0)\n-2BBDD Comment Length        0000 (0)\n-2BBDF Disk Start            0000 (0)\n-2BBE1 Int File Attributes   0000 (0)\n+2C024 Compression Method    0008 (8) 'Deflated'\n+2C026 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2C02A CRC                   C8A5CF53 (3366309715)\n+2C02E Compressed Size       0000027E (638)\n+2C032 Uncompressed Size     00000641 (1601)\n+2C036 Filename Length       0059 (89)\n+2C038 Extra Length          0000 (0)\n+2C03A Comment Length        0000 (0)\n+2C03C Disk Start            0000 (0)\n+2C03E Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2BBE3 Ext File Attributes   81A40000 (2175008768)\n+2C040 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2BBE7 Local Header Offset   00017CBF (97471)\n-2BBEB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2C044 Local Header Offset   00017F48 (98120)\n+2C048 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2BBEB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2C048: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2BC44 CENTRAL HEADER #120   02014B50 (33639248)\n-2BC48 Created Zip Spec      14 (20) '2.0'\n-2BC49 Created OS            03 (3) 'Unix'\n-2BC4A Extract Zip Spec      14 (20) '2.0'\n-2BC4B Extract OS            00 (0) 'MS-DOS'\n-2BC4C General Purpose Flag  0800 (2048)\n+2C0A1 CENTRAL HEADER #120   02014B50 (33639248)\n+2C0A5 Created Zip Spec      14 (20) '2.0'\n+2C0A6 Created OS            03 (3) 'Unix'\n+2C0A7 Extract Zip Spec      14 (20) '2.0'\n+2C0A8 Extract OS            00 (0) 'MS-DOS'\n+2C0A9 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2BC4E Compression Method    0008 (8) 'Deflated'\n-2BC50 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2BC54 CRC                   8B797A98 (2339994264)\n-2BC58 Compressed Size       0000028E (654)\n-2BC5C Uncompressed Size     00000724 (1828)\n-2BC60 Filename Length       0059 (89)\n-2BC62 Extra Length          0000 (0)\n-2BC64 Comment Length        0000 (0)\n-2BC66 Disk Start            0000 (0)\n-2BC68 Int File Attributes   0000 (0)\n+2C0AB Compression Method    0008 (8) 'Deflated'\n+2C0AD Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2C0B1 CRC                   AFFC006A (2952527978)\n+2C0B5 Compressed Size       00000291 (657)\n+2C0B9 Uncompressed Size     00000724 (1828)\n+2C0BD Filename Length       0059 (89)\n+2C0BF Extra Length          0000 (0)\n+2C0C1 Comment Length        0000 (0)\n+2C0C3 Disk Start            0000 (0)\n+2C0C5 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2BC6A Ext File Attributes   81A40000 (2175008768)\n+2C0C7 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2BC6E Local Header Offset   00017FB2 (98226)\n-2BC72 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2C0CB Local Header Offset   0001823D (98877)\n+2C0CF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2BC72: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2C0CF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2BCCB CENTRAL HEADER #121   02014B50 (33639248)\n-2BCCF Created Zip Spec      14 (20) '2.0'\n-2BCD0 Created OS            03 (3) 'Unix'\n-2BCD1 Extract Zip Spec      14 (20) '2.0'\n-2BCD2 Extract OS            00 (0) 'MS-DOS'\n-2BCD3 General Purpose Flag  0800 (2048)\n+2C128 CENTRAL HEADER #121   02014B50 (33639248)\n+2C12C Created Zip Spec      14 (20) '2.0'\n+2C12D Created OS            03 (3) 'Unix'\n+2C12E Extract Zip Spec      14 (20) '2.0'\n+2C12F Extract OS            00 (0) 'MS-DOS'\n+2C130 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2BCD5 Compression Method    0008 (8) 'Deflated'\n-2BCD7 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2BCDB CRC                   CD48F380 (3444110208)\n-2BCDF Compressed Size       00000517 (1303)\n-2BCE3 Uncompressed Size     00000E9A (3738)\n-2BCE7 Filename Length       004A (74)\n-2BCE9 Extra Length          0000 (0)\n-2BCEB Comment Length        0000 (0)\n-2BCED Disk Start            0000 (0)\n-2BCEF Int File Attributes   0000 (0)\n+2C132 Compression Method    0008 (8) 'Deflated'\n+2C134 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2C138 CRC                   D2854DE7 (3531951591)\n+2C13C Compressed Size       00000524 (1316)\n+2C140 Uncompressed Size     00000E9A (3738)\n+2C144 Filename Length       004A (74)\n+2C146 Extra Length          0000 (0)\n+2C148 Comment Length        0000 (0)\n+2C14A Disk Start            0000 (0)\n+2C14C Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2BCF1 Ext File Attributes   81A40000 (2175008768)\n+2C14E Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2BCF5 Local Header Offset   000182B7 (98999)\n-2BCF9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2C152 Local Header Offset   00018545 (99653)\n+2C156 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2BCF9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2C156: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2BD43 CENTRAL HEADER #122   02014B50 (33639248)\n-2BD47 Created Zip Spec      14 (20) '2.0'\n-2BD48 Created OS            03 (3) 'Unix'\n-2BD49 Extract Zip Spec      14 (20) '2.0'\n-2BD4A Extract OS            00 (0) 'MS-DOS'\n-2BD4B General Purpose Flag  0800 (2048)\n+2C1A0 CENTRAL HEADER #122   02014B50 (33639248)\n+2C1A4 Created Zip Spec      14 (20) '2.0'\n+2C1A5 Created OS            03 (3) 'Unix'\n+2C1A6 Extract Zip Spec      14 (20) '2.0'\n+2C1A7 Extract OS            00 (0) 'MS-DOS'\n+2C1A8 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2BD4D Compression Method    0008 (8) 'Deflated'\n-2BD4F Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2BD53 CRC                   D7917B4D (3616635725)\n-2BD57 Compressed Size       00000192 (402)\n-2BD5B Uncompressed Size     00000378 (888)\n-2BD5F Filename Length       0048 (72)\n-2BD61 Extra Length          0000 (0)\n-2BD63 Comment Length        0000 (0)\n-2BD65 Disk Start            0000 (0)\n-2BD67 Int File Attributes   0000 (0)\n+2C1AA Compression Method    0008 (8) 'Deflated'\n+2C1AC Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2C1B0 CRC                   E773172B (3883079467)\n+2C1B4 Compressed Size       00000198 (408)\n+2C1B8 Uncompressed Size     00000378 (888)\n+2C1BC Filename Length       0048 (72)\n+2C1BE Extra Length          0000 (0)\n+2C1C0 Comment Length        0000 (0)\n+2C1C2 Disk Start            0000 (0)\n+2C1C4 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2BD69 Ext File Attributes   81A40000 (2175008768)\n+2C1C6 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2BD6D Local Header Offset   00018836 (100406)\n-2BD71 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2C1CA Local Header Offset   00018AD1 (101073)\n+2C1CE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2BD71: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2C1CE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2BDB9 CENTRAL HEADER #123   02014B50 (33639248)\n-2BDBD Created Zip Spec      14 (20) '2.0'\n-2BDBE Created OS            03 (3) 'Unix'\n-2BDBF Extract Zip Spec      14 (20) '2.0'\n-2BDC0 Extract OS            00 (0) 'MS-DOS'\n-2BDC1 General Purpose Flag  0800 (2048)\n+2C216 CENTRAL HEADER #123   02014B50 (33639248)\n+2C21A Created Zip Spec      14 (20) '2.0'\n+2C21B Created OS            03 (3) 'Unix'\n+2C21C Extract Zip Spec      14 (20) '2.0'\n+2C21D Extract OS            00 (0) 'MS-DOS'\n+2C21E General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2BDC3 Compression Method    0008 (8) 'Deflated'\n-2BDC5 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2BDC9 CRC                   600A507A (1611288698)\n-2BDCD Compressed Size       00000266 (614)\n-2BDD1 Uncompressed Size     0000052C (1324)\n-2BDD5 Filename Length       0036 (54)\n-2BDD7 Extra Length          0000 (0)\n-2BDD9 Comment Length        0000 (0)\n-2BDDB Disk Start            0000 (0)\n-2BDDD Int File Attributes   0000 (0)\n+2C220 Compression Method    0008 (8) 'Deflated'\n+2C222 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2C226 CRC                   C301E408 (3271681032)\n+2C22A Compressed Size       00000262 (610)\n+2C22E Uncompressed Size     0000052C (1324)\n+2C232 Filename Length       0036 (54)\n+2C234 Extra Length          0000 (0)\n+2C236 Comment Length        0000 (0)\n+2C238 Disk Start            0000 (0)\n+2C23A Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2BDDF Ext File Attributes   81A40000 (2175008768)\n+2C23C Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2BDE3 Local Header Offset   00018A2E (100910)\n-2BDE7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2C240 Local Header Offset   00018CCF (101583)\n+2C244 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2BDE7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2C244: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2BE1D CENTRAL HEADER #124   02014B50 (33639248)\n-2BE21 Created Zip Spec      14 (20) '2.0'\n-2BE22 Created OS            03 (3) 'Unix'\n-2BE23 Extract Zip Spec      14 (20) '2.0'\n-2BE24 Extract OS            00 (0) 'MS-DOS'\n-2BE25 General Purpose Flag  0800 (2048)\n+2C27A CENTRAL HEADER #124   02014B50 (33639248)\n+2C27E Created Zip Spec      14 (20) '2.0'\n+2C27F Created OS            03 (3) 'Unix'\n+2C280 Extract Zip Spec      14 (20) '2.0'\n+2C281 Extract OS            00 (0) 'MS-DOS'\n+2C282 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2BE27 Compression Method    0008 (8) 'Deflated'\n-2BE29 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2BE2D CRC                   C5569DA0 (3310788000)\n-2BE31 Compressed Size       00000260 (608)\n-2BE35 Uncompressed Size     000005F9 (1529)\n-2BE39 Filename Length       004E (78)\n-2BE3B Extra Length          0000 (0)\n-2BE3D Comment Length        0000 (0)\n-2BE3F Disk Start            0000 (0)\n-2BE41 Int File Attributes   0000 (0)\n+2C284 Compression Method    0008 (8) 'Deflated'\n+2C286 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2C28A CRC                   9791011C (2542862620)\n+2C28E Compressed Size       0000026B (619)\n+2C292 Uncompressed Size     000005F9 (1529)\n+2C296 Filename Length       004E (78)\n+2C298 Extra Length          0000 (0)\n+2C29A Comment Length        0000 (0)\n+2C29C Disk Start            0000 (0)\n+2C29E Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2BE43 Ext File Attributes   81A40000 (2175008768)\n+2C2A0 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2BE47 Local Header Offset   00018CE8 (101608)\n-2BE4B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2C2A4 Local Header Offset   00018F85 (102277)\n+2C2A8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2BE4B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2C2A8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2BE99 CENTRAL HEADER #125   02014B50 (33639248)\n-2BE9D Created Zip Spec      14 (20) '2.0'\n-2BE9E Created OS            03 (3) 'Unix'\n-2BE9F Extract Zip Spec      14 (20) '2.0'\n-2BEA0 Extract OS            00 (0) 'MS-DOS'\n-2BEA1 General Purpose Flag  0800 (2048)\n+2C2F6 CENTRAL HEADER #125   02014B50 (33639248)\n+2C2FA Created Zip Spec      14 (20) '2.0'\n+2C2FB Created OS            03 (3) 'Unix'\n+2C2FC Extract Zip Spec      14 (20) '2.0'\n+2C2FD Extract OS            00 (0) 'MS-DOS'\n+2C2FE General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2BEA3 Compression Method    0008 (8) 'Deflated'\n-2BEA5 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2BEA9 CRC                   E1939228 (3784544808)\n-2BEAD Compressed Size       000001FE (510)\n-2BEB1 Uncompressed Size     0000050F (1295)\n-2BEB5 Filename Length       005A (90)\n-2BEB7 Extra Length          0000 (0)\n-2BEB9 Comment Length        0000 (0)\n-2BEBB Disk Start            0000 (0)\n-2BEBD Int File Attributes   0000 (0)\n+2C300 Compression Method    0008 (8) 'Deflated'\n+2C302 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2C306 CRC                   9CD13806 (2630957062)\n+2C30A Compressed Size       000001FE (510)\n+2C30E Uncompressed Size     0000050F (1295)\n+2C312 Filename Length       005A (90)\n+2C314 Extra Length          0000 (0)\n+2C316 Comment Length        0000 (0)\n+2C318 Disk Start            0000 (0)\n+2C31A Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2BEBF Ext File Attributes   81A40000 (2175008768)\n+2C31C Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2BEC3 Local Header Offset   00018FB4 (102324)\n-2BEC7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2C320 Local Header Offset   0001925C (103004)\n+2C324 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2BEC7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2C324: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2BF21 CENTRAL HEADER #126   02014B50 (33639248)\n-2BF25 Created Zip Spec      14 (20) '2.0'\n-2BF26 Created OS            03 (3) 'Unix'\n-2BF27 Extract Zip Spec      14 (20) '2.0'\n-2BF28 Extract OS            00 (0) 'MS-DOS'\n-2BF29 General Purpose Flag  0800 (2048)\n+2C37E CENTRAL HEADER #126   02014B50 (33639248)\n+2C382 Created Zip Spec      14 (20) '2.0'\n+2C383 Created OS            03 (3) 'Unix'\n+2C384 Extract Zip Spec      14 (20) '2.0'\n+2C385 Extract OS            00 (0) 'MS-DOS'\n+2C386 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2BF2B Compression Method    0008 (8) 'Deflated'\n-2BF2D Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2BF31 CRC                   77632724 (2002986788)\n-2BF35 Compressed Size       000002DD (733)\n-2BF39 Uncompressed Size     00000705 (1797)\n-2BF3D Filename Length       003F (63)\n-2BF3F Extra Length          0000 (0)\n-2BF41 Comment Length        0000 (0)\n-2BF43 Disk Start            0000 (0)\n-2BF45 Int File Attributes   0000 (0)\n+2C388 Compression Method    0008 (8) 'Deflated'\n+2C38A Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2C38E CRC                   D5104923 (3574614307)\n+2C392 Compressed Size       000002DF (735)\n+2C396 Uncompressed Size     00000705 (1797)\n+2C39A Filename Length       003F (63)\n+2C39C Extra Length          0000 (0)\n+2C39E Comment Length        0000 (0)\n+2C3A0 Disk Start            0000 (0)\n+2C3A2 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2BF47 Ext File Attributes   81A40000 (2175008768)\n+2C3A4 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2BF4B Local Header Offset   0001922A (102954)\n-2BF4F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2C3A8 Local Header Offset   000194D2 (103634)\n+2C3AC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2BF4F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2C3AC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2BF8E CENTRAL HEADER #127   02014B50 (33639248)\n-2BF92 Created Zip Spec      14 (20) '2.0'\n-2BF93 Created OS            03 (3) 'Unix'\n-2BF94 Extract Zip Spec      14 (20) '2.0'\n-2BF95 Extract OS            00 (0) 'MS-DOS'\n-2BF96 General Purpose Flag  0800 (2048)\n+2C3EB CENTRAL HEADER #127   02014B50 (33639248)\n+2C3EF Created Zip Spec      14 (20) '2.0'\n+2C3F0 Created OS            03 (3) 'Unix'\n+2C3F1 Extract Zip Spec      14 (20) '2.0'\n+2C3F2 Extract OS            00 (0) 'MS-DOS'\n+2C3F3 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2BF98 Compression Method    0008 (8) 'Deflated'\n-2BF9A Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2BF9E CRC                   AC6ACD6D (2892680557)\n-2BFA2 Compressed Size       00000189 (393)\n-2BFA6 Uncompressed Size     00000352 (850)\n-2BFAA Filename Length       005F (95)\n-2BFAC Extra Length          0000 (0)\n-2BFAE Comment Length        0000 (0)\n-2BFB0 Disk Start            0000 (0)\n-2BFB2 Int File Attributes   0000 (0)\n+2C3F5 Compression Method    0008 (8) 'Deflated'\n+2C3F7 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2C3FB CRC                   D020F6E1 (3491821281)\n+2C3FF Compressed Size       0000018A (394)\n+2C403 Uncompressed Size     00000352 (850)\n+2C407 Filename Length       005F (95)\n+2C409 Extra Length          0000 (0)\n+2C40B Comment Length        0000 (0)\n+2C40D Disk Start            0000 (0)\n+2C40F Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2BFB4 Ext File Attributes   81A40000 (2175008768)\n+2C411 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2BFB8 Local Header Offset   00019564 (103780)\n-2BFBC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2C415 Local Header Offset   0001980E (104462)\n+2C419 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2BFBC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2C419: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2C01B CENTRAL HEADER #128   02014B50 (33639248)\n-2C01F Created Zip Spec      14 (20) '2.0'\n-2C020 Created OS            03 (3) 'Unix'\n-2C021 Extract Zip Spec      14 (20) '2.0'\n-2C022 Extract OS            00 (0) 'MS-DOS'\n-2C023 General Purpose Flag  0800 (2048)\n+2C478 CENTRAL HEADER #128   02014B50 (33639248)\n+2C47C Created Zip Spec      14 (20) '2.0'\n+2C47D Created OS            03 (3) 'Unix'\n+2C47E Extract Zip Spec      14 (20) '2.0'\n+2C47F Extract OS            00 (0) 'MS-DOS'\n+2C480 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2C025 Compression Method    0008 (8) 'Deflated'\n-2C027 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2C02B CRC                   D0202B76 (3491769206)\n-2C02F Compressed Size       000002A0 (672)\n-2C033 Uncompressed Size     000005A8 (1448)\n-2C037 Filename Length       003C (60)\n-2C039 Extra Length          0000 (0)\n-2C03B Comment Length        0000 (0)\n-2C03D Disk Start            0000 (0)\n-2C03F Int File Attributes   0000 (0)\n+2C482 Compression Method    0008 (8) 'Deflated'\n+2C484 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2C488 CRC                   622C2643 (1647060547)\n+2C48C Compressed Size       000002A3 (675)\n+2C490 Uncompressed Size     000005A8 (1448)\n+2C494 Filename Length       003C (60)\n+2C496 Extra Length          0000 (0)\n+2C498 Comment Length        0000 (0)\n+2C49A Disk Start            0000 (0)\n+2C49C Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2C041 Ext File Attributes   81A40000 (2175008768)\n+2C49E Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2C045 Local Header Offset   0001976A (104298)\n-2C049 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2C4A2 Local Header Offset   00019A15 (104981)\n+2C4A6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2C049: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2C4A6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2C085 CENTRAL HEADER #129   02014B50 (33639248)\n-2C089 Created Zip Spec      14 (20) '2.0'\n-2C08A Created OS            03 (3) 'Unix'\n-2C08B Extract Zip Spec      14 (20) '2.0'\n-2C08C Extract OS            00 (0) 'MS-DOS'\n-2C08D General Purpose Flag  0800 (2048)\n+2C4E2 CENTRAL HEADER #129   02014B50 (33639248)\n+2C4E6 Created Zip Spec      14 (20) '2.0'\n+2C4E7 Created OS            03 (3) 'Unix'\n+2C4E8 Extract Zip Spec      14 (20) '2.0'\n+2C4E9 Extract OS            00 (0) 'MS-DOS'\n+2C4EA General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2C08F Compression Method    0008 (8) 'Deflated'\n-2C091 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2C095 CRC                   A279CE5F (2725891679)\n-2C099 Compressed Size       0000025C (604)\n-2C09D Uncompressed Size     000006A4 (1700)\n-2C0A1 Filename Length       004E (78)\n-2C0A3 Extra Length          0000 (0)\n-2C0A5 Comment Length        0000 (0)\n-2C0A7 Disk Start            0000 (0)\n-2C0A9 Int File Attributes   0000 (0)\n+2C4EC Compression Method    0008 (8) 'Deflated'\n+2C4EE Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2C4F2 CRC                   050EDC10 (84859920)\n+2C4F6 Compressed Size       00000267 (615)\n+2C4FA Uncompressed Size     000006A4 (1700)\n+2C4FE Filename Length       004E (78)\n+2C500 Extra Length          0000 (0)\n+2C502 Comment Length        0000 (0)\n+2C504 Disk Start            0000 (0)\n+2C506 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2C0AB Ext File Attributes   81A40000 (2175008768)\n+2C508 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2C0AF Local Header Offset   00019A64 (105060)\n-2C0B3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2C50C Local Header Offset   00019D12 (105746)\n+2C510 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2C0B3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2C510: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2C101 CENTRAL HEADER #130   02014B50 (33639248)\n-2C105 Created Zip Spec      14 (20) '2.0'\n-2C106 Created OS            03 (3) 'Unix'\n-2C107 Extract Zip Spec      14 (20) '2.0'\n-2C108 Extract OS            00 (0) 'MS-DOS'\n-2C109 General Purpose Flag  0800 (2048)\n+2C55E CENTRAL HEADER #130   02014B50 (33639248)\n+2C562 Created Zip Spec      14 (20) '2.0'\n+2C563 Created OS            03 (3) 'Unix'\n+2C564 Extract Zip Spec      14 (20) '2.0'\n+2C565 Extract OS            00 (0) 'MS-DOS'\n+2C566 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2C10B Compression Method    0008 (8) 'Deflated'\n-2C10D Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2C111 CRC                   613E6E33 (1631481395)\n-2C115 Compressed Size       00000378 (888)\n-2C119 Uncompressed Size     000009FC (2556)\n-2C11D Filename Length       003A (58)\n-2C11F Extra Length          0000 (0)\n-2C121 Comment Length        0000 (0)\n-2C123 Disk Start            0000 (0)\n-2C125 Int File Attributes   0000 (0)\n+2C568 Compression Method    0008 (8) 'Deflated'\n+2C56A Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2C56E CRC                   ED6F5732 (3983497010)\n+2C572 Compressed Size       00000373 (883)\n+2C576 Uncompressed Size     000009FC (2556)\n+2C57A Filename Length       003A (58)\n+2C57C Extra Length          0000 (0)\n+2C57E Comment Length        0000 (0)\n+2C580 Disk Start            0000 (0)\n+2C582 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2C127 Ext File Attributes   81A40000 (2175008768)\n+2C584 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2C12B Local Header Offset   00019D2C (105772)\n-2C12F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2C588 Local Header Offset   00019FE5 (106469)\n+2C58C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2C12F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2C58C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2C169 CENTRAL HEADER #131   02014B50 (33639248)\n-2C16D Created Zip Spec      14 (20) '2.0'\n-2C16E Created OS            03 (3) 'Unix'\n-2C16F Extract Zip Spec      14 (20) '2.0'\n-2C170 Extract OS            00 (0) 'MS-DOS'\n-2C171 General Purpose Flag  0800 (2048)\n+2C5C6 CENTRAL HEADER #131   02014B50 (33639248)\n+2C5CA Created Zip Spec      14 (20) '2.0'\n+2C5CB Created OS            03 (3) 'Unix'\n+2C5CC Extract Zip Spec      14 (20) '2.0'\n+2C5CD Extract OS            00 (0) 'MS-DOS'\n+2C5CE General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2C173 Compression Method    0008 (8) 'Deflated'\n-2C175 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2C179 CRC                   D6376E48 (3593956936)\n-2C17D Compressed Size       000004BB (1211)\n-2C181 Uncompressed Size     00000A59 (2649)\n-2C185 Filename Length       0035 (53)\n-2C187 Extra Length          0000 (0)\n-2C189 Comment Length        0000 (0)\n-2C18B Disk Start            0000 (0)\n-2C18D Int File Attributes   0000 (0)\n+2C5D0 Compression Method    0008 (8) 'Deflated'\n+2C5D2 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2C5D6 CRC                   88B5410C (2293580044)\n+2C5DA Compressed Size       000004C3 (1219)\n+2C5DE Uncompressed Size     00000A59 (2649)\n+2C5E2 Filename Length       0035 (53)\n+2C5E4 Extra Length          0000 (0)\n+2C5E6 Comment Length        0000 (0)\n+2C5E8 Disk Start            0000 (0)\n+2C5EA Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2C18F Ext File Attributes   81A40000 (2175008768)\n+2C5EC Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2C193 Local Header Offset   0001A0FC (106748)\n-2C197 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2C5F0 Local Header Offset   0001A3B0 (107440)\n+2C5F4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2C197: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2C5F4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2C1CC CENTRAL HEADER #132   02014B50 (33639248)\n-2C1D0 Created Zip Spec      14 (20) '2.0'\n-2C1D1 Created OS            03 (3) 'Unix'\n-2C1D2 Extract Zip Spec      14 (20) '2.0'\n-2C1D3 Extract OS            00 (0) 'MS-DOS'\n-2C1D4 General Purpose Flag  0800 (2048)\n+2C629 CENTRAL HEADER #132   02014B50 (33639248)\n+2C62D Created Zip Spec      14 (20) '2.0'\n+2C62E Created OS            03 (3) 'Unix'\n+2C62F Extract Zip Spec      14 (20) '2.0'\n+2C630 Extract OS            00 (0) 'MS-DOS'\n+2C631 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2C1D6 Compression Method    0008 (8) 'Deflated'\n-2C1D8 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2C1DC CRC                   0F4D3699 (256718489)\n-2C1E0 Compressed Size       0000060E (1550)\n-2C1E4 Uncompressed Size     00001009 (4105)\n-2C1E8 Filename Length       002F (47)\n-2C1EA Extra Length          0000 (0)\n-2C1EC Comment Length        0000 (0)\n-2C1EE Disk Start            0000 (0)\n-2C1F0 Int File Attributes   0000 (0)\n+2C633 Compression Method    0008 (8) 'Deflated'\n+2C635 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2C639 CRC                   174CA276 (390898294)\n+2C63D Compressed Size       0000061B (1563)\n+2C641 Uncompressed Size     00001009 (4105)\n+2C645 Filename Length       002F (47)\n+2C647 Extra Length          0000 (0)\n+2C649 Comment Length        0000 (0)\n+2C64B Disk Start            0000 (0)\n+2C64D Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2C1F2 Ext File Attributes   81A40000 (2175008768)\n+2C64F Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2C1F6 Local Header Offset   0001A60A (108042)\n-2C1FA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2C653 Local Header Offset   0001A8C6 (108742)\n+2C657 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2C1FA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2C657: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2C229 CENTRAL HEADER #133   02014B50 (33639248)\n-2C22D Created Zip Spec      14 (20) '2.0'\n-2C22E Created OS            03 (3) 'Unix'\n-2C22F Extract Zip Spec      14 (20) '2.0'\n-2C230 Extract OS            00 (0) 'MS-DOS'\n-2C231 General Purpose Flag  0800 (2048)\n+2C686 CENTRAL HEADER #133   02014B50 (33639248)\n+2C68A Created Zip Spec      14 (20) '2.0'\n+2C68B Created OS            03 (3) 'Unix'\n+2C68C Extract Zip Spec      14 (20) '2.0'\n+2C68D Extract OS            00 (0) 'MS-DOS'\n+2C68E General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2C233 Compression Method    0008 (8) 'Deflated'\n-2C235 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2C239 CRC                   3F113771 (1058092913)\n-2C23D Compressed Size       000004EC (1260)\n-2C241 Uncompressed Size     00000C43 (3139)\n-2C245 Filename Length       0031 (49)\n-2C247 Extra Length          0000 (0)\n-2C249 Comment Length        0000 (0)\n-2C24B Disk Start            0000 (0)\n-2C24D Int File Attributes   0000 (0)\n+2C690 Compression Method    0008 (8) 'Deflated'\n+2C692 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2C696 CRC                   94B09EEF (2494602991)\n+2C69A Compressed Size       00000501 (1281)\n+2C69E Uncompressed Size     00000C43 (3139)\n+2C6A2 Filename Length       0031 (49)\n+2C6A4 Extra Length          0000 (0)\n+2C6A6 Comment Length        0000 (0)\n+2C6A8 Disk Start            0000 (0)\n+2C6AA Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2C24F Ext File Attributes   81A40000 (2175008768)\n+2C6AC Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2C253 Local Header Offset   0001AC65 (109669)\n-2C257 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2C6B0 Local Header Offset   0001AF2E (110382)\n+2C6B4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2C257: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2C6B4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2C288 CENTRAL HEADER #134   02014B50 (33639248)\n-2C28C Created Zip Spec      14 (20) '2.0'\n-2C28D Created OS            03 (3) 'Unix'\n-2C28E Extract Zip Spec      14 (20) '2.0'\n-2C28F Extract OS            00 (0) 'MS-DOS'\n-2C290 General Purpose Flag  0800 (2048)\n+2C6E5 CENTRAL HEADER #134   02014B50 (33639248)\n+2C6E9 Created Zip Spec      14 (20) '2.0'\n+2C6EA Created OS            03 (3) 'Unix'\n+2C6EB Extract Zip Spec      14 (20) '2.0'\n+2C6EC Extract OS            00 (0) 'MS-DOS'\n+2C6ED General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2C292 Compression Method    0008 (8) 'Deflated'\n-2C294 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2C298 CRC                   2E68E6C9 (778626761)\n-2C29C Compressed Size       0000023B (571)\n-2C2A0 Uncompressed Size     00000533 (1331)\n-2C2A4 Filename Length       0045 (69)\n-2C2A6 Extra Length          0000 (0)\n-2C2A8 Comment Length        0000 (0)\n-2C2AA Disk Start            0000 (0)\n-2C2AC Int File Attributes   0000 (0)\n+2C6EF Compression Method    0008 (8) 'Deflated'\n+2C6F1 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2C6F5 CRC                   6122871F (1629652767)\n+2C6F9 Compressed Size       00000238 (568)\n+2C6FD Uncompressed Size     00000533 (1331)\n+2C701 Filename Length       0045 (69)\n+2C703 Extra Length          0000 (0)\n+2C705 Comment Length        0000 (0)\n+2C707 Disk Start            0000 (0)\n+2C709 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2C2AE Ext File Attributes   81A40000 (2175008768)\n+2C70B Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2C2B2 Local Header Offset   0001B1A0 (111008)\n-2C2B6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2C70F Local Header Offset   0001B47E (111742)\n+2C713 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2C2B6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2C713: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2C2FB CENTRAL HEADER #135   02014B50 (33639248)\n-2C2FF Created Zip Spec      14 (20) '2.0'\n-2C300 Created OS            03 (3) 'Unix'\n-2C301 Extract Zip Spec      14 (20) '2.0'\n-2C302 Extract OS            00 (0) 'MS-DOS'\n-2C303 General Purpose Flag  0800 (2048)\n+2C758 CENTRAL HEADER #135   02014B50 (33639248)\n+2C75C Created Zip Spec      14 (20) '2.0'\n+2C75D Created OS            03 (3) 'Unix'\n+2C75E Extract Zip Spec      14 (20) '2.0'\n+2C75F Extract OS            00 (0) 'MS-DOS'\n+2C760 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2C305 Compression Method    0008 (8) 'Deflated'\n-2C307 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2C30B CRC                   9F0AD1AC (2668286380)\n-2C30F Compressed Size       00000332 (818)\n-2C313 Uncompressed Size     000007CA (1994)\n-2C317 Filename Length       0034 (52)\n-2C319 Extra Length          0000 (0)\n-2C31B Comment Length        0000 (0)\n-2C31D Disk Start            0000 (0)\n-2C31F Int File Attributes   0000 (0)\n+2C762 Compression Method    0008 (8) 'Deflated'\n+2C764 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2C768 CRC                   282A38DD (673855709)\n+2C76C Compressed Size       00000340 (832)\n+2C770 Uncompressed Size     000007CA (1994)\n+2C774 Filename Length       0034 (52)\n+2C776 Extra Length          0000 (0)\n+2C778 Comment Length        0000 (0)\n+2C77A Disk Start            0000 (0)\n+2C77C Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2C321 Ext File Attributes   81A40000 (2175008768)\n+2C77E Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2C325 Local Header Offset   0001B43E (111678)\n-2C329 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2C782 Local Header Offset   0001B719 (112409)\n+2C786 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2C329: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2C786: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2C35D CENTRAL HEADER #136   02014B50 (33639248)\n-2C361 Created Zip Spec      14 (20) '2.0'\n-2C362 Created OS            03 (3) 'Unix'\n-2C363 Extract Zip Spec      14 (20) '2.0'\n-2C364 Extract OS            00 (0) 'MS-DOS'\n-2C365 General Purpose Flag  0800 (2048)\n+2C7BA CENTRAL HEADER #136   02014B50 (33639248)\n+2C7BE Created Zip Spec      14 (20) '2.0'\n+2C7BF Created OS            03 (3) 'Unix'\n+2C7C0 Extract Zip Spec      14 (20) '2.0'\n+2C7C1 Extract OS            00 (0) 'MS-DOS'\n+2C7C2 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2C367 Compression Method    0008 (8) 'Deflated'\n-2C369 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2C36D CRC                   48D2ABAE (1221766062)\n-2C371 Compressed Size       00000357 (855)\n-2C375 Uncompressed Size     000008AA (2218)\n-2C379 Filename Length       004D (77)\n-2C37B Extra Length          0000 (0)\n-2C37D Comment Length        0000 (0)\n-2C37F Disk Start            0000 (0)\n-2C381 Int File Attributes   0000 (0)\n+2C7C4 Compression Method    0008 (8) 'Deflated'\n+2C7C6 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2C7CA CRC                   FF2E8B5A (4281240410)\n+2C7CE Compressed Size       00000357 (855)\n+2C7D2 Uncompressed Size     000008AA (2218)\n+2C7D6 Filename Length       004D (77)\n+2C7D8 Extra Length          0000 (0)\n+2C7DA Comment Length        0000 (0)\n+2C7DC Disk Start            0000 (0)\n+2C7DE Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2C383 Ext File Attributes   81A40000 (2175008768)\n+2C7E0 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2C387 Local Header Offset   0001B7C2 (112578)\n-2C38B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2C7E4 Local Header Offset   0001BAAB (113323)\n+2C7E8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2C38B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2C7E8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2C3D8 CENTRAL HEADER #137   02014B50 (33639248)\n-2C3DC Created Zip Spec      14 (20) '2.0'\n-2C3DD Created OS            03 (3) 'Unix'\n-2C3DE Extract Zip Spec      14 (20) '2.0'\n-2C3DF Extract OS            00 (0) 'MS-DOS'\n-2C3E0 General Purpose Flag  0800 (2048)\n+2C835 CENTRAL HEADER #137   02014B50 (33639248)\n+2C839 Created Zip Spec      14 (20) '2.0'\n+2C83A Created OS            03 (3) 'Unix'\n+2C83B Extract Zip Spec      14 (20) '2.0'\n+2C83C Extract OS            00 (0) 'MS-DOS'\n+2C83D General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2C3E2 Compression Method    0008 (8) 'Deflated'\n-2C3E4 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2C3E8 CRC                   9191EC6F (2442259567)\n-2C3EC Compressed Size       0000041C (1052)\n-2C3F0 Uncompressed Size     00000AD0 (2768)\n-2C3F4 Filename Length       004B (75)\n-2C3F6 Extra Length          0000 (0)\n-2C3F8 Comment Length        0000 (0)\n-2C3FA Disk Start            0000 (0)\n-2C3FC Int File Attributes   0000 (0)\n+2C83F Compression Method    0008 (8) 'Deflated'\n+2C841 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2C845 CRC                   F19E88D6 (4053698774)\n+2C849 Compressed Size       00000425 (1061)\n+2C84D Uncompressed Size     00000AD0 (2768)\n+2C851 Filename Length       004B (75)\n+2C853 Extra Length          0000 (0)\n+2C855 Comment Length        0000 (0)\n+2C857 Disk Start            0000 (0)\n+2C859 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2C3FE Ext File Attributes   81A40000 (2175008768)\n+2C85B Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2C402 Local Header Offset   0001BB84 (113540)\n-2C406 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2C85F Local Header Offset   0001BE6D (114285)\n+2C863 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2C406: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2C863: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2C451 CENTRAL HEADER #138   02014B50 (33639248)\n-2C455 Created Zip Spec      14 (20) '2.0'\n-2C456 Created OS            03 (3) 'Unix'\n-2C457 Extract Zip Spec      14 (20) '2.0'\n-2C458 Extract OS            00 (0) 'MS-DOS'\n-2C459 General Purpose Flag  0800 (2048)\n+2C8AE CENTRAL HEADER #138   02014B50 (33639248)\n+2C8B2 Created Zip Spec      14 (20) '2.0'\n+2C8B3 Created OS            03 (3) 'Unix'\n+2C8B4 Extract Zip Spec      14 (20) '2.0'\n+2C8B5 Extract OS            00 (0) 'MS-DOS'\n+2C8B6 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2C45B Compression Method    0008 (8) 'Deflated'\n-2C45D Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2C461 CRC                   8B599C06 (2337905670)\n-2C465 Compressed Size       000001F7 (503)\n-2C469 Uncompressed Size     0000048C (1164)\n-2C46D Filename Length       004C (76)\n-2C46F Extra Length          0000 (0)\n-2C471 Comment Length        0000 (0)\n-2C473 Disk Start            0000 (0)\n-2C475 Int File Attributes   0000 (0)\n+2C8B8 Compression Method    0008 (8) 'Deflated'\n+2C8BA Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2C8BE CRC                   194A0EFC (424283900)\n+2C8C2 Compressed Size       000001FA (506)\n+2C8C6 Uncompressed Size     0000048C (1164)\n+2C8CA Filename Length       004C (76)\n+2C8CC Extra Length          0000 (0)\n+2C8CE Comment Length        0000 (0)\n+2C8D0 Disk Start            0000 (0)\n+2C8D2 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2C477 Ext File Attributes   81A40000 (2175008768)\n+2C8D4 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2C47B Local Header Offset   0001C009 (114697)\n-2C47F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2C8D8 Local Header Offset   0001C2FB (115451)\n+2C8DC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2C47F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2C8DC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2C4CB CENTRAL HEADER #139   02014B50 (33639248)\n-2C4CF Created Zip Spec      14 (20) '2.0'\n-2C4D0 Created OS            03 (3) 'Unix'\n-2C4D1 Extract Zip Spec      14 (20) '2.0'\n-2C4D2 Extract OS            00 (0) 'MS-DOS'\n-2C4D3 General Purpose Flag  0800 (2048)\n+2C928 CENTRAL HEADER #139   02014B50 (33639248)\n+2C92C Created Zip Spec      14 (20) '2.0'\n+2C92D Created OS            03 (3) 'Unix'\n+2C92E Extract Zip Spec      14 (20) '2.0'\n+2C92F Extract OS            00 (0) 'MS-DOS'\n+2C930 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2C4D5 Compression Method    0008 (8) 'Deflated'\n-2C4D7 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2C4DB CRC                   85BB0A54 (2243627604)\n-2C4DF Compressed Size       000001FA (506)\n-2C4E3 Uncompressed Size     00000488 (1160)\n-2C4E7 Filename Length       004C (76)\n-2C4E9 Extra Length          0000 (0)\n-2C4EB Comment Length        0000 (0)\n-2C4ED Disk Start            0000 (0)\n-2C4EF Int File Attributes   0000 (0)\n+2C932 Compression Method    0008 (8) 'Deflated'\n+2C934 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2C938 CRC                   38071647 (939988551)\n+2C93C Compressed Size       000001FD (509)\n+2C940 Uncompressed Size     00000488 (1160)\n+2C944 Filename Length       004C (76)\n+2C946 Extra Length          0000 (0)\n+2C948 Comment Length        0000 (0)\n+2C94A Disk Start            0000 (0)\n+2C94C Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2C4F1 Ext File Attributes   81A40000 (2175008768)\n+2C94E Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2C4F5 Local Header Offset   0001C26A (115306)\n-2C4F9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2C952 Local Header Offset   0001C55F (116063)\n+2C956 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2C4F9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2C956: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2C545 CENTRAL HEADER #140   02014B50 (33639248)\n-2C549 Created Zip Spec      14 (20) '2.0'\n-2C54A Created OS            03 (3) 'Unix'\n-2C54B Extract Zip Spec      14 (20) '2.0'\n-2C54C Extract OS            00 (0) 'MS-DOS'\n-2C54D General Purpose Flag  0800 (2048)\n+2C9A2 CENTRAL HEADER #140   02014B50 (33639248)\n+2C9A6 Created Zip Spec      14 (20) '2.0'\n+2C9A7 Created OS            03 (3) 'Unix'\n+2C9A8 Extract Zip Spec      14 (20) '2.0'\n+2C9A9 Extract OS            00 (0) 'MS-DOS'\n+2C9AA General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2C54F Compression Method    0008 (8) 'Deflated'\n-2C551 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2C555 CRC                   50D2C43E (1355990078)\n-2C559 Compressed Size       00000A08 (2568)\n-2C55D Uncompressed Size     00001D23 (7459)\n-2C561 Filename Length       0037 (55)\n-2C563 Extra Length          0000 (0)\n-2C565 Comment Length        0000 (0)\n-2C567 Disk Start            0000 (0)\n-2C569 Int File Attributes   0000 (0)\n+2C9AC Compression Method    0008 (8) 'Deflated'\n+2C9AE Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2C9B2 CRC                   B6D3D669 (3067336297)\n+2C9B6 Compressed Size       00000A1E (2590)\n+2C9BA Uncompressed Size     00001D23 (7459)\n+2C9BE Filename Length       0037 (55)\n+2C9C0 Extra Length          0000 (0)\n+2C9C2 Comment Length        0000 (0)\n+2C9C4 Disk Start            0000 (0)\n+2C9C6 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2C56B Ext File Attributes   81A40000 (2175008768)\n+2C9C8 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2C56F Local Header Offset   0001C4CE (115918)\n-2C573 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2C9CC Local Header Offset   0001C7C6 (116678)\n+2C9D0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2C573: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2C9D0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2C5AA CENTRAL HEADER #141   02014B50 (33639248)\n-2C5AE Created Zip Spec      14 (20) '2.0'\n-2C5AF Created OS            03 (3) 'Unix'\n-2C5B0 Extract Zip Spec      14 (20) '2.0'\n-2C5B1 Extract OS            00 (0) 'MS-DOS'\n-2C5B2 General Purpose Flag  0800 (2048)\n+2CA07 CENTRAL HEADER #141   02014B50 (33639248)\n+2CA0B Created Zip Spec      14 (20) '2.0'\n+2CA0C Created OS            03 (3) 'Unix'\n+2CA0D Extract Zip Spec      14 (20) '2.0'\n+2CA0E Extract OS            00 (0) 'MS-DOS'\n+2CA0F General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2C5B4 Compression Method    0008 (8) 'Deflated'\n-2C5B6 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2C5BA CRC                   B2182B1E (2987928350)\n-2C5BE Compressed Size       000003CB (971)\n-2C5C2 Uncompressed Size     000008CC (2252)\n-2C5C6 Filename Length       002D (45)\n-2C5C8 Extra Length          0000 (0)\n-2C5CA Comment Length        0000 (0)\n-2C5CC Disk Start            0000 (0)\n-2C5CE Int File Attributes   0000 (0)\n+2CA11 Compression Method    0008 (8) 'Deflated'\n+2CA13 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2CA17 CRC                   85F37191 (2247324049)\n+2CA1B Compressed Size       000003D9 (985)\n+2CA1F Uncompressed Size     000008CC (2252)\n+2CA23 Filename Length       002D (45)\n+2CA25 Extra Length          0000 (0)\n+2CA27 Comment Length        0000 (0)\n+2CA29 Disk Start            0000 (0)\n+2CA2B Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2C5D0 Ext File Attributes   81A40000 (2175008768)\n+2CA2D Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2C5D4 Local Header Offset   0001CF2B (118571)\n-2C5D8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2CA31 Local Header Offset   0001D239 (119353)\n+2CA35 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2C5D8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2CA35: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2C605 CENTRAL HEADER #142   02014B50 (33639248)\n-2C609 Created Zip Spec      14 (20) '2.0'\n-2C60A Created OS            03 (3) 'Unix'\n-2C60B Extract Zip Spec      14 (20) '2.0'\n-2C60C Extract OS            00 (0) 'MS-DOS'\n-2C60D General Purpose Flag  0800 (2048)\n+2CA62 CENTRAL HEADER #142   02014B50 (33639248)\n+2CA66 Created Zip Spec      14 (20) '2.0'\n+2CA67 Created OS            03 (3) 'Unix'\n+2CA68 Extract Zip Spec      14 (20) '2.0'\n+2CA69 Extract OS            00 (0) 'MS-DOS'\n+2CA6A General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2C60F Compression Method    0008 (8) 'Deflated'\n-2C611 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2C615 CRC                   991D6690 (2568840848)\n-2C619 Compressed Size       00000724 (1828)\n-2C61D Uncompressed Size     00001265 (4709)\n-2C621 Filename Length       0049 (73)\n-2C623 Extra Length          0000 (0)\n-2C625 Comment Length        0000 (0)\n-2C627 Disk Start            0000 (0)\n-2C629 Int File Attributes   0000 (0)\n+2CA6C Compression Method    0008 (8) 'Deflated'\n+2CA6E Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2CA72 CRC                   420B2988 (1108027784)\n+2CA76 Compressed Size       0000072C (1836)\n+2CA7A Uncompressed Size     00001265 (4709)\n+2CA7E Filename Length       0049 (73)\n+2CA80 Extra Length          0000 (0)\n+2CA82 Comment Length        0000 (0)\n+2CA84 Disk Start            0000 (0)\n+2CA86 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2C62B Ext File Attributes   81A40000 (2175008768)\n+2CA88 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2C62F Local Header Offset   0001D341 (119617)\n-2C633 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2CA8C Local Header Offset   0001D65D (120413)\n+2CA90 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2C633: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2CA90: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2C67C CENTRAL HEADER #143   02014B50 (33639248)\n-2C680 Created Zip Spec      14 (20) '2.0'\n-2C681 Created OS            03 (3) 'Unix'\n-2C682 Extract Zip Spec      14 (20) '2.0'\n-2C683 Extract OS            00 (0) 'MS-DOS'\n-2C684 General Purpose Flag  0800 (2048)\n+2CAD9 CENTRAL HEADER #143   02014B50 (33639248)\n+2CADD Created Zip Spec      14 (20) '2.0'\n+2CADE Created OS            03 (3) 'Unix'\n+2CADF Extract Zip Spec      14 (20) '2.0'\n+2CAE0 Extract OS            00 (0) 'MS-DOS'\n+2CAE1 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2C686 Compression Method    0008 (8) 'Deflated'\n-2C688 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2C68C CRC                   D6CD889E (3603794078)\n-2C690 Compressed Size       00000EA1 (3745)\n-2C694 Uncompressed Size     0000264B (9803)\n-2C698 Filename Length       004B (75)\n-2C69A Extra Length          0000 (0)\n-2C69C Comment Length        0000 (0)\n-2C69E Disk Start            0000 (0)\n-2C6A0 Int File Attributes   0000 (0)\n+2CAE3 Compression Method    0008 (8) 'Deflated'\n+2CAE5 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2CAE9 CRC                   09B0AEF3 (162574067)\n+2CAED Compressed Size       00000EBC (3772)\n+2CAF1 Uncompressed Size     0000264B (9803)\n+2CAF5 Filename Length       004B (75)\n+2CAF7 Extra Length          0000 (0)\n+2CAF9 Comment Length        0000 (0)\n+2CAFB Disk Start            0000 (0)\n+2CAFD Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2C6A2 Ext File Attributes   81A40000 (2175008768)\n+2CAFF Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2C6A6 Local Header Offset   0001DACC (121548)\n-2C6AA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2CB03 Local Header Offset   0001DDF0 (122352)\n+2CB07 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2C6AA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2CB07: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2C6F5 CENTRAL HEADER #144   02014B50 (33639248)\n-2C6F9 Created Zip Spec      14 (20) '2.0'\n-2C6FA Created OS            03 (3) 'Unix'\n-2C6FB Extract Zip Spec      14 (20) '2.0'\n-2C6FC Extract OS            00 (0) 'MS-DOS'\n-2C6FD General Purpose Flag  0800 (2048)\n+2CB52 CENTRAL HEADER #144   02014B50 (33639248)\n+2CB56 Created Zip Spec      14 (20) '2.0'\n+2CB57 Created OS            03 (3) 'Unix'\n+2CB58 Extract Zip Spec      14 (20) '2.0'\n+2CB59 Extract OS            00 (0) 'MS-DOS'\n+2CB5A General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2C6FF Compression Method    0008 (8) 'Deflated'\n-2C701 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2C705 CRC                   12B2F773 (313718643)\n-2C709 Compressed Size       00000540 (1344)\n-2C70D Uncompressed Size     00000FB2 (4018)\n-2C711 Filename Length       0044 (68)\n-2C713 Extra Length          0000 (0)\n-2C715 Comment Length        0000 (0)\n-2C717 Disk Start            0000 (0)\n-2C719 Int File Attributes   0000 (0)\n+2CB5C Compression Method    0008 (8) 'Deflated'\n+2CB5E Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2CB62 CRC                   42ED27DC (1122838492)\n+2CB66 Compressed Size       0000054D (1357)\n+2CB6A Uncompressed Size     00000FB2 (4018)\n+2CB6E Filename Length       0044 (68)\n+2CB70 Extra Length          0000 (0)\n+2CB72 Comment Length        0000 (0)\n+2CB74 Disk Start            0000 (0)\n+2CB76 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2C71B Ext File Attributes   81A40000 (2175008768)\n+2CB78 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2C71F Local Header Offset   0001E9D6 (125398)\n-2C723 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2CB7C Local Header Offset   0001ED15 (126229)\n+2CB80 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2C723: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2CB80: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2C767 CENTRAL HEADER #145   02014B50 (33639248)\n-2C76B Created Zip Spec      14 (20) '2.0'\n-2C76C Created OS            03 (3) 'Unix'\n-2C76D Extract Zip Spec      14 (20) '2.0'\n-2C76E Extract OS            00 (0) 'MS-DOS'\n-2C76F General Purpose Flag  0800 (2048)\n+2CBC4 CENTRAL HEADER #145   02014B50 (33639248)\n+2CBC8 Created Zip Spec      14 (20) '2.0'\n+2CBC9 Created OS            03 (3) 'Unix'\n+2CBCA Extract Zip Spec      14 (20) '2.0'\n+2CBCB Extract OS            00 (0) 'MS-DOS'\n+2CBCC General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2C771 Compression Method    0008 (8) 'Deflated'\n-2C773 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2C777 CRC                   83A30048 (2208497736)\n-2C77B Compressed Size       00000B09 (2825)\n-2C77F Uncompressed Size     000020CB (8395)\n-2C783 Filename Length       0045 (69)\n-2C785 Extra Length          0000 (0)\n-2C787 Comment Length        0000 (0)\n-2C789 Disk Start            0000 (0)\n-2C78B Int File Attributes   0000 (0)\n+2CBCE Compression Method    0008 (8) 'Deflated'\n+2CBD0 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2CBD4 CRC                   0EC4C090 (247775376)\n+2CBD8 Compressed Size       00000B17 (2839)\n+2CBDC Uncompressed Size     000020CB (8395)\n+2CBE0 Filename Length       0045 (69)\n+2CBE2 Extra Length          0000 (0)\n+2CBE4 Comment Length        0000 (0)\n+2CBE6 Disk Start            0000 (0)\n+2CBE8 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2C78D Ext File Attributes   81A40000 (2175008768)\n+2CBEA Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2C791 Local Header Offset   0001EF78 (126840)\n-2C795 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2CBEE Local Header Offset   0001F2C4 (127684)\n+2CBF2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2C795: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2CBF2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2C7DA CENTRAL HEADER #146   02014B50 (33639248)\n-2C7DE Created Zip Spec      14 (20) '2.0'\n-2C7DF Created OS            03 (3) 'Unix'\n-2C7E0 Extract Zip Spec      14 (20) '2.0'\n-2C7E1 Extract OS            00 (0) 'MS-DOS'\n-2C7E2 General Purpose Flag  0800 (2048)\n+2CC37 CENTRAL HEADER #146   02014B50 (33639248)\n+2CC3B Created Zip Spec      14 (20) '2.0'\n+2CC3C Created OS            03 (3) 'Unix'\n+2CC3D Extract Zip Spec      14 (20) '2.0'\n+2CC3E Extract OS            00 (0) 'MS-DOS'\n+2CC3F General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2C7E4 Compression Method    0008 (8) 'Deflated'\n-2C7E6 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2C7EA CRC                   D5FDA0C9 (3590168777)\n-2C7EE Compressed Size       00000A90 (2704)\n-2C7F2 Uncompressed Size     00001FC8 (8136)\n-2C7F6 Filename Length       004E (78)\n-2C7F8 Extra Length          0000 (0)\n-2C7FA Comment Length        0000 (0)\n-2C7FC Disk Start            0000 (0)\n-2C7FE Int File Attributes   0000 (0)\n+2CC41 Compression Method    0008 (8) 'Deflated'\n+2CC43 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2CC47 CRC                   0D328151 (221413713)\n+2CC4B Compressed Size       00000A9B (2715)\n+2CC4F Uncompressed Size     00001FC8 (8136)\n+2CC53 Filename Length       004E (78)\n+2CC55 Extra Length          0000 (0)\n+2CC57 Comment Length        0000 (0)\n+2CC59 Disk Start            0000 (0)\n+2CC5B Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2C800 Ext File Attributes   81A40000 (2175008768)\n+2CC5D Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2C804 Local Header Offset   0001FAE4 (129764)\n-2C808 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2CC61 Local Header Offset   0001FE3E (130622)\n+2CC65 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2C808: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2CC65: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2C856 CENTRAL HEADER #147   02014B50 (33639248)\n-2C85A Created Zip Spec      14 (20) '2.0'\n-2C85B Created OS            03 (3) 'Unix'\n-2C85C Extract Zip Spec      14 (20) '2.0'\n-2C85D Extract OS            00 (0) 'MS-DOS'\n-2C85E General Purpose Flag  0800 (2048)\n+2CCB3 CENTRAL HEADER #147   02014B50 (33639248)\n+2CCB7 Created Zip Spec      14 (20) '2.0'\n+2CCB8 Created OS            03 (3) 'Unix'\n+2CCB9 Extract Zip Spec      14 (20) '2.0'\n+2CCBA Extract OS            00 (0) 'MS-DOS'\n+2CCBB General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2C860 Compression Method    0008 (8) 'Deflated'\n-2C862 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2C866 CRC                   3672AC9B (913484955)\n-2C86A Compressed Size       000005AC (1452)\n-2C86E Uncompressed Size     00000D39 (3385)\n-2C872 Filename Length       002C (44)\n-2C874 Extra Length          0000 (0)\n-2C876 Comment Length        0000 (0)\n-2C878 Disk Start            0000 (0)\n-2C87A Int File Attributes   0000 (0)\n+2CCBD Compression Method    0008 (8) 'Deflated'\n+2CCBF Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2CCC3 CRC                   918F8FDE (2442104798)\n+2CCC7 Compressed Size       000005B7 (1463)\n+2CCCB Uncompressed Size     00000D39 (3385)\n+2CCCF Filename Length       002C (44)\n+2CCD1 Extra Length          0000 (0)\n+2CCD3 Comment Length        0000 (0)\n+2CCD5 Disk Start            0000 (0)\n+2CCD7 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2C87C Ext File Attributes   81A40000 (2175008768)\n+2CCD9 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2C880 Local Header Offset   000205E0 (132576)\n-2C884 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2CCDD Local Header Offset   00020945 (133445)\n+2CCE1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2C884: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2CCE1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2C8B0 CENTRAL HEADER #148   02014B50 (33639248)\n-2C8B4 Created Zip Spec      14 (20) '2.0'\n-2C8B5 Created OS            03 (3) 'Unix'\n-2C8B6 Extract Zip Spec      14 (20) '2.0'\n-2C8B7 Extract OS            00 (0) 'MS-DOS'\n-2C8B8 General Purpose Flag  0800 (2048)\n+2CD0D CENTRAL HEADER #148   02014B50 (33639248)\n+2CD11 Created Zip Spec      14 (20) '2.0'\n+2CD12 Created OS            03 (3) 'Unix'\n+2CD13 Extract Zip Spec      14 (20) '2.0'\n+2CD14 Extract OS            00 (0) 'MS-DOS'\n+2CD15 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2C8BA Compression Method    0008 (8) 'Deflated'\n-2C8BC Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2C8C0 CRC                   8B430614 (2336425492)\n-2C8C4 Compressed Size       000005FA (1530)\n-2C8C8 Uncompressed Size     00000DA9 (3497)\n-2C8CC Filename Length       0029 (41)\n-2C8CE Extra Length          0000 (0)\n-2C8D0 Comment Length        0000 (0)\n-2C8D2 Disk Start            0000 (0)\n-2C8D4 Int File Attributes   0000 (0)\n+2CD17 Compression Method    0008 (8) 'Deflated'\n+2CD19 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2CD1D CRC                   0D442AC7 (222571207)\n+2CD21 Compressed Size       0000060C (1548)\n+2CD25 Uncompressed Size     00000DA9 (3497)\n+2CD29 Filename Length       0029 (41)\n+2CD2B Extra Length          0000 (0)\n+2CD2D Comment Length        0000 (0)\n+2CD2F Disk Start            0000 (0)\n+2CD31 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2C8D6 Ext File Attributes   81A40000 (2175008768)\n+2CD33 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2C8DA Local Header Offset   00020BD6 (134102)\n-2C8DE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2CD37 Local Header Offset   00020F46 (134982)\n+2CD3B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2C8DE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2CD3B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2C907 CENTRAL HEADER #149   02014B50 (33639248)\n-2C90B Created Zip Spec      14 (20) '2.0'\n-2C90C Created OS            03 (3) 'Unix'\n-2C90D Extract Zip Spec      14 (20) '2.0'\n-2C90E Extract OS            00 (0) 'MS-DOS'\n-2C90F General Purpose Flag  0800 (2048)\n+2CD64 CENTRAL HEADER #149   02014B50 (33639248)\n+2CD68 Created Zip Spec      14 (20) '2.0'\n+2CD69 Created OS            03 (3) 'Unix'\n+2CD6A Extract Zip Spec      14 (20) '2.0'\n+2CD6B Extract OS            00 (0) 'MS-DOS'\n+2CD6C General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2C911 Compression Method    0008 (8) 'Deflated'\n-2C913 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2C917 CRC                   7A958CBE (2056621246)\n-2C91B Compressed Size       000003C1 (961)\n-2C91F Uncompressed Size     00000945 (2373)\n-2C923 Filename Length       003D (61)\n-2C925 Extra Length          0000 (0)\n-2C927 Comment Length        0000 (0)\n-2C929 Disk Start            0000 (0)\n-2C92B Int File Attributes   0000 (0)\n+2CD6E Compression Method    0008 (8) 'Deflated'\n+2CD70 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2CD74 CRC                   78074190 (2013741456)\n+2CD78 Compressed Size       000003C5 (965)\n+2CD7C Uncompressed Size     00000945 (2373)\n+2CD80 Filename Length       003D (61)\n+2CD82 Extra Length          0000 (0)\n+2CD84 Comment Length        0000 (0)\n+2CD86 Disk Start            0000 (0)\n+2CD88 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2C92D Ext File Attributes   81A40000 (2175008768)\n+2CD8A Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2C931 Local Header Offset   00021217 (135703)\n-2C935 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2CD8E Local Header Offset   00021599 (136601)\n+2CD92 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2C935: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2CD92: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2C972 CENTRAL HEADER #150   02014B50 (33639248)\n-2C976 Created Zip Spec      14 (20) '2.0'\n-2C977 Created OS            03 (3) 'Unix'\n-2C978 Extract Zip Spec      14 (20) '2.0'\n-2C979 Extract OS            00 (0) 'MS-DOS'\n-2C97A General Purpose Flag  0800 (2048)\n+2CDCF CENTRAL HEADER #150   02014B50 (33639248)\n+2CDD3 Created Zip Spec      14 (20) '2.0'\n+2CDD4 Created OS            03 (3) 'Unix'\n+2CDD5 Extract Zip Spec      14 (20) '2.0'\n+2CDD6 Extract OS            00 (0) 'MS-DOS'\n+2CDD7 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2C97C Compression Method    0008 (8) 'Deflated'\n-2C97E Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2C982 CRC                   65684A62 (1701333602)\n-2C986 Compressed Size       000007E1 (2017)\n-2C98A Uncompressed Size     0000154C (5452)\n-2C98E Filename Length       0043 (67)\n-2C990 Extra Length          0000 (0)\n-2C992 Comment Length        0000 (0)\n-2C994 Disk Start            0000 (0)\n-2C996 Int File Attributes   0000 (0)\n+2CDD9 Compression Method    0008 (8) 'Deflated'\n+2CDDB Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2CDDF CRC                   ECC02854 (3972016212)\n+2CDE3 Compressed Size       000007F7 (2039)\n+2CDE7 Uncompressed Size     0000154C (5452)\n+2CDEB Filename Length       0043 (67)\n+2CDED Extra Length          0000 (0)\n+2CDEF Comment Length        0000 (0)\n+2CDF1 Disk Start            0000 (0)\n+2CDF3 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2C998 Ext File Attributes   81A40000 (2175008768)\n+2CDF5 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2C99C Local Header Offset   00021633 (136755)\n-2C9A0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2CDF9 Local Header Offset   000219B9 (137657)\n+2CDFD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2C9A0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2CDFD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2C9E3 CENTRAL HEADER #151   02014B50 (33639248)\n-2C9E7 Created Zip Spec      14 (20) '2.0'\n-2C9E8 Created OS            03 (3) 'Unix'\n-2C9E9 Extract Zip Spec      14 (20) '2.0'\n-2C9EA Extract OS            00 (0) 'MS-DOS'\n-2C9EB General Purpose Flag  0800 (2048)\n+2CE40 CENTRAL HEADER #151   02014B50 (33639248)\n+2CE44 Created Zip Spec      14 (20) '2.0'\n+2CE45 Created OS            03 (3) 'Unix'\n+2CE46 Extract Zip Spec      14 (20) '2.0'\n+2CE47 Extract OS            00 (0) 'MS-DOS'\n+2CE48 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2C9ED Compression Method    0008 (8) 'Deflated'\n-2C9EF Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2C9F3 CRC                   D16E8B20 (3513682720)\n-2C9F7 Compressed Size       00000A5E (2654)\n-2C9FB Uncompressed Size     00001C70 (7280)\n-2C9FF Filename Length       004B (75)\n-2CA01 Extra Length          0000 (0)\n-2CA03 Comment Length        0000 (0)\n-2CA05 Disk Start            0000 (0)\n-2CA07 Int File Attributes   0000 (0)\n+2CE4A Compression Method    0008 (8) 'Deflated'\n+2CE4C Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2CE50 CRC                   166728A8 (375859368)\n+2CE54 Compressed Size       00000A84 (2692)\n+2CE58 Uncompressed Size     00001C70 (7280)\n+2CE5C Filename Length       004B (75)\n+2CE5E Extra Length          0000 (0)\n+2CE60 Comment Length        0000 (0)\n+2CE62 Disk Start            0000 (0)\n+2CE64 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2CA09 Ext File Attributes   81A40000 (2175008768)\n+2CE66 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2CA0D Local Header Offset   00021E75 (138869)\n-2CA11 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2CE6A Local Header Offset   00022211 (139793)\n+2CE6E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2CA11: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2CE6E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2CA5C CENTRAL HEADER #152   02014B50 (33639248)\n-2CA60 Created Zip Spec      14 (20) '2.0'\n-2CA61 Created OS            03 (3) 'Unix'\n-2CA62 Extract Zip Spec      14 (20) '2.0'\n-2CA63 Extract OS            00 (0) 'MS-DOS'\n-2CA64 General Purpose Flag  0800 (2048)\n+2CEB9 CENTRAL HEADER #152   02014B50 (33639248)\n+2CEBD Created Zip Spec      14 (20) '2.0'\n+2CEBE Created OS            03 (3) 'Unix'\n+2CEBF Extract Zip Spec      14 (20) '2.0'\n+2CEC0 Extract OS            00 (0) 'MS-DOS'\n+2CEC1 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2CA66 Compression Method    0008 (8) 'Deflated'\n-2CA68 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2CA6C CRC                   A619DAE4 (2786712292)\n-2CA70 Compressed Size       00000285 (645)\n-2CA74 Uncompressed Size     000005D1 (1489)\n-2CA78 Filename Length       0047 (71)\n-2CA7A Extra Length          0000 (0)\n-2CA7C Comment Length        0000 (0)\n-2CA7E Disk Start            0000 (0)\n-2CA80 Int File Attributes   0000 (0)\n+2CEC3 Compression Method    0008 (8) 'Deflated'\n+2CEC5 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2CEC9 CRC                   9A288CEF (2586348783)\n+2CECD Compressed Size       0000028D (653)\n+2CED1 Uncompressed Size     000005D1 (1489)\n+2CED5 Filename Length       0047 (71)\n+2CED7 Extra Length          0000 (0)\n+2CED9 Comment Length        0000 (0)\n+2CEDB Disk Start            0000 (0)\n+2CEDD Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2CA82 Ext File Attributes   81A40000 (2175008768)\n+2CEDF Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2CA86 Local Header Offset   0002293C (141628)\n-2CA8A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2CEE3 Local Header Offset   00022CFE (142590)\n+2CEE7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2CA8A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2CEE7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2CAD1 CENTRAL HEADER #153   02014B50 (33639248)\n-2CAD5 Created Zip Spec      14 (20) '2.0'\n-2CAD6 Created OS            03 (3) 'Unix'\n-2CAD7 Extract Zip Spec      14 (20) '2.0'\n-2CAD8 Extract OS            00 (0) 'MS-DOS'\n-2CAD9 General Purpose Flag  0800 (2048)\n+2CF2E CENTRAL HEADER #153   02014B50 (33639248)\n+2CF32 Created Zip Spec      14 (20) '2.0'\n+2CF33 Created OS            03 (3) 'Unix'\n+2CF34 Extract Zip Spec      14 (20) '2.0'\n+2CF35 Extract OS            00 (0) 'MS-DOS'\n+2CF36 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2CADB Compression Method    0008 (8) 'Deflated'\n-2CADD Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2CAE1 CRC                   83613D56 (2204187990)\n-2CAE5 Compressed Size       0000075B (1883)\n-2CAE9 Uncompressed Size     000013B7 (5047)\n-2CAED Filename Length       0049 (73)\n-2CAEF Extra Length          0000 (0)\n-2CAF1 Comment Length        0000 (0)\n-2CAF3 Disk Start            0000 (0)\n-2CAF5 Int File Attributes   0000 (0)\n+2CF38 Compression Method    0008 (8) 'Deflated'\n+2CF3A Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2CF3E CRC                   B054C9F9 (2958346745)\n+2CF42 Compressed Size       0000077B (1915)\n+2CF46 Uncompressed Size     000013B7 (5047)\n+2CF4A Filename Length       0049 (73)\n+2CF4C Extra Length          0000 (0)\n+2CF4E Comment Length        0000 (0)\n+2CF50 Disk Start            0000 (0)\n+2CF52 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2CAF7 Ext File Attributes   81A40000 (2175008768)\n+2CF54 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2CAFB Local Header Offset   00022C26 (142374)\n-2CAFF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2CF58 Local Header Offset   00022FF0 (143344)\n+2CF5C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2CAFF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2CF5C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2CB48 CENTRAL HEADER #154   02014B50 (33639248)\n-2CB4C Created Zip Spec      14 (20) '2.0'\n-2CB4D Created OS            03 (3) 'Unix'\n-2CB4E Extract Zip Spec      14 (20) '2.0'\n-2CB4F Extract OS            00 (0) 'MS-DOS'\n-2CB50 General Purpose Flag  0800 (2048)\n+2CFA5 CENTRAL HEADER #154   02014B50 (33639248)\n+2CFA9 Created Zip Spec      14 (20) '2.0'\n+2CFAA Created OS            03 (3) 'Unix'\n+2CFAB Extract Zip Spec      14 (20) '2.0'\n+2CFAC Extract OS            00 (0) 'MS-DOS'\n+2CFAD General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2CB52 Compression Method    0008 (8) 'Deflated'\n-2CB54 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2CB58 CRC                   435BC395 (1130087317)\n-2CB5C Compressed Size       000001A7 (423)\n-2CB60 Uncompressed Size     00000383 (899)\n-2CB64 Filename Length       003B (59)\n-2CB66 Extra Length          0000 (0)\n-2CB68 Comment Length        0000 (0)\n-2CB6A Disk Start            0000 (0)\n-2CB6C Int File Attributes   0000 (0)\n+2CFAF Compression Method    0008 (8) 'Deflated'\n+2CFB1 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2CFB5 CRC                   F2EA4571 (4075439473)\n+2CFB9 Compressed Size       0000019F (415)\n+2CFBD Uncompressed Size     00000383 (899)\n+2CFC1 Filename Length       003B (59)\n+2CFC3 Extra Length          0000 (0)\n+2CFC5 Comment Length        0000 (0)\n+2CFC7 Disk Start            0000 (0)\n+2CFC9 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2CB6E Ext File Attributes   81A40000 (2175008768)\n+2CFCB Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2CB72 Local Header Offset   000233E8 (144360)\n-2CB76 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2CFCF Local Header Offset   000237D2 (145362)\n+2CFD3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2CB76: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2CFD3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2CBB1 CENTRAL HEADER #155   02014B50 (33639248)\n-2CBB5 Created Zip Spec      14 (20) '2.0'\n-2CBB6 Created OS            03 (3) 'Unix'\n-2CBB7 Extract Zip Spec      14 (20) '2.0'\n-2CBB8 Extract OS            00 (0) 'MS-DOS'\n-2CBB9 General Purpose Flag  0800 (2048)\n+2D00E CENTRAL HEADER #155   02014B50 (33639248)\n+2D012 Created Zip Spec      14 (20) '2.0'\n+2D013 Created OS            03 (3) 'Unix'\n+2D014 Extract Zip Spec      14 (20) '2.0'\n+2D015 Extract OS            00 (0) 'MS-DOS'\n+2D016 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2CBBB Compression Method    0008 (8) 'Deflated'\n-2CBBD Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2CBC1 CRC                   A722B775 (2804070261)\n-2CBC5 Compressed Size       000005C8 (1480)\n-2CBC9 Uncompressed Size     00000F5B (3931)\n-2CBCD Filename Length       002D (45)\n-2CBCF Extra Length          0000 (0)\n-2CBD1 Comment Length        0000 (0)\n-2CBD3 Disk Start            0000 (0)\n-2CBD5 Int File Attributes   0000 (0)\n+2D018 Compression Method    0008 (8) 'Deflated'\n+2D01A Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2D01E CRC                   DB7483A7 (3681846183)\n+2D022 Compressed Size       000005DC (1500)\n+2D026 Uncompressed Size     00000F5B (3931)\n+2D02A Filename Length       002D (45)\n+2D02C Extra Length          0000 (0)\n+2D02E Comment Length        0000 (0)\n+2D030 Disk Start            0000 (0)\n+2D032 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2CBD7 Ext File Attributes   81A40000 (2175008768)\n+2D034 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2CBDB Local Header Offset   000235E8 (144872)\n-2CBDF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2D038 Local Header Offset   000239CA (145866)\n+2D03C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2CBDF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2D03C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2CC0C CENTRAL HEADER #156   02014B50 (33639248)\n-2CC10 Created Zip Spec      14 (20) '2.0'\n-2CC11 Created OS            03 (3) 'Unix'\n-2CC12 Extract Zip Spec      14 (20) '2.0'\n-2CC13 Extract OS            00 (0) 'MS-DOS'\n-2CC14 General Purpose Flag  0800 (2048)\n+2D069 CENTRAL HEADER #156   02014B50 (33639248)\n+2D06D Created Zip Spec      14 (20) '2.0'\n+2D06E Created OS            03 (3) 'Unix'\n+2D06F Extract Zip Spec      14 (20) '2.0'\n+2D070 Extract OS            00 (0) 'MS-DOS'\n+2D071 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2CC16 Compression Method    0008 (8) 'Deflated'\n-2CC18 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2CC1C CRC                   7D006F4A (2097180490)\n-2CC20 Compressed Size       00000090 (144)\n-2CC24 Uncompressed Size     000000AE (174)\n-2CC28 Filename Length       0028 (40)\n-2CC2A Extra Length          0000 (0)\n-2CC2C Comment Length        0000 (0)\n-2CC2E Disk Start            0000 (0)\n-2CC30 Int File Attributes   0000 (0)\n+2D073 Compression Method    0008 (8) 'Deflated'\n+2D075 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2D079 CRC                   B365C78C (3009791884)\n+2D07D Compressed Size       0000008F (143)\n+2D081 Uncompressed Size     000000AE (174)\n+2D085 Filename Length       0028 (40)\n+2D087 Extra Length          0000 (0)\n+2D089 Comment Length        0000 (0)\n+2D08B Disk Start            0000 (0)\n+2D08D Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2CC32 Ext File Attributes   81A40000 (2175008768)\n+2D08F Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2CC36 Local Header Offset   00023BFB (146427)\n-2CC3A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2D093 Local Header Offset   00023FF1 (147441)\n+2D097 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2CC3A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2D097: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2CC62 CENTRAL HEADER #157   02014B50 (33639248)\n-2CC66 Created Zip Spec      14 (20) '2.0'\n-2CC67 Created OS            03 (3) 'Unix'\n-2CC68 Extract Zip Spec      14 (20) '2.0'\n-2CC69 Extract OS            00 (0) 'MS-DOS'\n-2CC6A General Purpose Flag  0800 (2048)\n+2D0BF CENTRAL HEADER #157   02014B50 (33639248)\n+2D0C3 Created Zip Spec      14 (20) '2.0'\n+2D0C4 Created OS            03 (3) 'Unix'\n+2D0C5 Extract Zip Spec      14 (20) '2.0'\n+2D0C6 Extract OS            00 (0) 'MS-DOS'\n+2D0C7 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2CC6C Compression Method    0008 (8) 'Deflated'\n-2CC6E Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2CC72 CRC                   6F0F3966 (1863268710)\n-2CC76 Compressed Size       0000011A (282)\n-2CC7A Uncompressed Size     000001DF (479)\n-2CC7E Filename Length       002F (47)\n-2CC80 Extra Length          0000 (0)\n-2CC82 Comment Length        0000 (0)\n-2CC84 Disk Start            0000 (0)\n-2CC86 Int File Attributes   0000 (0)\n+2D0C9 Compression Method    0008 (8) 'Deflated'\n+2D0CB Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2D0CF CRC                   335AE0A4 (861593764)\n+2D0D3 Compressed Size       00000119 (281)\n+2D0D7 Uncompressed Size     000001DF (479)\n+2D0DB Filename Length       002F (47)\n+2D0DD Extra Length          0000 (0)\n+2D0DF Comment Length        0000 (0)\n+2D0E1 Disk Start            0000 (0)\n+2D0E3 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2CC88 Ext File Attributes   81A40000 (2175008768)\n+2D0E5 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2CC8C Local Header Offset   00023CD1 (146641)\n-2CC90 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2D0E9 Local Header Offset   000240C6 (147654)\n+2D0ED Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2CC90: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2D0ED: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2CCBF CENTRAL HEADER #158   02014B50 (33639248)\n-2CCC3 Created Zip Spec      14 (20) '2.0'\n-2CCC4 Created OS            03 (3) 'Unix'\n-2CCC5 Extract Zip Spec      14 (20) '2.0'\n-2CCC6 Extract OS            00 (0) 'MS-DOS'\n-2CCC7 General Purpose Flag  0800 (2048)\n+2D11C CENTRAL HEADER #158   02014B50 (33639248)\n+2D120 Created Zip Spec      14 (20) '2.0'\n+2D121 Created OS            03 (3) 'Unix'\n+2D122 Extract Zip Spec      14 (20) '2.0'\n+2D123 Extract OS            00 (0) 'MS-DOS'\n+2D124 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2CCC9 Compression Method    0008 (8) 'Deflated'\n-2CCCB Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2CCCF CRC                   DAA18D5C (3668020572)\n-2CCD3 Compressed Size       00000118 (280)\n-2CCD7 Uncompressed Size     000001D7 (471)\n-2CCDB Filename Length       002D (45)\n-2CCDD Extra Length          0000 (0)\n-2CCDF Comment Length        0000 (0)\n-2CCE1 Disk Start            0000 (0)\n-2CCE3 Int File Attributes   0000 (0)\n+2D126 Compression Method    0008 (8) 'Deflated'\n+2D128 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2D12C CRC                   686AC919 (1751828761)\n+2D130 Compressed Size       00000116 (278)\n+2D134 Uncompressed Size     000001D7 (471)\n+2D138 Filename Length       002D (45)\n+2D13A Extra Length          0000 (0)\n+2D13C Comment Length        0000 (0)\n+2D13E Disk Start            0000 (0)\n+2D140 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2CCE5 Ext File Attributes   81A40000 (2175008768)\n+2D142 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2CCE9 Local Header Offset   00023E38 (147000)\n-2CCED Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2D146 Local Header Offset   0002422C (148012)\n+2D14A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2CCED: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2D14A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2CD1A CENTRAL HEADER #159   02014B50 (33639248)\n-2CD1E Created Zip Spec      14 (20) '2.0'\n-2CD1F Created OS            03 (3) 'Unix'\n-2CD20 Extract Zip Spec      14 (20) '2.0'\n-2CD21 Extract OS            00 (0) 'MS-DOS'\n-2CD22 General Purpose Flag  0800 (2048)\n+2D177 CENTRAL HEADER #159   02014B50 (33639248)\n+2D17B Created Zip Spec      14 (20) '2.0'\n+2D17C Created OS            03 (3) 'Unix'\n+2D17D Extract Zip Spec      14 (20) '2.0'\n+2D17E Extract OS            00 (0) 'MS-DOS'\n+2D17F General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2CD24 Compression Method    0008 (8) 'Deflated'\n-2CD26 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2CD2A CRC                   6F05623C (1862623804)\n-2CD2E Compressed Size       00000156 (342)\n-2CD32 Uncompressed Size     000002AC (684)\n-2CD36 Filename Length       0049 (73)\n-2CD38 Extra Length          0000 (0)\n-2CD3A Comment Length        0000 (0)\n-2CD3C Disk Start            0000 (0)\n-2CD3E Int File Attributes   0000 (0)\n+2D181 Compression Method    0008 (8) 'Deflated'\n+2D183 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2D187 CRC                   40AFB79D (1085257629)\n+2D18B Compressed Size       00000159 (345)\n+2D18F Uncompressed Size     000002AC (684)\n+2D193 Filename Length       0049 (73)\n+2D195 Extra Length          0000 (0)\n+2D197 Comment Length        0000 (0)\n+2D199 Disk Start            0000 (0)\n+2D19B Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2CD40 Ext File Attributes   81A40000 (2175008768)\n+2D19D Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2CD44 Local Header Offset   00023F9B (147355)\n-2CD48 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2D1A1 Local Header Offset   0002438D (148365)\n+2D1A5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2CD48: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2D1A5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2CD91 CENTRAL HEADER #160   02014B50 (33639248)\n-2CD95 Created Zip Spec      14 (20) '2.0'\n-2CD96 Created OS            03 (3) 'Unix'\n-2CD97 Extract Zip Spec      14 (20) '2.0'\n-2CD98 Extract OS            00 (0) 'MS-DOS'\n-2CD99 General Purpose Flag  0800 (2048)\n+2D1EE CENTRAL HEADER #160   02014B50 (33639248)\n+2D1F2 Created Zip Spec      14 (20) '2.0'\n+2D1F3 Created OS            03 (3) 'Unix'\n+2D1F4 Extract Zip Spec      14 (20) '2.0'\n+2D1F5 Extract OS            00 (0) 'MS-DOS'\n+2D1F6 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2CD9B Compression Method    0008 (8) 'Deflated'\n-2CD9D Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2CDA1 CRC                   649CBE85 (1687993989)\n-2CDA5 Compressed Size       000000C0 (192)\n-2CDA9 Uncompressed Size     00000128 (296)\n-2CDAD Filename Length       0042 (66)\n-2CDAF Extra Length          0000 (0)\n-2CDB1 Comment Length        0000 (0)\n-2CDB3 Disk Start            0000 (0)\n-2CDB5 Int File Attributes   0000 (0)\n+2D1F8 Compression Method    0008 (8) 'Deflated'\n+2D1FA Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2D1FE CRC                   EC08D15D (3960000861)\n+2D202 Compressed Size       000000C1 (193)\n+2D206 Uncompressed Size     00000128 (296)\n+2D20A Filename Length       0042 (66)\n+2D20C Extra Length          0000 (0)\n+2D20E Comment Length        0000 (0)\n+2D210 Disk Start            0000 (0)\n+2D212 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2CDB7 Ext File Attributes   81A40000 (2175008768)\n+2D214 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2CDBB Local Header Offset   00024158 (147800)\n-2CDBF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2D218 Local Header Offset   0002454D (148813)\n+2D21C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2CDBF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2D21C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2CE01 CENTRAL HEADER #161   02014B50 (33639248)\n-2CE05 Created Zip Spec      14 (20) '2.0'\n-2CE06 Created OS            03 (3) 'Unix'\n-2CE07 Extract Zip Spec      14 (20) '2.0'\n-2CE08 Extract OS            00 (0) 'MS-DOS'\n-2CE09 General Purpose Flag  0800 (2048)\n+2D25E CENTRAL HEADER #161   02014B50 (33639248)\n+2D262 Created Zip Spec      14 (20) '2.0'\n+2D263 Created OS            03 (3) 'Unix'\n+2D264 Extract Zip Spec      14 (20) '2.0'\n+2D265 Extract OS            00 (0) 'MS-DOS'\n+2D266 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2CE0B Compression Method    0008 (8) 'Deflated'\n-2CE0D Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2CE11 CRC                   7EAB90FF (2125172991)\n-2CE15 Compressed Size       0000076D (1901)\n-2CE19 Uncompressed Size     000013EE (5102)\n-2CE1D Filename Length       002B (43)\n-2CE1F Extra Length          0000 (0)\n-2CE21 Comment Length        0000 (0)\n-2CE23 Disk Start            0000 (0)\n-2CE25 Int File Attributes   0000 (0)\n+2D268 Compression Method    0008 (8) 'Deflated'\n+2D26A Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2D26E CRC                   04F7DEEE (83353326)\n+2D272 Compressed Size       00000774 (1908)\n+2D276 Uncompressed Size     000013F0 (5104)\n+2D27A Filename Length       002B (43)\n+2D27C Extra Length          0000 (0)\n+2D27E Comment Length        0000 (0)\n+2D280 Disk Start            0000 (0)\n+2D282 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2CE27 Ext File Attributes   81A40000 (2175008768)\n+2D284 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2CE2B Local Header Offset   00024278 (148088)\n-2CE2F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2D288 Local Header Offset   0002466E (149102)\n+2D28C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2CE2F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2D28C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2CE5A CENTRAL HEADER #162   02014B50 (33639248)\n-2CE5E Created Zip Spec      14 (20) '2.0'\n-2CE5F Created OS            03 (3) 'Unix'\n-2CE60 Extract Zip Spec      14 (20) '2.0'\n-2CE61 Extract OS            00 (0) 'MS-DOS'\n-2CE62 General Purpose Flag  0800 (2048)\n+2D2B7 CENTRAL HEADER #162   02014B50 (33639248)\n+2D2BB Created Zip Spec      14 (20) '2.0'\n+2D2BC Created OS            03 (3) 'Unix'\n+2D2BD Extract Zip Spec      14 (20) '2.0'\n+2D2BE Extract OS            00 (0) 'MS-DOS'\n+2D2BF General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2CE64 Compression Method    0008 (8) 'Deflated'\n-2CE66 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2CE6A CRC                   8B4A2818 (2336892952)\n-2CE6E Compressed Size       000000AA (170)\n-2CE72 Uncompressed Size     00000100 (256)\n-2CE76 Filename Length       0029 (41)\n-2CE78 Extra Length          0000 (0)\n-2CE7A Comment Length        0000 (0)\n-2CE7C Disk Start            0000 (0)\n-2CE7E Int File Attributes   0000 (0)\n+2D2C1 Compression Method    0008 (8) 'Deflated'\n+2D2C3 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2D2C7 CRC                   81F8F5BE (2180576702)\n+2D2CB Compressed Size       000000AA (170)\n+2D2CF Uncompressed Size     00000100 (256)\n+2D2D3 Filename Length       0029 (41)\n+2D2D5 Extra Length          0000 (0)\n+2D2D7 Comment Length        0000 (0)\n+2D2D9 Disk Start            0000 (0)\n+2D2DB Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2CE80 Ext File Attributes   81A40000 (2175008768)\n+2D2DD Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2CE84 Local Header Offset   00024A2E (150062)\n-2CE88 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2D2E1 Local Header Offset   00024E2B (151083)\n+2D2E5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2CE88: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2D2E5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2CEB1 CENTRAL HEADER #163   02014B50 (33639248)\n-2CEB5 Created Zip Spec      14 (20) '2.0'\n-2CEB6 Created OS            03 (3) 'Unix'\n-2CEB7 Extract Zip Spec      14 (20) '2.0'\n-2CEB8 Extract OS            00 (0) 'MS-DOS'\n-2CEB9 General Purpose Flag  0800 (2048)\n+2D30E CENTRAL HEADER #163   02014B50 (33639248)\n+2D312 Created Zip Spec      14 (20) '2.0'\n+2D313 Created OS            03 (3) 'Unix'\n+2D314 Extract Zip Spec      14 (20) '2.0'\n+2D315 Extract OS            00 (0) 'MS-DOS'\n+2D316 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2CEBB Compression Method    0008 (8) 'Deflated'\n-2CEBD Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2CEC1 CRC                   E28C35C9 (3800839625)\n-2CEC5 Compressed Size       00000132 (306)\n-2CEC9 Uncompressed Size     00000235 (565)\n-2CECD Filename Length       002D (45)\n-2CECF Extra Length          0000 (0)\n-2CED1 Comment Length        0000 (0)\n-2CED3 Disk Start            0000 (0)\n-2CED5 Int File Attributes   0000 (0)\n+2D318 Compression Method    0008 (8) 'Deflated'\n+2D31A Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2D31E CRC                   444DEB39 (1145957177)\n+2D322 Compressed Size       00000135 (309)\n+2D326 Uncompressed Size     00000235 (565)\n+2D32A Filename Length       002D (45)\n+2D32C Extra Length          0000 (0)\n+2D32E Comment Length        0000 (0)\n+2D330 Disk Start            0000 (0)\n+2D332 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2CED7 Ext File Attributes   81A40000 (2175008768)\n+2D334 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2CEDB Local Header Offset   00024B1F (150303)\n-2CEDF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2D338 Local Header Offset   00024F1C (151324)\n+2D33C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2CEDF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2D33C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2CF0C CENTRAL HEADER #164   02014B50 (33639248)\n-2CF10 Created Zip Spec      14 (20) '2.0'\n-2CF11 Created OS            03 (3) 'Unix'\n-2CF12 Extract Zip Spec      14 (20) '2.0'\n-2CF13 Extract OS            00 (0) 'MS-DOS'\n-2CF14 General Purpose Flag  0800 (2048)\n+2D369 CENTRAL HEADER #164   02014B50 (33639248)\n+2D36D Created Zip Spec      14 (20) '2.0'\n+2D36E Created OS            03 (3) 'Unix'\n+2D36F Extract Zip Spec      14 (20) '2.0'\n+2D370 Extract OS            00 (0) 'MS-DOS'\n+2D371 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2CF16 Compression Method    0008 (8) 'Deflated'\n-2CF18 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2CF1C CRC                   6ADA63B0 (1792697264)\n-2CF20 Compressed Size       000000AF (175)\n-2CF24 Uncompressed Size     00000110 (272)\n-2CF28 Filename Length       0031 (49)\n-2CF2A Extra Length          0000 (0)\n-2CF2C Comment Length        0000 (0)\n-2CF2E Disk Start            0000 (0)\n-2CF30 Int File Attributes   0000 (0)\n+2D373 Compression Method    0008 (8) 'Deflated'\n+2D375 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2D379 CRC                   4D79ACBE (1299819710)\n+2D37D Compressed Size       000000AF (175)\n+2D381 Uncompressed Size     00000110 (272)\n+2D385 Filename Length       0031 (49)\n+2D387 Extra Length          0000 (0)\n+2D389 Comment Length        0000 (0)\n+2D38B Disk Start            0000 (0)\n+2D38D Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2CF32 Ext File Attributes   81A40000 (2175008768)\n+2D38F Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2CF36 Local Header Offset   00024C9C (150684)\n-2CF3A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2D393 Local Header Offset   0002509C (151708)\n+2D397 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2CF3A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2D397: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2CF6B CENTRAL HEADER #165   02014B50 (33639248)\n-2CF6F Created Zip Spec      14 (20) '2.0'\n-2CF70 Created OS            03 (3) 'Unix'\n-2CF71 Extract Zip Spec      14 (20) '2.0'\n-2CF72 Extract OS            00 (0) 'MS-DOS'\n-2CF73 General Purpose Flag  0800 (2048)\n+2D3C8 CENTRAL HEADER #165   02014B50 (33639248)\n+2D3CC Created Zip Spec      14 (20) '2.0'\n+2D3CD Created OS            03 (3) 'Unix'\n+2D3CE Extract Zip Spec      14 (20) '2.0'\n+2D3CF Extract OS            00 (0) 'MS-DOS'\n+2D3D0 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2CF75 Compression Method    0008 (8) 'Deflated'\n-2CF77 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2CF7B CRC                   28DAA840 (685418560)\n-2CF7F Compressed Size       000002CF (719)\n-2CF83 Uncompressed Size     00000644 (1604)\n-2CF87 Filename Length       003A (58)\n-2CF89 Extra Length          0000 (0)\n-2CF8B Comment Length        0000 (0)\n-2CF8D Disk Start            0000 (0)\n-2CF8F Int File Attributes   0000 (0)\n+2D3D2 Compression Method    0008 (8) 'Deflated'\n+2D3D4 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2D3D8 CRC                   2A016775 (704735093)\n+2D3DC Compressed Size       000002CF (719)\n+2D3E0 Uncompressed Size     00000644 (1604)\n+2D3E4 Filename Length       003A (58)\n+2D3E6 Extra Length          0000 (0)\n+2D3E8 Comment Length        0000 (0)\n+2D3EA Disk Start            0000 (0)\n+2D3EC Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2CF91 Ext File Attributes   81A40000 (2175008768)\n+2D3EE Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2CF95 Local Header Offset   00024D9A (150938)\n-2CF99 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2D3F2 Local Header Offset   0002519A (151962)\n+2D3F6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2CF99: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2D3F6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2CFD3 CENTRAL HEADER #166   02014B50 (33639248)\n-2CFD7 Created Zip Spec      14 (20) '2.0'\n-2CFD8 Created OS            03 (3) 'Unix'\n-2CFD9 Extract Zip Spec      14 (20) '2.0'\n-2CFDA Extract OS            00 (0) 'MS-DOS'\n-2CFDB General Purpose Flag  0800 (2048)\n+2D430 CENTRAL HEADER #166   02014B50 (33639248)\n+2D434 Created Zip Spec      14 (20) '2.0'\n+2D435 Created OS            03 (3) 'Unix'\n+2D436 Extract Zip Spec      14 (20) '2.0'\n+2D437 Extract OS            00 (0) 'MS-DOS'\n+2D438 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2CFDD Compression Method    0008 (8) 'Deflated'\n-2CFDF Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2CFE3 CRC                   F1C0C0DB (4055941339)\n-2CFE7 Compressed Size       00000557 (1367)\n-2CFEB Uncompressed Size     00000D92 (3474)\n-2CFEF Filename Length       003A (58)\n-2CFF1 Extra Length          0000 (0)\n-2CFF3 Comment Length        0000 (0)\n-2CFF5 Disk Start            0000 (0)\n-2CFF7 Int File Attributes   0000 (0)\n+2D43A Compression Method    0008 (8) 'Deflated'\n+2D43C Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2D440 CRC                   200C4CF6 (537677046)\n+2D444 Compressed Size       00000560 (1376)\n+2D448 Uncompressed Size     00000D92 (3474)\n+2D44C Filename Length       003A (58)\n+2D44E Extra Length          0000 (0)\n+2D450 Comment Length        0000 (0)\n+2D452 Disk Start            0000 (0)\n+2D454 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2CFF9 Ext File Attributes   81A40000 (2175008768)\n+2D456 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2CFFD Local Header Offset   000250C1 (151745)\n-2D001 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2D45A Local Header Offset   000254C1 (152769)\n+2D45E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2D001: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2D45E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2D03B CENTRAL HEADER #167   02014B50 (33639248)\n-2D03F Created Zip Spec      14 (20) '2.0'\n-2D040 Created OS            03 (3) 'Unix'\n-2D041 Extract Zip Spec      14 (20) '2.0'\n-2D042 Extract OS            00 (0) 'MS-DOS'\n-2D043 General Purpose Flag  0800 (2048)\n+2D498 CENTRAL HEADER #167   02014B50 (33639248)\n+2D49C Created Zip Spec      14 (20) '2.0'\n+2D49D Created OS            03 (3) 'Unix'\n+2D49E Extract Zip Spec      14 (20) '2.0'\n+2D49F Extract OS            00 (0) 'MS-DOS'\n+2D4A0 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2D045 Compression Method    0008 (8) 'Deflated'\n-2D047 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2D04B CRC                   94826ABA (2491574970)\n-2D04F Compressed Size       000004D8 (1240)\n-2D053 Uncompressed Size     00000B8D (2957)\n-2D057 Filename Length       0038 (56)\n-2D059 Extra Length          0000 (0)\n-2D05B Comment Length        0000 (0)\n-2D05D Disk Start            0000 (0)\n-2D05F Int File Attributes   0000 (0)\n+2D4A2 Compression Method    0008 (8) 'Deflated'\n+2D4A4 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2D4A8 CRC                   BE79378C (3195615116)\n+2D4AC Compressed Size       000004DA (1242)\n+2D4B0 Uncompressed Size     00000B8D (2957)\n+2D4B4 Filename Length       0038 (56)\n+2D4B6 Extra Length          0000 (0)\n+2D4B8 Comment Length        0000 (0)\n+2D4BA Disk Start            0000 (0)\n+2D4BC Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2D061 Ext File Attributes   81A40000 (2175008768)\n+2D4BE Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2D065 Local Header Offset   00025670 (153200)\n-2D069 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2D4C2 Local Header Offset   00025A79 (154233)\n+2D4C6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2D069: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2D4C6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2D0A1 CENTRAL HEADER #168   02014B50 (33639248)\n-2D0A5 Created Zip Spec      14 (20) '2.0'\n-2D0A6 Created OS            03 (3) 'Unix'\n-2D0A7 Extract Zip Spec      14 (20) '2.0'\n-2D0A8 Extract OS            00 (0) 'MS-DOS'\n-2D0A9 General Purpose Flag  0800 (2048)\n+2D4FE CENTRAL HEADER #168   02014B50 (33639248)\n+2D502 Created Zip Spec      14 (20) '2.0'\n+2D503 Created OS            03 (3) 'Unix'\n+2D504 Extract Zip Spec      14 (20) '2.0'\n+2D505 Extract OS            00 (0) 'MS-DOS'\n+2D506 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2D0AB Compression Method    0008 (8) 'Deflated'\n-2D0AD Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2D0B1 CRC                   B2491236 (2991133238)\n-2D0B5 Compressed Size       00000586 (1414)\n-2D0B9 Uncompressed Size     00000EBF (3775)\n-2D0BD Filename Length       0036 (54)\n-2D0BF Extra Length          0000 (0)\n-2D0C1 Comment Length        0000 (0)\n-2D0C3 Disk Start            0000 (0)\n-2D0C5 Int File Attributes   0000 (0)\n+2D508 Compression Method    0008 (8) 'Deflated'\n+2D50A Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2D50E CRC                   44308AEF (1144031983)\n+2D512 Compressed Size       0000059C (1436)\n+2D516 Uncompressed Size     00000EC2 (3778)\n+2D51A Filename Length       0036 (54)\n+2D51C Extra Length          0000 (0)\n+2D51E Comment Length        0000 (0)\n+2D520 Disk Start            0000 (0)\n+2D522 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2D0C7 Ext File Attributes   81A40000 (2175008768)\n+2D524 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2D0CB Local Header Offset   00025B9E (154526)\n-2D0CF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2D528 Local Header Offset   00025FA9 (155561)\n+2D52C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2D0CF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2D52C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2D105 CENTRAL HEADER #169   02014B50 (33639248)\n-2D109 Created Zip Spec      14 (20) '2.0'\n-2D10A Created OS            03 (3) 'Unix'\n-2D10B Extract Zip Spec      14 (20) '2.0'\n-2D10C Extract OS            00 (0) 'MS-DOS'\n-2D10D General Purpose Flag  0800 (2048)\n+2D562 CENTRAL HEADER #169   02014B50 (33639248)\n+2D566 Created Zip Spec      14 (20) '2.0'\n+2D567 Created OS            03 (3) 'Unix'\n+2D568 Extract Zip Spec      14 (20) '2.0'\n+2D569 Extract OS            00 (0) 'MS-DOS'\n+2D56A General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2D10F Compression Method    0008 (8) 'Deflated'\n-2D111 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2D115 CRC                   432AC1B1 (1126875569)\n-2D119 Compressed Size       0000094A (2378)\n-2D11D Uncompressed Size     00001930 (6448)\n-2D121 Filename Length       0040 (64)\n-2D123 Extra Length          0000 (0)\n-2D125 Comment Length        0000 (0)\n-2D127 Disk Start            0000 (0)\n-2D129 Int File Attributes   0000 (0)\n+2D56C Compression Method    0008 (8) 'Deflated'\n+2D56E Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2D572 CRC                   45818429 (1166115881)\n+2D576 Compressed Size       0000094B (2379)\n+2D57A Uncompressed Size     00001930 (6448)\n+2D57E Filename Length       0040 (64)\n+2D580 Extra Length          0000 (0)\n+2D582 Comment Length        0000 (0)\n+2D584 Disk Start            0000 (0)\n+2D586 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2D12B Ext File Attributes   81A40000 (2175008768)\n+2D588 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2D12F Local Header Offset   00026178 (156024)\n-2D133 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2D58C Local Header Offset   00026599 (157081)\n+2D590 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2D133: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2D590: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2D173 CENTRAL HEADER #170   02014B50 (33639248)\n-2D177 Created Zip Spec      14 (20) '2.0'\n-2D178 Created OS            03 (3) 'Unix'\n-2D179 Extract Zip Spec      14 (20) '2.0'\n-2D17A Extract OS            00 (0) 'MS-DOS'\n-2D17B General Purpose Flag  0800 (2048)\n+2D5D0 CENTRAL HEADER #170   02014B50 (33639248)\n+2D5D4 Created Zip Spec      14 (20) '2.0'\n+2D5D5 Created OS            03 (3) 'Unix'\n+2D5D6 Extract Zip Spec      14 (20) '2.0'\n+2D5D7 Extract OS            00 (0) 'MS-DOS'\n+2D5D8 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2D17D Compression Method    0008 (8) 'Deflated'\n-2D17F Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2D183 CRC                   FF31AB03 (4281445123)\n-2D187 Compressed Size       00000312 (786)\n-2D18B Uncompressed Size     00000756 (1878)\n-2D18F Filename Length       004F (79)\n-2D191 Extra Length          0000 (0)\n-2D193 Comment Length        0000 (0)\n-2D195 Disk Start            0000 (0)\n-2D197 Int File Attributes   0000 (0)\n+2D5DA Compression Method    0008 (8) 'Deflated'\n+2D5DC Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2D5E0 CRC                   1EE41C12 (518265874)\n+2D5E4 Compressed Size       00000313 (787)\n+2D5E8 Uncompressed Size     00000756 (1878)\n+2D5EC Filename Length       004F (79)\n+2D5EE Extra Length          0000 (0)\n+2D5F0 Comment Length        0000 (0)\n+2D5F2 Disk Start            0000 (0)\n+2D5F4 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2D199 Ext File Attributes   81A40000 (2175008768)\n+2D5F6 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2D19D Local Header Offset   00026B20 (158496)\n-2D1A1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2D5FA Local Header Offset   00026F42 (159554)\n+2D5FE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2D1A1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2D5FE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2D1F0 CENTRAL HEADER #171   02014B50 (33639248)\n-2D1F4 Created Zip Spec      14 (20) '2.0'\n-2D1F5 Created OS            03 (3) 'Unix'\n-2D1F6 Extract Zip Spec      14 (20) '2.0'\n-2D1F7 Extract OS            00 (0) 'MS-DOS'\n-2D1F8 General Purpose Flag  0800 (2048)\n+2D64D CENTRAL HEADER #171   02014B50 (33639248)\n+2D651 Created Zip Spec      14 (20) '2.0'\n+2D652 Created OS            03 (3) 'Unix'\n+2D653 Extract Zip Spec      14 (20) '2.0'\n+2D654 Extract OS            00 (0) 'MS-DOS'\n+2D655 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2D1FA Compression Method    0008 (8) 'Deflated'\n-2D1FC Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2D200 CRC                   152F72C0 (355431104)\n-2D204 Compressed Size       00000420 (1056)\n-2D208 Uncompressed Size     00000C6F (3183)\n-2D20C Filename Length       004E (78)\n-2D20E Extra Length          0000 (0)\n-2D210 Comment Length        0000 (0)\n-2D212 Disk Start            0000 (0)\n-2D214 Int File Attributes   0000 (0)\n+2D657 Compression Method    0008 (8) 'Deflated'\n+2D659 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2D65D CRC                   C9942CBF (3381931199)\n+2D661 Compressed Size       00000427 (1063)\n+2D665 Uncompressed Size     00000C6F (3183)\n+2D669 Filename Length       004E (78)\n+2D66B Extra Length          0000 (0)\n+2D66D Comment Length        0000 (0)\n+2D66F Disk Start            0000 (0)\n+2D671 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2D216 Ext File Attributes   81A40000 (2175008768)\n+2D673 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2D21A Local Header Offset   00026E9F (159391)\n-2D21E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2D677 Local Header Offset   000272C2 (160450)\n+2D67B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2D21E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2D67B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2D26C CENTRAL HEADER #172   02014B50 (33639248)\n-2D270 Created Zip Spec      14 (20) '2.0'\n-2D271 Created OS            03 (3) 'Unix'\n-2D272 Extract Zip Spec      14 (20) '2.0'\n-2D273 Extract OS            00 (0) 'MS-DOS'\n-2D274 General Purpose Flag  0800 (2048)\n+2D6C9 CENTRAL HEADER #172   02014B50 (33639248)\n+2D6CD Created Zip Spec      14 (20) '2.0'\n+2D6CE Created OS            03 (3) 'Unix'\n+2D6CF Extract Zip Spec      14 (20) '2.0'\n+2D6D0 Extract OS            00 (0) 'MS-DOS'\n+2D6D1 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2D276 Compression Method    0008 (8) 'Deflated'\n-2D278 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2D27C CRC                   2A7311D9 (712184281)\n-2D280 Compressed Size       00000560 (1376)\n-2D284 Uncompressed Size     00000E47 (3655)\n-2D288 Filename Length       0038 (56)\n-2D28A Extra Length          0000 (0)\n-2D28C Comment Length        0000 (0)\n-2D28E Disk Start            0000 (0)\n-2D290 Int File Attributes   0000 (0)\n+2D6D3 Compression Method    0008 (8) 'Deflated'\n+2D6D5 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2D6D9 CRC                   45171DCC (1159142860)\n+2D6DD Compressed Size       0000056A (1386)\n+2D6E1 Uncompressed Size     00000E47 (3655)\n+2D6E5 Filename Length       0038 (56)\n+2D6E7 Extra Length          0000 (0)\n+2D6E9 Comment Length        0000 (0)\n+2D6EB Disk Start            0000 (0)\n+2D6ED Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2D292 Ext File Attributes   81A40000 (2175008768)\n+2D6EF Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2D296 Local Header Offset   0002732B (160555)\n-2D29A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2D6F3 Local Header Offset   00027755 (161621)\n+2D6F7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2D29A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2D6F7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2D2D2 CENTRAL HEADER #173   02014B50 (33639248)\n-2D2D6 Created Zip Spec      14 (20) '2.0'\n-2D2D7 Created OS            03 (3) 'Unix'\n-2D2D8 Extract Zip Spec      14 (20) '2.0'\n-2D2D9 Extract OS            00 (0) 'MS-DOS'\n-2D2DA General Purpose Flag  0800 (2048)\n+2D72F CENTRAL HEADER #173   02014B50 (33639248)\n+2D733 Created Zip Spec      14 (20) '2.0'\n+2D734 Created OS            03 (3) 'Unix'\n+2D735 Extract Zip Spec      14 (20) '2.0'\n+2D736 Extract OS            00 (0) 'MS-DOS'\n+2D737 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2D2DC Compression Method    0008 (8) 'Deflated'\n-2D2DE Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2D2E2 CRC                   DE91822C (3734077996)\n-2D2E6 Compressed Size       00000C49 (3145)\n-2D2EA Uncompressed Size     00002049 (8265)\n-2D2EE Filename Length       0045 (69)\n-2D2F0 Extra Length          0000 (0)\n-2D2F2 Comment Length        0000 (0)\n-2D2F4 Disk Start            0000 (0)\n-2D2F6 Int File Attributes   0000 (0)\n+2D739 Compression Method    0008 (8) 'Deflated'\n+2D73B Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2D73F CRC                   A7ECACA5 (2817305765)\n+2D743 Compressed Size       00000C6D (3181)\n+2D747 Uncompressed Size     0000205E (8286)\n+2D74B Filename Length       0045 (69)\n+2D74D Extra Length          0000 (0)\n+2D74F Comment Length        0000 (0)\n+2D751 Disk Start            0000 (0)\n+2D753 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2D2F8 Ext File Attributes   81A40000 (2175008768)\n+2D755 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2D2FC Local Header Offset   000278E1 (162017)\n-2D300 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2D759 Local Header Offset   00027D15 (163093)\n+2D75D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2D300: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2D75D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2D345 CENTRAL HEADER #174   02014B50 (33639248)\n-2D349 Created Zip Spec      14 (20) '2.0'\n-2D34A Created OS            03 (3) 'Unix'\n-2D34B Extract Zip Spec      14 (20) '2.0'\n-2D34C Extract OS            00 (0) 'MS-DOS'\n-2D34D General Purpose Flag  0800 (2048)\n+2D7A2 CENTRAL HEADER #174   02014B50 (33639248)\n+2D7A6 Created Zip Spec      14 (20) '2.0'\n+2D7A7 Created OS            03 (3) 'Unix'\n+2D7A8 Extract Zip Spec      14 (20) '2.0'\n+2D7A9 Extract OS            00 (0) 'MS-DOS'\n+2D7AA General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2D34F Compression Method    0008 (8) 'Deflated'\n-2D351 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2D355 CRC                   5D229F2A (1562550058)\n-2D359 Compressed Size       000001EC (492)\n-2D35D Uncompressed Size     00000363 (867)\n-2D361 Filename Length       0038 (56)\n-2D363 Extra Length          0000 (0)\n-2D365 Comment Length        0000 (0)\n-2D367 Disk Start            0000 (0)\n-2D369 Int File Attributes   0000 (0)\n+2D7AC Compression Method    0008 (8) 'Deflated'\n+2D7AE Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2D7B2 CRC                   0A993007 (177811463)\n+2D7B6 Compressed Size       000001EB (491)\n+2D7BA Uncompressed Size     00000363 (867)\n+2D7BE Filename Length       0038 (56)\n+2D7C0 Extra Length          0000 (0)\n+2D7C2 Comment Length        0000 (0)\n+2D7C4 Disk Start            0000 (0)\n+2D7C6 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2D36B Ext File Attributes   81A40000 (2175008768)\n+2D7C8 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2D36F Local Header Offset   0002858D (165261)\n-2D373 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2D7CC Local Header Offset   000289E5 (166373)\n+2D7D0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2D373: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2D7D0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2D3AB CENTRAL HEADER #175   02014B50 (33639248)\n-2D3AF Created Zip Spec      14 (20) '2.0'\n-2D3B0 Created OS            03 (3) 'Unix'\n-2D3B1 Extract Zip Spec      14 (20) '2.0'\n-2D3B2 Extract OS            00 (0) 'MS-DOS'\n-2D3B3 General Purpose Flag  0800 (2048)\n+2D808 CENTRAL HEADER #175   02014B50 (33639248)\n+2D80C Created Zip Spec      14 (20) '2.0'\n+2D80D Created OS            03 (3) 'Unix'\n+2D80E Extract Zip Spec      14 (20) '2.0'\n+2D80F Extract OS            00 (0) 'MS-DOS'\n+2D810 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2D3B5 Compression Method    0008 (8) 'Deflated'\n-2D3B7 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2D3BB CRC                   8C92B588 (2358424968)\n-2D3BF Compressed Size       000002D7 (727)\n-2D3C3 Uncompressed Size     00000612 (1554)\n-2D3C7 Filename Length       0043 (67)\n-2D3C9 Extra Length          0000 (0)\n-2D3CB Comment Length        0000 (0)\n-2D3CD Disk Start            0000 (0)\n-2D3CF Int File Attributes   0000 (0)\n+2D812 Compression Method    0008 (8) 'Deflated'\n+2D814 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2D818 CRC                   9122B4D3 (2434970835)\n+2D81C Compressed Size       000002DD (733)\n+2D820 Uncompressed Size     00000612 (1554)\n+2D824 Filename Length       0043 (67)\n+2D826 Extra Length          0000 (0)\n+2D828 Comment Length        0000 (0)\n+2D82A Disk Start            0000 (0)\n+2D82C Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2D3D1 Ext File Attributes   81A40000 (2175008768)\n+2D82E Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2D3D5 Local Header Offset   000287CF (165839)\n-2D3D9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2D832 Local Header Offset   00028C26 (166950)\n+2D836 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2D3D9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2D836: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2D41C CENTRAL HEADER #176   02014B50 (33639248)\n-2D420 Created Zip Spec      14 (20) '2.0'\n-2D421 Created OS            03 (3) 'Unix'\n-2D422 Extract Zip Spec      14 (20) '2.0'\n-2D423 Extract OS            00 (0) 'MS-DOS'\n-2D424 General Purpose Flag  0800 (2048)\n+2D879 CENTRAL HEADER #176   02014B50 (33639248)\n+2D87D Created Zip Spec      14 (20) '2.0'\n+2D87E Created OS            03 (3) 'Unix'\n+2D87F Extract Zip Spec      14 (20) '2.0'\n+2D880 Extract OS            00 (0) 'MS-DOS'\n+2D881 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2D426 Compression Method    0008 (8) 'Deflated'\n-2D428 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2D42C CRC                   093F422D (155140653)\n-2D430 Compressed Size       00000496 (1174)\n-2D434 Uncompressed Size     00001C0D (7181)\n-2D438 Filename Length       0037 (55)\n-2D43A Extra Length          0000 (0)\n-2D43C Comment Length        0000 (0)\n-2D43E Disk Start            0000 (0)\n-2D440 Int File Attributes   0000 (0)\n+2D883 Compression Method    0008 (8) 'Deflated'\n+2D885 Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2D889 CRC                   093F422D (155140653)\n+2D88D Compressed Size       00000496 (1174)\n+2D891 Uncompressed Size     00001C0D (7181)\n+2D895 Filename Length       0037 (55)\n+2D897 Extra Length          0000 (0)\n+2D899 Comment Length        0000 (0)\n+2D89B Disk Start            0000 (0)\n+2D89D Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2D442 Ext File Attributes   81A40000 (2175008768)\n+2D89F Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2D446 Local Header Offset   00028B07 (166663)\n-2D44A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2D8A3 Local Header Offset   00028F64 (167780)\n+2D8A7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2D44A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2D8A7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2D481 CENTRAL HEADER #177   02014B50 (33639248)\n-2D485 Created Zip Spec      14 (20) '2.0'\n-2D486 Created OS            03 (3) 'Unix'\n-2D487 Extract Zip Spec      14 (20) '2.0'\n-2D488 Extract OS            00 (0) 'MS-DOS'\n-2D489 General Purpose Flag  0800 (2048)\n+2D8DE CENTRAL HEADER #177   02014B50 (33639248)\n+2D8E2 Created Zip Spec      14 (20) '2.0'\n+2D8E3 Created OS            03 (3) 'Unix'\n+2D8E4 Extract Zip Spec      14 (20) '2.0'\n+2D8E5 Extract OS            00 (0) 'MS-DOS'\n+2D8E6 General Purpose Flag  0800 (2048)\n       [Bits 1-2]            0 'Normal Compression'\n       [Bit 11]              1 'Language Encoding'\n-2D48B Compression Method    0008 (8) 'Deflated'\n-2D48D Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n-2D491 CRC                   B35AC616 (3009070614)\n-2D495 Compressed Size       0000003B (59)\n-2D499 Uncompressed Size     00000043 (67)\n-2D49D Filename Length       003E (62)\n-2D49F Extra Length          0000 (0)\n-2D4A1 Comment Length        0000 (0)\n-2D4A3 Disk Start            0000 (0)\n-2D4A5 Int File Attributes   0000 (0)\n+2D8E8 Compression Method    0008 (8) 'Deflated'\n+2D8EA Modification Time     58337665 (1479767653) 'Fri Jan 19 14:51:10 2024'\n+2D8EE CRC                   B35AC616 (3009070614)\n+2D8F2 Compressed Size       0000003B (59)\n+2D8F6 Uncompressed Size     00000043 (67)\n+2D8FA Filename Length       003E (62)\n+2D8FC Extra Length          0000 (0)\n+2D8FE Comment Length        0000 (0)\n+2D900 Disk Start            0000 (0)\n+2D902 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n-2D4A7 Ext File Attributes   81A40000 (2175008768)\n+2D904 Ext File Attributes   81A40000 (2175008768)\n       [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n       [Bits 28-31]          08 (8) 'Regular File'\n-2D4AB Local Header Offset   00028FF2 (167922)\n-2D4AF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2D908 Local Header Offset   0002944F (169039)\n+2D90C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2D4AF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2D90C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2D4ED END CENTRAL HEADER    06054B50 (101010256)\n-2D4F1 Number of this disk   0000 (0)\n-2D4F3 Central Dir Disk no   0000 (0)\n-2D4F5 Entries in this disk  00B1 (177)\n-2D4F7 Total Entries         00B1 (177)\n-2D4F9 Size of Central Dir   00004464 (17508)\n-2D4FD Offset to Central Dir 00029089 (168073)\n-2D501 Comment Length        0000 (0)\n+2D94A END CENTRAL HEADER    06054B50 (101010256)\n+2D94E Number of this disk   0000 (0)\n+2D950 Central Dir Disk no   0000 (0)\n+2D952 Entries in this disk  00B1 (177)\n+2D954 Total Entries         00B1 (177)\n+2D956 Size of Central Dir   00004464 (17508)\n+2D95A Offset to Central Dir 000294E6 (169190)\n+2D95E Comment Length        0000 (0)\n #\n # Error Count: 43\n # Warning Count: 397\n #\n # Done\n"}, {"source1": "META-INF/MANIFEST.MF", "source2": "META-INF/MANIFEST.MF", "unified_diff": "@@ -1,4 +1,4 @@\n Manifest-Version: 1.0\r\n-Build-Jdk-Spec: 1.8\r\n Created-By: Maven JAR Plugin 3.3.0\r\n+Build-Jdk-Spec: 17\r\n \r\n"}, {"source1": "dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest.class", "source2": "dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -9,10 +9,10 @@\n     public static EnumTest valueOf(final String name) {\n         return Enum.valueOf(EnumTest.class, name);\n     }\n     \n     static {\n         EnumTest.VALUE1 = new EnumTest(\"VALUE1\", 0);\n         EnumTest.VALUE2 = new EnumTest(\"VALUE2\", 1);\n-        EnumTest.$VALUES = new EnumTest[] { EnumTest.VALUE1, EnumTest.VALUE2 };\n+        EnumTest.$VALUES = $values();\n     }\n }\n"}]}, {"source1": "dev/langchain4j/agent/tool/JsonSchemaPropertyTest.class", "source2": "dev/langchain4j/agent/tool/JsonSchemaPropertyTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,274 +1,274 @@\n-  SHA-256 checksum 7df9e10daba1edb8d2c2ed38622068c916880f42d6e66ac86a3709fd8939ac47\n+  SHA-256 checksum a544aa50445ec8b493cf66b40755e9991de6e23ffac5b08f0705f938979d39bc\n   Compiled from \"JsonSchemaPropertyTest.java\"\n class dev.langchain4j.agent.tool.JsonSchemaPropertyTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #68                         // dev/langchain4j/agent/tool/JsonSchemaPropertyTest\n-  super_class: #27                        // java/lang/Object\n+  this_class: #14                         // dev/langchain4j/agent/tool/JsonSchemaPropertyTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 12, attributes: 3\n Constant pool:\n-    #1 = Methodref          #27.#104      // java/lang/Object.\"<init>\":()V\n-    #2 = Fieldref           #19.#105      // dev/langchain4j/agent/tool/JsonSchemaProperty.STRING:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-    #3 = Methodref          #68.#106      // dev/langchain4j/agent/tool/JsonSchemaPropertyTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-    #4 = String             #107          // string\n-    #5 = Methodref          #19.#108      // dev/langchain4j/agent/tool/JsonSchemaProperty.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-    #6 = Methodref          #26.#109      // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-    #7 = Fieldref           #19.#110      // dev/langchain4j/agent/tool/JsonSchemaProperty.INTEGER:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-    #8 = String             #111          // integer\n-    #9 = Fieldref           #19.#112      // dev/langchain4j/agent/tool/JsonSchemaProperty.NUMBER:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-   #10 = String             #113          // number\n-   #11 = Fieldref           #19.#114      // dev/langchain4j/agent/tool/JsonSchemaProperty.OBJECT:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-   #12 = String             #115          // object\n-   #13 = Fieldref           #19.#116      // dev/langchain4j/agent/tool/JsonSchemaProperty.ARRAY:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-   #14 = String             #117          // array\n-   #15 = Fieldref           #19.#118      // dev/langchain4j/agent/tool/JsonSchemaProperty.BOOLEAN:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-   #16 = String             #119          // boolean\n-   #17 = Fieldref           #19.#120      // dev/langchain4j/agent/tool/JsonSchemaProperty.NULL:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-   #18 = String             #121          // null\n-   #19 = Class              #122          // dev/langchain4j/agent/tool/JsonSchemaProperty\n-   #20 = String             #123          // key\n-   #21 = String             #124          // value\n-   #22 = Methodref          #19.#125      // dev/langchain4j/agent/tool/JsonSchemaProperty.\"<init>\":(Ljava/lang/String;Ljava/lang/Object;)V\n-   #23 = Methodref          #67.#126      // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-   #24 = String             #127          // abc\n-   #25 = Methodref          #26.#128      // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #26 = Class              #129          // org/assertj/core/api/ObjectAssert\n-   #27 = Class              #130          // java/lang/Object\n-   #28 = Methodref          #26.#131      // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #29 = Methodref          #26.#132      // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #30 = Class              #133          // java/lang/String\n-   #31 = String             #134          // value1\n-   #32 = String             #135          // value2\n-   #33 = Methodref          #19.#136      // dev/langchain4j/agent/tool/JsonSchemaProperty.enums:([Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-   #34 = Methodref          #19.#137      // dev/langchain4j/agent/tool/JsonSchemaProperty.toString:()Ljava/lang/String;\n-   #35 = Methodref          #68.#138      // dev/langchain4j/agent/tool/JsonSchemaPropertyTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #36 = String             #139          // JsonSchemaProperty { key = \\\"key\\\", value = value }\n-   #37 = Methodref          #140.#141     // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #38 = String             #142          // JsonSchemaProperty { key = \\\"enum\\\", value = [value1, value2] }\n-   #39 = Methodref          #19.#143      // dev/langchain4j/agent/tool/JsonSchemaProperty.key:()Ljava/lang/String;\n-   #40 = String             #144          // type\n-   #41 = Methodref          #19.#145      // dev/langchain4j/agent/tool/JsonSchemaProperty.value:()Ljava/lang/Object;\n-   #42 = Methodref          #19.#146      // dev/langchain4j/agent/tool/JsonSchemaProperty.from:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-   #43 = Methodref          #19.#147      // dev/langchain4j/agent/tool/JsonSchemaProperty.property:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-   #44 = Methodref          #19.#148      // dev/langchain4j/agent/tool/JsonSchemaProperty.description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-   #45 = String             #149          // description\n-   #46 = String             #150          // enum\n-   #47 = Class              #151          // \"[Ljava/lang/String;\"\n-   #48 = Methodref          #152.#153     // java/util/Arrays.equals:([Ljava/lang/Object;[Ljava/lang/Object;)Z\n-   #49 = Methodref          #68.#154      // dev/langchain4j/agent/tool/JsonSchemaPropertyTest.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-   #50 = Methodref          #155.#156     // org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n-   #51 = Fieldref           #55.#157      // dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest.VALUE1:Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest;\n-   #52 = Fieldref           #55.#158      // dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest.VALUE2:Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest;\n-   #53 = Methodref          #19.#159      // dev/langchain4j/agent/tool/JsonSchemaProperty.enums:([Ljava/lang/Object;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-   #54 = Class              #160          // \"[Ljava/lang/Object;\"\n-   #55 = Class              #161          // dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest\n-   #56 = Methodref          #19.#162      // dev/langchain4j/agent/tool/JsonSchemaProperty.enums:(Ljava/lang/Class;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-   #57 = Class              #163          // java/lang/RuntimeException\n-   #58 = Methodref          #68.#164      // dev/langchain4j/agent/tool/JsonSchemaPropertyTest.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-   #59 = InvokeDynamic      #0:#169       // #0:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #60 = Methodref          #170.#171     // org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #61 = String             #172          // should be enum\n-   #62 = Methodref          #173.#174     // org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #63 = InvokeDynamic      #1:#169       // #1:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #64 = Methodref          #19.#176      // dev/langchain4j/agent/tool/JsonSchemaProperty.items:(Ldev/langchain4j/agent/tool/JsonSchemaProperty;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-   #65 = String             #177          // items\n-   #66 = Methodref          #178.#179     // java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-   #67 = Class              #180          // java/lang/Integer\n-   #68 = Class              #181          // dev/langchain4j/agent/tool/JsonSchemaPropertyTest\n-   #69 = Class              #182          // org/assertj/core/api/WithAssertions\n-   #70 = Utf8               EnumTest\n-   #71 = Utf8               InnerClasses\n-   #72 = Utf8               <init>\n-   #73 = Utf8               ()V\n-   #74 = Utf8               Code\n-   #75 = Utf8               LineNumberTable\n-   #76 = Utf8               LocalVariableTable\n-   #77 = Utf8               this\n-   #78 = Utf8               Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest;\n-   #79 = Utf8               test_common\n-   #80 = Utf8               RuntimeVisibleAnnotations\n-   #81 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #82 = Utf8               test_equals_hash\n-   #83 = Utf8               enum1\n-   #84 = Utf8               Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-   #85 = Utf8               enum2\n-   #86 = Utf8               prop1\n-   #87 = Utf8               prop2\n-   #88 = Utf8               prop3\n-   #89 = Utf8               prop4\n-   #90 = Utf8               test_toString\n-   #91 = Utf8               prop\n-   #92 = Utf8               test_type\n-   #93 = Utf8               test_from\n-   #94 = Utf8               test_property\n-   #95 = Utf8               test_description\n-   #96 = Utf8               test_enums\n-   #97 = Utf8               test_items\n-   #98 = Utf8               lambda$test_enums$1\n-   #99 = Utf8               Exceptions\n-  #100 = Class              #183          // java/lang/Throwable\n-  #101 = Utf8               lambda$test_enums$0\n-  #102 = Utf8               SourceFile\n-  #103 = Utf8               JsonSchemaPropertyTest.java\n-  #104 = NameAndType        #72:#73       // \"<init>\":()V\n-  #105 = NameAndType        #184:#84      // STRING:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-  #106 = NameAndType        #185:#186     // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #107 = Utf8               string\n-  #108 = NameAndType        #144:#187     // type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-  #109 = NameAndType        #188:#189     // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #110 = NameAndType        #190:#84      // INTEGER:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-  #111 = Utf8               integer\n-  #112 = NameAndType        #191:#84      // NUMBER:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-  #113 = Utf8               number\n-  #114 = NameAndType        #192:#84      // OBJECT:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-  #115 = Utf8               object\n-  #116 = NameAndType        #193:#84      // ARRAY:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-  #117 = Utf8               array\n-  #118 = NameAndType        #194:#84      // BOOLEAN:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-  #119 = Utf8               boolean\n-  #120 = NameAndType        #195:#84      // NULL:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-  #121 = Utf8               null\n-  #122 = Utf8               dev/langchain4j/agent/tool/JsonSchemaProperty\n-  #123 = Utf8               key\n-  #124 = Utf8               value\n-  #125 = NameAndType        #72:#196      // \"<init>\":(Ljava/lang/String;Ljava/lang/Object;)V\n-  #126 = NameAndType        #197:#198     // valueOf:(I)Ljava/lang/Integer;\n-  #127 = Utf8               abc\n-  #128 = NameAndType        #199:#189     // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #129 = Utf8               org/assertj/core/api/ObjectAssert\n-  #130 = Utf8               java/lang/Object\n-  #131 = NameAndType        #200:#189     // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #132 = NameAndType        #201:#189     // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #133 = Utf8               java/lang/String\n-  #134 = Utf8               value1\n-  #135 = Utf8               value2\n-  #136 = NameAndType        #202:#203     // enums:([Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-  #137 = NameAndType        #204:#205     // toString:()Ljava/lang/String;\n-  #138 = NameAndType        #185:#206     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #139 = Utf8               JsonSchemaProperty { key = \\\"key\\\", value = value }\n-  #140 = Class              #207          // org/assertj/core/api/AbstractStringAssert\n-  #141 = NameAndType        #188:#206     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #142 = Utf8               JsonSchemaProperty { key = \\\"enum\\\", value = [value1, value2] }\n-  #143 = NameAndType        #123:#205     // key:()Ljava/lang/String;\n-  #144 = Utf8               type\n-  #145 = NameAndType        #124:#208     // value:()Ljava/lang/Object;\n-  #146 = NameAndType        #209:#210     // from:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-  #147 = NameAndType        #211:#210     // property:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-  #148 = NameAndType        #149:#187     // description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-  #149 = Utf8               description\n-  #150 = Utf8               enum\n-  #151 = Utf8               [Ljava/lang/String;\n-  #152 = Class              #212          // java/util/Arrays\n-  #153 = NameAndType        #213:#214     // equals:([Ljava/lang/Object;[Ljava/lang/Object;)Z\n-  #154 = NameAndType        #185:#215     // assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-  #155 = Class              #216          // org/assertj/core/api/AbstractBooleanAssert\n-  #156 = NameAndType        #217:#218     // isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n-  #157 = NameAndType        #219:#220     // VALUE1:Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest;\n-  #158 = NameAndType        #221:#220     // VALUE2:Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest;\n-  #159 = NameAndType        #202:#222     // enums:([Ljava/lang/Object;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-  #160 = Utf8               [Ljava/lang/Object;\n-  #161 = Utf8               dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest\n-  #162 = NameAndType        #202:#223     // enums:(Ljava/lang/Class;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-  #163 = Utf8               java/lang/RuntimeException\n-  #164 = NameAndType        #224:#225     // assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-  #165 = Utf8               BootstrapMethods\n-  #166 = MethodHandle       6:#226        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #167 = MethodType         #73           //  ()V\n-  #168 = MethodHandle       6:#227        // REF_invokeStatic dev/langchain4j/agent/tool/JsonSchemaPropertyTest.lambda$test_enums$0:()V\n-  #169 = NameAndType        #228:#231     // call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-  #170 = Class              #232          // org/assertj/core/api/ThrowableTypeAssert\n-  #171 = NameAndType        #233:#234     // isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #172 = Utf8               should be enum\n-  #173 = Class              #235          // org/assertj/core/api/ThrowableAssertAlternative\n-  #174 = NameAndType        #236:#237     // withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #175 = MethodHandle       6:#238        // REF_invokeStatic dev/langchain4j/agent/tool/JsonSchemaPropertyTest.lambda$test_enums$1:()V\n-  #176 = NameAndType        #177:#239     // items:(Ldev/langchain4j/agent/tool/JsonSchemaProperty;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-  #177 = Utf8               items\n-  #178 = Class              #240          // java/util/Collections\n-  #179 = NameAndType        #241:#242     // singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-  #180 = Utf8               java/lang/Integer\n-  #181 = Utf8               dev/langchain4j/agent/tool/JsonSchemaPropertyTest\n-  #182 = Utf8               org/assertj/core/api/WithAssertions\n-  #183 = Utf8               java/lang/Throwable\n-  #184 = Utf8               STRING\n-  #185 = Utf8               assertThat\n-  #186 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #187 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-  #188 = Utf8               isEqualTo\n-  #189 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #190 = Utf8               INTEGER\n-  #191 = Utf8               NUMBER\n-  #192 = Utf8               OBJECT\n-  #193 = Utf8               ARRAY\n-  #194 = Utf8               BOOLEAN\n-  #195 = Utf8               NULL\n-  #196 = Utf8               (Ljava/lang/String;Ljava/lang/Object;)V\n-  #197 = Utf8               valueOf\n-  #198 = Utf8               (I)Ljava/lang/Integer;\n-  #199 = Utf8               isNotEqualTo\n-  #200 = Utf8               hasSameHashCodeAs\n-  #201 = Utf8               doesNotHaveSameHashCodeAs\n-  #202 = Utf8               enums\n-  #203 = Utf8               ([Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-  #204 = Utf8               toString\n-  #205 = Utf8               ()Ljava/lang/String;\n-  #206 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #207 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #208 = Utf8               ()Ljava/lang/Object;\n-  #209 = Utf8               from\n-  #210 = Utf8               (Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-  #211 = Utf8               property\n-  #212 = Utf8               java/util/Arrays\n-  #213 = Utf8               equals\n-  #214 = Utf8               ([Ljava/lang/Object;[Ljava/lang/Object;)Z\n-  #215 = Utf8               (Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-  #216 = Utf8               org/assertj/core/api/AbstractBooleanAssert\n-  #217 = Utf8               isTrue\n-  #218 = Utf8               ()Lorg/assertj/core/api/AbstractBooleanAssert;\n-  #219 = Utf8               VALUE1\n-  #220 = Utf8               Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest;\n-  #221 = Utf8               VALUE2\n-  #222 = Utf8               ([Ljava/lang/Object;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-  #223 = Utf8               (Ljava/lang/Class;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-  #224 = Utf8               assertThatExceptionOfType\n-  #225 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-  #226 = Methodref          #243.#244     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #227 = Methodref          #68.#245      // dev/langchain4j/agent/tool/JsonSchemaPropertyTest.lambda$test_enums$0:()V\n-  #228 = Utf8               call\n-  #229 = Class              #247          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #230 = Utf8               ThrowingCallable\n-  #231 = Utf8               ()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-  #232 = Utf8               org/assertj/core/api/ThrowableTypeAssert\n-  #233 = Utf8               isThrownBy\n-  #234 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #235 = Utf8               org/assertj/core/api/ThrowableAssertAlternative\n-  #236 = Utf8               withMessageContaining\n-  #237 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #238 = Methodref          #68.#248      // dev/langchain4j/agent/tool/JsonSchemaPropertyTest.lambda$test_enums$1:()V\n-  #239 = Utf8               (Ldev/langchain4j/agent/tool/JsonSchemaProperty;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-  #240 = Utf8               java/util/Collections\n-  #241 = Utf8               singletonMap\n-  #242 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-  #243 = Class              #249          // java/lang/invoke/LambdaMetafactory\n-  #244 = NameAndType        #250:#253     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #245 = NameAndType        #101:#73      // lambda$test_enums$0:()V\n-  #246 = Class              #254          // org/assertj/core/api/ThrowableAssert\n-  #247 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #248 = NameAndType        #98:#73       // lambda$test_enums$1:()V\n-  #249 = Utf8               java/lang/invoke/LambdaMetafactory\n-  #250 = Utf8               metafactory\n-  #251 = Class              #256          // java/lang/invoke/MethodHandles$Lookup\n-  #252 = Utf8               Lookup\n-  #253 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #254 = Utf8               org/assertj/core/api/ThrowableAssert\n-  #255 = Class              #257          // java/lang/invoke/MethodHandles\n-  #256 = Utf8               java/lang/invoke/MethodHandles$Lookup\n-  #257 = Utf8               java/lang/invoke/MethodHandles\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Fieldref           #8.#9         // dev/langchain4j/agent/tool/JsonSchemaProperty.STRING:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+    #8 = Class              #10           // dev/langchain4j/agent/tool/JsonSchemaProperty\n+    #9 = NameAndType        #11:#12       // STRING:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+   #10 = Utf8               dev/langchain4j/agent/tool/JsonSchemaProperty\n+   #11 = Utf8               STRING\n+   #12 = Utf8               Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+   #13 = Methodref          #14.#15       // dev/langchain4j/agent/tool/JsonSchemaPropertyTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #14 = Class              #16           // dev/langchain4j/agent/tool/JsonSchemaPropertyTest\n+   #15 = NameAndType        #17:#18       // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #16 = Utf8               dev/langchain4j/agent/tool/JsonSchemaPropertyTest\n+   #17 = Utf8               assertThat\n+   #18 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #19 = String             #20           // string\n+   #20 = Utf8               string\n+   #21 = Methodref          #8.#22        // dev/langchain4j/agent/tool/JsonSchemaProperty.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+   #22 = NameAndType        #23:#24       // type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+   #23 = Utf8               type\n+   #24 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+   #25 = Methodref          #26.#27       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #26 = Class              #28           // org/assertj/core/api/ObjectAssert\n+   #27 = NameAndType        #29:#30       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #28 = Utf8               org/assertj/core/api/ObjectAssert\n+   #29 = Utf8               isEqualTo\n+   #30 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #31 = Fieldref           #8.#32        // dev/langchain4j/agent/tool/JsonSchemaProperty.INTEGER:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+   #32 = NameAndType        #33:#12       // INTEGER:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+   #33 = Utf8               INTEGER\n+   #34 = String             #35           // integer\n+   #35 = Utf8               integer\n+   #36 = Fieldref           #8.#37        // dev/langchain4j/agent/tool/JsonSchemaProperty.NUMBER:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+   #37 = NameAndType        #38:#12       // NUMBER:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+   #38 = Utf8               NUMBER\n+   #39 = String             #40           // number\n+   #40 = Utf8               number\n+   #41 = Fieldref           #8.#42        // dev/langchain4j/agent/tool/JsonSchemaProperty.OBJECT:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+   #42 = NameAndType        #43:#12       // OBJECT:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+   #43 = Utf8               OBJECT\n+   #44 = String             #45           // object\n+   #45 = Utf8               object\n+   #46 = Fieldref           #8.#47        // dev/langchain4j/agent/tool/JsonSchemaProperty.ARRAY:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+   #47 = NameAndType        #48:#12       // ARRAY:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+   #48 = Utf8               ARRAY\n+   #49 = String             #50           // array\n+   #50 = Utf8               array\n+   #51 = Fieldref           #8.#52        // dev/langchain4j/agent/tool/JsonSchemaProperty.BOOLEAN:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+   #52 = NameAndType        #53:#12       // BOOLEAN:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+   #53 = Utf8               BOOLEAN\n+   #54 = String             #55           // boolean\n+   #55 = Utf8               boolean\n+   #56 = Fieldref           #8.#57        // dev/langchain4j/agent/tool/JsonSchemaProperty.NULL:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+   #57 = NameAndType        #58:#12       // NULL:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+   #58 = Utf8               NULL\n+   #59 = String             #60           // null\n+   #60 = Utf8               null\n+   #61 = String             #62           // key\n+   #62 = Utf8               key\n+   #63 = String             #64           // value\n+   #64 = Utf8               value\n+   #65 = Methodref          #8.#66        // dev/langchain4j/agent/tool/JsonSchemaProperty.\"<init>\":(Ljava/lang/String;Ljava/lang/Object;)V\n+   #66 = NameAndType        #5:#67        // \"<init>\":(Ljava/lang/String;Ljava/lang/Object;)V\n+   #67 = Utf8               (Ljava/lang/String;Ljava/lang/Object;)V\n+   #68 = Methodref          #69.#70       // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+   #69 = Class              #71           // java/lang/Integer\n+   #70 = NameAndType        #72:#73       // valueOf:(I)Ljava/lang/Integer;\n+   #71 = Utf8               java/lang/Integer\n+   #72 = Utf8               valueOf\n+   #73 = Utf8               (I)Ljava/lang/Integer;\n+   #74 = String             #75           // abc\n+   #75 = Utf8               abc\n+   #76 = Methodref          #26.#77       // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #77 = NameAndType        #78:#30       // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #78 = Utf8               isNotEqualTo\n+   #79 = Methodref          #26.#80       // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #80 = NameAndType        #81:#30       // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #81 = Utf8               hasSameHashCodeAs\n+   #82 = Methodref          #26.#83       // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #83 = NameAndType        #84:#30       // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #84 = Utf8               doesNotHaveSameHashCodeAs\n+   #85 = Class              #86           // java/lang/String\n+   #86 = Utf8               java/lang/String\n+   #87 = String             #88           // value1\n+   #88 = Utf8               value1\n+   #89 = String             #90           // value2\n+   #90 = Utf8               value2\n+   #91 = Methodref          #8.#92        // dev/langchain4j/agent/tool/JsonSchemaProperty.enums:([Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+   #92 = NameAndType        #93:#94       // enums:([Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+   #93 = Utf8               enums\n+   #94 = Utf8               ([Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+   #95 = Methodref          #8.#96        // dev/langchain4j/agent/tool/JsonSchemaProperty.toString:()Ljava/lang/String;\n+   #96 = NameAndType        #97:#98       // toString:()Ljava/lang/String;\n+   #97 = Utf8               toString\n+   #98 = Utf8               ()Ljava/lang/String;\n+   #99 = Methodref          #14.#100      // dev/langchain4j/agent/tool/JsonSchemaPropertyTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #100 = NameAndType        #17:#101      // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #101 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #102 = String             #103          // JsonSchemaProperty { key = \\\"key\\\", value = value }\n+  #103 = Utf8               JsonSchemaProperty { key = \\\"key\\\", value = value }\n+  #104 = Methodref          #105.#106     // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #105 = Class              #107          // org/assertj/core/api/AbstractStringAssert\n+  #106 = NameAndType        #29:#101      // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #107 = Utf8               org/assertj/core/api/AbstractStringAssert\n+  #108 = String             #109          // JsonSchemaProperty { key = \\\"enum\\\", value = [value1, value2] }\n+  #109 = Utf8               JsonSchemaProperty { key = \\\"enum\\\", value = [value1, value2] }\n+  #110 = Methodref          #8.#111       // dev/langchain4j/agent/tool/JsonSchemaProperty.key:()Ljava/lang/String;\n+  #111 = NameAndType        #62:#98       // key:()Ljava/lang/String;\n+  #112 = String             #23           // type\n+  #113 = Methodref          #8.#114       // dev/langchain4j/agent/tool/JsonSchemaProperty.value:()Ljava/lang/Object;\n+  #114 = NameAndType        #64:#115      // value:()Ljava/lang/Object;\n+  #115 = Utf8               ()Ljava/lang/Object;\n+  #116 = Methodref          #8.#117       // dev/langchain4j/agent/tool/JsonSchemaProperty.from:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+  #117 = NameAndType        #118:#119     // from:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+  #118 = Utf8               from\n+  #119 = Utf8               (Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+  #120 = Methodref          #8.#121       // dev/langchain4j/agent/tool/JsonSchemaProperty.property:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+  #121 = NameAndType        #122:#119     // property:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+  #122 = Utf8               property\n+  #123 = Methodref          #8.#124       // dev/langchain4j/agent/tool/JsonSchemaProperty.description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+  #124 = NameAndType        #125:#24      // description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+  #125 = Utf8               description\n+  #126 = String             #125          // description\n+  #127 = String             #128          // enum\n+  #128 = Utf8               enum\n+  #129 = Class              #130          // \"[Ljava/lang/String;\"\n+  #130 = Utf8               [Ljava/lang/String;\n+  #131 = Methodref          #132.#133     // java/util/Arrays.equals:([Ljava/lang/Object;[Ljava/lang/Object;)Z\n+  #132 = Class              #134          // java/util/Arrays\n+  #133 = NameAndType        #135:#136     // equals:([Ljava/lang/Object;[Ljava/lang/Object;)Z\n+  #134 = Utf8               java/util/Arrays\n+  #135 = Utf8               equals\n+  #136 = Utf8               ([Ljava/lang/Object;[Ljava/lang/Object;)Z\n+  #137 = Methodref          #14.#138      // dev/langchain4j/agent/tool/JsonSchemaPropertyTest.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+  #138 = NameAndType        #17:#139      // assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+  #139 = Utf8               (Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+  #140 = Methodref          #141.#142     // org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+  #141 = Class              #143          // org/assertj/core/api/AbstractBooleanAssert\n+  #142 = NameAndType        #144:#145     // isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+  #143 = Utf8               org/assertj/core/api/AbstractBooleanAssert\n+  #144 = Utf8               isTrue\n+  #145 = Utf8               ()Lorg/assertj/core/api/AbstractBooleanAssert;\n+  #146 = Fieldref           #147.#148     // dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest.VALUE1:Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest;\n+  #147 = Class              #149          // dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest\n+  #148 = NameAndType        #150:#151     // VALUE1:Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest;\n+  #149 = Utf8               dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest\n+  #150 = Utf8               VALUE1\n+  #151 = Utf8               Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest;\n+  #152 = Fieldref           #147.#153     // dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest.VALUE2:Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest;\n+  #153 = NameAndType        #154:#151     // VALUE2:Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest;\n+  #154 = Utf8               VALUE2\n+  #155 = Methodref          #8.#156       // dev/langchain4j/agent/tool/JsonSchemaProperty.enums:([Ljava/lang/Object;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+  #156 = NameAndType        #93:#157      // enums:([Ljava/lang/Object;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+  #157 = Utf8               ([Ljava/lang/Object;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+  #158 = Class              #159          // \"[Ljava/lang/Object;\"\n+  #159 = Utf8               [Ljava/lang/Object;\n+  #160 = Methodref          #8.#161       // dev/langchain4j/agent/tool/JsonSchemaProperty.enums:(Ljava/lang/Class;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+  #161 = NameAndType        #93:#162      // enums:(Ljava/lang/Class;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+  #162 = Utf8               (Ljava/lang/Class;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+  #163 = Class              #164          // java/lang/RuntimeException\n+  #164 = Utf8               java/lang/RuntimeException\n+  #165 = Methodref          #14.#166      // dev/langchain4j/agent/tool/JsonSchemaPropertyTest.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+  #166 = NameAndType        #167:#168     // assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+  #167 = Utf8               assertThatExceptionOfType\n+  #168 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+  #169 = InvokeDynamic      #0:#170       // #0:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+  #170 = NameAndType        #171:#172     // call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+  #171 = Utf8               call\n+  #172 = Utf8               ()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+  #173 = Methodref          #174.#175     // org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+  #174 = Class              #176          // org/assertj/core/api/ThrowableTypeAssert\n+  #175 = NameAndType        #177:#178     // isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+  #176 = Utf8               org/assertj/core/api/ThrowableTypeAssert\n+  #177 = Utf8               isThrownBy\n+  #178 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+  #179 = String             #180          // should be enum\n+  #180 = Utf8               should be enum\n+  #181 = Methodref          #182.#183     // org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+  #182 = Class              #184          // org/assertj/core/api/ThrowableAssertAlternative\n+  #183 = NameAndType        #185:#186     // withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+  #184 = Utf8               org/assertj/core/api/ThrowableAssertAlternative\n+  #185 = Utf8               withMessageContaining\n+  #186 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+  #187 = InvokeDynamic      #1:#170       // #1:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+  #188 = Methodref          #8.#189       // dev/langchain4j/agent/tool/JsonSchemaProperty.items:(Ldev/langchain4j/agent/tool/JsonSchemaProperty;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+  #189 = NameAndType        #190:#191     // items:(Ldev/langchain4j/agent/tool/JsonSchemaProperty;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+  #190 = Utf8               items\n+  #191 = Utf8               (Ldev/langchain4j/agent/tool/JsonSchemaProperty;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+  #192 = String             #190          // items\n+  #193 = Methodref          #194.#195     // java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+  #194 = Class              #196          // java/util/Collections\n+  #195 = NameAndType        #197:#198     // singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+  #196 = Utf8               java/util/Collections\n+  #197 = Utf8               singletonMap\n+  #198 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+  #199 = Class              #200          // org/assertj/core/api/WithAssertions\n+  #200 = Utf8               org/assertj/core/api/WithAssertions\n+  #201 = Utf8               Code\n+  #202 = Utf8               LineNumberTable\n+  #203 = Utf8               LocalVariableTable\n+  #204 = Utf8               this\n+  #205 = Utf8               Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest;\n+  #206 = Utf8               test_common\n+  #207 = Utf8               RuntimeVisibleAnnotations\n+  #208 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #209 = Utf8               test_equals_hash\n+  #210 = Utf8               enum1\n+  #211 = Utf8               enum2\n+  #212 = Utf8               prop1\n+  #213 = Utf8               prop2\n+  #214 = Utf8               prop3\n+  #215 = Utf8               prop4\n+  #216 = Utf8               test_toString\n+  #217 = Utf8               prop\n+  #218 = Utf8               test_type\n+  #219 = Utf8               test_from\n+  #220 = Utf8               test_property\n+  #221 = Utf8               test_description\n+  #222 = Utf8               test_enums\n+  #223 = Utf8               test_items\n+  #224 = Utf8               lambda$test_enums$1\n+  #225 = Utf8               Exceptions\n+  #226 = Class              #227          // java/lang/Throwable\n+  #227 = Utf8               java/lang/Throwable\n+  #228 = Utf8               lambda$test_enums$0\n+  #229 = Utf8               SourceFile\n+  #230 = Utf8               JsonSchemaPropertyTest.java\n+  #231 = Utf8               BootstrapMethods\n+  #232 = MethodHandle       6:#233        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #233 = Methodref          #234.#235     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #234 = Class              #236          // java/lang/invoke/LambdaMetafactory\n+  #235 = NameAndType        #237:#238     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #236 = Utf8               java/lang/invoke/LambdaMetafactory\n+  #237 = Utf8               metafactory\n+  #238 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #239 = MethodType         #6            //  ()V\n+  #240 = MethodHandle       6:#241        // REF_invokeStatic dev/langchain4j/agent/tool/JsonSchemaPropertyTest.lambda$test_enums$0:()V\n+  #241 = Methodref          #14.#242      // dev/langchain4j/agent/tool/JsonSchemaPropertyTest.lambda$test_enums$0:()V\n+  #242 = NameAndType        #228:#6       // lambda$test_enums$0:()V\n+  #243 = MethodHandle       6:#244        // REF_invokeStatic dev/langchain4j/agent/tool/JsonSchemaPropertyTest.lambda$test_enums$1:()V\n+  #244 = Methodref          #14.#245      // dev/langchain4j/agent/tool/JsonSchemaPropertyTest.lambda$test_enums$1:()V\n+  #245 = NameAndType        #224:#6       // lambda$test_enums$1:()V\n+  #246 = Utf8               InnerClasses\n+  #247 = Utf8               EnumTest\n+  #248 = Class              #249          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n+  #249 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n+  #250 = Class              #251          // org/assertj/core/api/ThrowableAssert\n+  #251 = Utf8               org/assertj/core/api/ThrowableAssert\n+  #252 = Utf8               ThrowingCallable\n+  #253 = Class              #254          // java/lang/invoke/MethodHandles$Lookup\n+  #254 = Utf8               java/lang/invoke/MethodHandles$Lookup\n+  #255 = Class              #256          // java/lang/invoke/MethodHandles\n+  #256 = Utf8               java/lang/invoke/MethodHandles\n+  #257 = Utf8               Lookup\n {\n   dev.langchain4j.agent.tool.JsonSchemaPropertyTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -282,61 +282,61 @@\n \n   public void test_common();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=1, args_size=1\n          0: aload_0\n-         1: getstatic     #2                  // Field dev/langchain4j/agent/tool/JsonSchemaProperty.STRING:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-         4: invokevirtual #3                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-         7: ldc           #4                  // String string\n-         9: invokestatic  #5                  // Method dev/langchain4j/agent/tool/JsonSchemaProperty.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-        12: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+         1: getstatic     #7                  // Field dev/langchain4j/agent/tool/JsonSchemaProperty.STRING:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+         4: invokevirtual #13                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+         7: ldc           #19                 // String string\n+         9: invokestatic  #21                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+        12: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         15: pop\n         16: aload_0\n-        17: getstatic     #7                  // Field dev/langchain4j/agent/tool/JsonSchemaProperty.INTEGER:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-        20: invokevirtual #3                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        23: ldc           #8                  // String integer\n-        25: invokestatic  #5                  // Method dev/langchain4j/agent/tool/JsonSchemaProperty.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-        28: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        17: getstatic     #31                 // Field dev/langchain4j/agent/tool/JsonSchemaProperty.INTEGER:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+        20: invokevirtual #13                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        23: ldc           #34                 // String integer\n+        25: invokestatic  #21                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+        28: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         31: pop\n         32: aload_0\n-        33: getstatic     #9                  // Field dev/langchain4j/agent/tool/JsonSchemaProperty.NUMBER:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-        36: invokevirtual #3                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        39: ldc           #10                 // String number\n-        41: invokestatic  #5                  // Method dev/langchain4j/agent/tool/JsonSchemaProperty.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-        44: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        33: getstatic     #36                 // Field dev/langchain4j/agent/tool/JsonSchemaProperty.NUMBER:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+        36: invokevirtual #13                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        39: ldc           #39                 // String number\n+        41: invokestatic  #21                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+        44: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         47: pop\n         48: aload_0\n-        49: getstatic     #11                 // Field dev/langchain4j/agent/tool/JsonSchemaProperty.OBJECT:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-        52: invokevirtual #3                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        55: ldc           #12                 // String object\n-        57: invokestatic  #5                  // Method dev/langchain4j/agent/tool/JsonSchemaProperty.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-        60: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        49: getstatic     #41                 // Field dev/langchain4j/agent/tool/JsonSchemaProperty.OBJECT:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+        52: invokevirtual #13                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        55: ldc           #44                 // String object\n+        57: invokestatic  #21                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+        60: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         63: pop\n         64: aload_0\n-        65: getstatic     #13                 // Field dev/langchain4j/agent/tool/JsonSchemaProperty.ARRAY:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-        68: invokevirtual #3                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        71: ldc           #14                 // String array\n-        73: invokestatic  #5                  // Method dev/langchain4j/agent/tool/JsonSchemaProperty.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-        76: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        65: getstatic     #46                 // Field dev/langchain4j/agent/tool/JsonSchemaProperty.ARRAY:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+        68: invokevirtual #13                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        71: ldc           #49                 // String array\n+        73: invokestatic  #21                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+        76: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         79: pop\n         80: aload_0\n-        81: getstatic     #15                 // Field dev/langchain4j/agent/tool/JsonSchemaProperty.BOOLEAN:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-        84: invokevirtual #3                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        87: ldc           #16                 // String boolean\n-        89: invokestatic  #5                  // Method dev/langchain4j/agent/tool/JsonSchemaProperty.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-        92: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        81: getstatic     #51                 // Field dev/langchain4j/agent/tool/JsonSchemaProperty.BOOLEAN:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+        84: invokevirtual #13                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        87: ldc           #54                 // String boolean\n+        89: invokestatic  #21                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+        92: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         95: pop\n         96: aload_0\n-        97: getstatic     #17                 // Field dev/langchain4j/agent/tool/JsonSchemaProperty.NULL:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-       100: invokevirtual #3                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-       103: ldc           #18                 // String null\n-       105: invokestatic  #5                  // Method dev/langchain4j/agent/tool/JsonSchemaProperty.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-       108: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        97: getstatic     #56                 // Field dev/langchain4j/agent/tool/JsonSchemaProperty.NULL:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+       100: invokevirtual #13                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       103: ldc           #59                 // String null\n+       105: invokestatic  #21                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+       108: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        111: pop\n        112: return\n       LineNumberTable:\n         line 13: 0\n         line 14: 9\n         line 15: 16\n         line 16: 25\n@@ -351,120 +351,120 @@\n         line 25: 96\n         line 26: 105\n         line 27: 112\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     113     0  this   Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest;\n     RuntimeVisibleAnnotations:\n-      0: #81()\n+      0: #208()\n         org.junit.jupiter.api.Test\n \n   public void test_equals_hash();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=4, locals=7, args_size=1\n-         0: new           #19                 // class dev/langchain4j/agent/tool/JsonSchemaProperty\n+         0: new           #8                  // class dev/langchain4j/agent/tool/JsonSchemaProperty\n          3: dup\n-         4: ldc           #20                 // String key\n-         6: ldc           #21                 // String value\n-         8: invokespecial #22                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.\"<init>\":(Ljava/lang/String;Ljava/lang/Object;)V\n+         4: ldc           #61                 // String key\n+         6: ldc           #63                 // String value\n+         8: invokespecial #65                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.\"<init>\":(Ljava/lang/String;Ljava/lang/Object;)V\n         11: astore_1\n-        12: new           #19                 // class dev/langchain4j/agent/tool/JsonSchemaProperty\n+        12: new           #8                  // class dev/langchain4j/agent/tool/JsonSchemaProperty\n         15: dup\n-        16: ldc           #20                 // String key\n-        18: ldc           #21                 // String value\n-        20: invokespecial #22                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.\"<init>\":(Ljava/lang/String;Ljava/lang/Object;)V\n+        16: ldc           #61                 // String key\n+        18: ldc           #63                 // String value\n+        20: invokespecial #65                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.\"<init>\":(Ljava/lang/String;Ljava/lang/Object;)V\n         23: astore_2\n-        24: new           #19                 // class dev/langchain4j/agent/tool/JsonSchemaProperty\n+        24: new           #8                  // class dev/langchain4j/agent/tool/JsonSchemaProperty\n         27: dup\n-        28: ldc           #20                 // String key\n+        28: ldc           #61                 // String key\n         30: bipush        12\n-        32: invokestatic  #23                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-        35: invokespecial #22                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.\"<init>\":(Ljava/lang/String;Ljava/lang/Object;)V\n+        32: invokestatic  #68                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        35: invokespecial #65                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.\"<init>\":(Ljava/lang/String;Ljava/lang/Object;)V\n         38: astore_3\n-        39: new           #19                 // class dev/langchain4j/agent/tool/JsonSchemaProperty\n+        39: new           #8                  // class dev/langchain4j/agent/tool/JsonSchemaProperty\n         42: dup\n-        43: ldc           #24                 // String abc\n-        45: ldc           #21                 // String value\n-        47: invokespecial #22                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.\"<init>\":(Ljava/lang/String;Ljava/lang/Object;)V\n+        43: ldc           #74                 // String abc\n+        45: ldc           #63                 // String value\n+        47: invokespecial #65                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.\"<init>\":(Ljava/lang/String;Ljava/lang/Object;)V\n         50: astore        4\n         52: aload_0\n         53: aload_1\n-        54: invokevirtual #3                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        54: invokevirtual #13                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         57: aconst_null\n-        58: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        58: invokevirtual #76                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         61: checkcast     #26                 // class org/assertj/core/api/ObjectAssert\n-        64: new           #27                 // class java/lang/Object\n+        64: new           #2                  // class java/lang/Object\n         67: dup\n         68: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n-        71: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        71: invokevirtual #76                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         74: checkcast     #26                 // class org/assertj/core/api/ObjectAssert\n         77: aload_2\n-        78: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        78: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         81: checkcast     #26                 // class org/assertj/core/api/ObjectAssert\n         84: aload_2\n-        85: invokevirtual #28                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        85: invokevirtual #79                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         88: pop\n         89: aload_0\n         90: aload_1\n-        91: invokevirtual #3                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        91: invokevirtual #13                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         94: aload_3\n-        95: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        95: invokevirtual #76                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         98: checkcast     #26                 // class org/assertj/core/api/ObjectAssert\n        101: aload_3\n-       102: invokevirtual #29                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       102: invokevirtual #82                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        105: checkcast     #26                 // class org/assertj/core/api/ObjectAssert\n        108: aload         4\n-       110: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       110: invokevirtual #76                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        113: checkcast     #26                 // class org/assertj/core/api/ObjectAssert\n        116: aload         4\n-       118: invokevirtual #29                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       118: invokevirtual #82                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        121: pop\n        122: aload_0\n        123: aload_3\n-       124: invokevirtual #3                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       124: invokevirtual #13                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        127: aload         4\n-       129: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       129: invokevirtual #76                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        132: checkcast     #26                 // class org/assertj/core/api/ObjectAssert\n        135: aload         4\n-       137: invokevirtual #29                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       137: invokevirtual #82                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        140: pop\n        141: iconst_2\n-       142: anewarray     #30                 // class java/lang/String\n+       142: anewarray     #85                 // class java/lang/String\n        145: dup\n        146: iconst_0\n-       147: ldc           #31                 // String value1\n+       147: ldc           #87                 // String value1\n        149: aastore\n        150: dup\n        151: iconst_1\n-       152: ldc           #32                 // String value2\n+       152: ldc           #89                 // String value2\n        154: aastore\n-       155: invokestatic  #33                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.enums:([Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+       155: invokestatic  #91                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.enums:([Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n        158: astore        5\n        160: iconst_2\n-       161: anewarray     #30                 // class java/lang/String\n+       161: anewarray     #85                 // class java/lang/String\n        164: dup\n        165: iconst_0\n-       166: ldc           #31                 // String value1\n+       166: ldc           #87                 // String value1\n        168: aastore\n        169: dup\n        170: iconst_1\n-       171: ldc           #32                 // String value2\n+       171: ldc           #89                 // String value2\n        173: aastore\n-       174: invokestatic  #33                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.enums:([Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+       174: invokestatic  #91                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.enums:([Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n        177: astore        6\n        179: aload_0\n        180: aload         5\n-       182: invokevirtual #3                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       182: invokevirtual #13                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        185: aload         6\n-       187: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       187: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        190: checkcast     #26                 // class org/assertj/core/api/ObjectAssert\n        193: aload         6\n-       195: invokevirtual #28                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       195: invokevirtual #79                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        198: pop\n        199: return\n       LineNumberTable:\n         line 31: 0\n         line 32: 12\n         line 34: 24\n         line 35: 39\n@@ -493,432 +493,429 @@\n           179      20     6 enum2   Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n             0     200     0  this   Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest;\n            12     188     1 prop1   Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n            24     176     2 prop2   Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n            39     161     3 prop3   Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n            52     148     4 prop4   Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n     RuntimeVisibleAnnotations:\n-      0: #81()\n+      0: #208()\n         org.junit.jupiter.api.Test\n \n   public void test_toString();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=5, locals=2, args_size=1\n-         0: new           #19                 // class dev/langchain4j/agent/tool/JsonSchemaProperty\n+         0: new           #8                  // class dev/langchain4j/agent/tool/JsonSchemaProperty\n          3: dup\n-         4: ldc           #20                 // String key\n-         6: ldc           #21                 // String value\n-         8: invokespecial #22                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.\"<init>\":(Ljava/lang/String;Ljava/lang/Object;)V\n+         4: ldc           #61                 // String key\n+         6: ldc           #63                 // String value\n+         8: invokespecial #65                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.\"<init>\":(Ljava/lang/String;Ljava/lang/Object;)V\n         11: astore_1\n         12: aload_0\n         13: aload_1\n-        14: invokevirtual #34                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.toString:()Ljava/lang/String;\n-        17: invokevirtual #35                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        20: ldc           #36                 // String JsonSchemaProperty { key = \\\"key\\\", value = value }\n-        22: invokevirtual #37                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        14: invokevirtual #95                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.toString:()Ljava/lang/String;\n+        17: invokevirtual #99                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        20: ldc           #102                // String JsonSchemaProperty { key = \\\"key\\\", value = value }\n+        22: invokevirtual #104                // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         25: pop\n         26: aload_0\n         27: iconst_2\n-        28: anewarray     #30                 // class java/lang/String\n+        28: anewarray     #85                 // class java/lang/String\n         31: dup\n         32: iconst_0\n-        33: ldc           #31                 // String value1\n+        33: ldc           #87                 // String value1\n         35: aastore\n         36: dup\n         37: iconst_1\n-        38: ldc           #32                 // String value2\n+        38: ldc           #89                 // String value2\n         40: aastore\n-        41: invokestatic  #33                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.enums:([Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-        44: invokevirtual #34                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.toString:()Ljava/lang/String;\n-        47: invokevirtual #35                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        50: ldc           #38                 // String JsonSchemaProperty { key = \\\"enum\\\", value = [value1, value2] }\n-        52: invokevirtual #37                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        41: invokestatic  #91                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.enums:([Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+        44: invokevirtual #95                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.toString:()Ljava/lang/String;\n+        47: invokevirtual #99                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        50: ldc           #108                // String JsonSchemaProperty { key = \\\"enum\\\", value = [value1, value2] }\n+        52: invokevirtual #104                // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         55: pop\n         56: return\n       LineNumberTable:\n         line 65: 0\n         line 66: 12\n         line 67: 22\n         line 69: 26\n         line 70: 52\n         line 71: 56\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      57     0  this   Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest;\n            12      45     1  prop   Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n     RuntimeVisibleAnnotations:\n-      0: #81()\n+      0: #208()\n         org.junit.jupiter.api.Test\n \n   public void test_type();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=1\n-         0: ldc           #4                  // String string\n-         2: invokestatic  #5                  // Method dev/langchain4j/agent/tool/JsonSchemaProperty.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+         0: ldc           #19                 // String string\n+         2: invokestatic  #21                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n          5: astore_1\n          6: aload_0\n          7: aload_1\n-         8: invokevirtual #39                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.key:()Ljava/lang/String;\n-        11: invokevirtual #35                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        14: ldc           #40                 // String type\n-        16: invokevirtual #37                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+         8: invokevirtual #110                // Method dev/langchain4j/agent/tool/JsonSchemaProperty.key:()Ljava/lang/String;\n+        11: invokevirtual #99                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        14: ldc           #112                // String type\n+        16: invokevirtual #104                // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         19: pop\n         20: aload_0\n         21: aload_1\n-        22: invokevirtual #41                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.value:()Ljava/lang/Object;\n-        25: invokevirtual #3                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        28: ldc           #4                  // String string\n-        30: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        22: invokevirtual #113                // Method dev/langchain4j/agent/tool/JsonSchemaProperty.value:()Ljava/lang/Object;\n+        25: invokevirtual #13                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        28: ldc           #19                 // String string\n+        30: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         33: pop\n         34: return\n       LineNumberTable:\n         line 75: 0\n         line 76: 6\n         line 77: 20\n         line 78: 34\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      35     0  this   Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest;\n             6      29     1  prop   Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n     RuntimeVisibleAnnotations:\n-      0: #81()\n+      0: #208()\n         org.junit.jupiter.api.Test\n \n   public void test_from();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=1\n-         0: ldc           #20                 // String key\n-         2: ldc           #21                 // String value\n-         4: invokestatic  #42                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.from:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+         0: ldc           #61                 // String key\n+         2: ldc           #63                 // String value\n+         4: invokestatic  #116                // Method dev/langchain4j/agent/tool/JsonSchemaProperty.from:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n          7: astore_1\n          8: aload_0\n          9: aload_1\n-        10: invokevirtual #39                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.key:()Ljava/lang/String;\n-        13: invokevirtual #35                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        16: ldc           #20                 // String key\n-        18: invokevirtual #37                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        10: invokevirtual #110                // Method dev/langchain4j/agent/tool/JsonSchemaProperty.key:()Ljava/lang/String;\n+        13: invokevirtual #99                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        16: ldc           #61                 // String key\n+        18: invokevirtual #104                // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         21: pop\n         22: aload_0\n         23: aload_1\n-        24: invokevirtual #41                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.value:()Ljava/lang/Object;\n-        27: invokevirtual #3                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        30: ldc           #21                 // String value\n-        32: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        24: invokevirtual #113                // Method dev/langchain4j/agent/tool/JsonSchemaProperty.value:()Ljava/lang/Object;\n+        27: invokevirtual #13                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        30: ldc           #63                 // String value\n+        32: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         35: pop\n         36: return\n       LineNumberTable:\n         line 82: 0\n         line 83: 8\n         line 84: 22\n         line 85: 36\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      37     0  this   Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest;\n             8      29     1  prop   Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n     RuntimeVisibleAnnotations:\n-      0: #81()\n+      0: #208()\n         org.junit.jupiter.api.Test\n \n   public void test_property();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=1, args_size=1\n          0: aload_0\n-         1: ldc           #20                 // String key\n-         3: ldc           #21                 // String value\n-         5: invokestatic  #43                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.property:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-         8: invokevirtual #3                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        11: ldc           #20                 // String key\n-        13: ldc           #21                 // String value\n-        15: invokestatic  #42                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.from:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-        18: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+         1: ldc           #61                 // String key\n+         3: ldc           #63                 // String value\n+         5: invokestatic  #120                // Method dev/langchain4j/agent/tool/JsonSchemaProperty.property:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+         8: invokevirtual #13                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        11: ldc           #61                 // String key\n+        13: ldc           #63                 // String value\n+        15: invokestatic  #116                // Method dev/langchain4j/agent/tool/JsonSchemaProperty.from:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+        18: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         21: pop\n         22: return\n       LineNumberTable:\n         line 89: 0\n         line 90: 15\n         line 91: 22\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      23     0  this   Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest;\n     RuntimeVisibleAnnotations:\n-      0: #81()\n+      0: #208()\n         org.junit.jupiter.api.Test\n \n   public void test_description();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=1, args_size=1\n          0: aload_0\n-         1: ldc           #21                 // String value\n-         3: invokestatic  #44                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-         6: invokevirtual #3                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-         9: ldc           #45                 // String description\n-        11: ldc           #21                 // String value\n-        13: invokestatic  #42                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.from:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-        16: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+         1: ldc           #63                 // String value\n+         3: invokestatic  #123                // Method dev/langchain4j/agent/tool/JsonSchemaProperty.description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+         6: invokevirtual #13                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+         9: ldc           #126                // String description\n+        11: ldc           #63                 // String value\n+        13: invokestatic  #116                // Method dev/langchain4j/agent/tool/JsonSchemaProperty.from:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+        16: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         19: pop\n         20: return\n       LineNumberTable:\n         line 95: 0\n         line 96: 13\n         line 97: 20\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      21     0  this   Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest;\n     RuntimeVisibleAnnotations:\n-      0: #81()\n+      0: #208()\n         org.junit.jupiter.api.Test\n \n   public void test_enums();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=6, locals=2, args_size=1\n          0: iconst_2\n-         1: anewarray     #30                 // class java/lang/String\n+         1: anewarray     #85                 // class java/lang/String\n          4: dup\n          5: iconst_0\n-         6: ldc           #31                 // String value1\n+         6: ldc           #87                 // String value1\n          8: aastore\n          9: dup\n         10: iconst_1\n-        11: ldc           #32                 // String value2\n+        11: ldc           #89                 // String value2\n         13: aastore\n-        14: invokestatic  #33                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.enums:([Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+        14: invokestatic  #91                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.enums:([Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n         17: astore_1\n         18: aload_0\n         19: aload_1\n-        20: invokevirtual #39                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.key:()Ljava/lang/String;\n-        23: invokevirtual #35                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        26: ldc           #46                 // String enum\n-        28: invokevirtual #37                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        20: invokevirtual #110                // Method dev/langchain4j/agent/tool/JsonSchemaProperty.key:()Ljava/lang/String;\n+        23: invokevirtual #99                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        26: ldc           #127                // String enum\n+        28: invokevirtual #104                // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         31: pop\n         32: aload_0\n         33: aload_1\n-        34: invokevirtual #41                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.value:()Ljava/lang/Object;\n-        37: checkcast     #47                 // class \"[Ljava/lang/String;\"\n-        40: checkcast     #47                 // class \"[Ljava/lang/String;\"\n-        43: iconst_2\n-        44: anewarray     #30                 // class java/lang/String\n-        47: dup\n-        48: iconst_0\n-        49: ldc           #31                 // String value1\n-        51: aastore\n-        52: dup\n-        53: iconst_1\n-        54: ldc           #32                 // String value2\n-        56: aastore\n-        57: invokestatic  #48                 // Method java/util/Arrays.equals:([Ljava/lang/Object;[Ljava/lang/Object;)Z\n-        60: invokevirtual #49                 // Method assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-        63: invokevirtual #50                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n-        66: pop\n-        67: iconst_2\n-        68: anewarray     #27                 // class java/lang/Object\n-        71: dup\n-        72: iconst_0\n-        73: getstatic     #51                 // Field dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest.VALUE1:Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest;\n-        76: aastore\n-        77: dup\n-        78: iconst_1\n-        79: getstatic     #52                 // Field dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest.VALUE2:Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest;\n-        82: aastore\n-        83: invokestatic  #53                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.enums:([Ljava/lang/Object;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-        86: astore_1\n-        87: aload_0\n-        88: aload_1\n-        89: invokevirtual #39                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.key:()Ljava/lang/String;\n-        92: invokevirtual #35                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        95: ldc           #46                 // String enum\n-        97: invokevirtual #37                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       100: pop\n-       101: aload_0\n-       102: aload_1\n-       103: invokevirtual #41                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.value:()Ljava/lang/Object;\n-       106: checkcast     #54                 // class \"[Ljava/lang/Object;\"\n-       109: checkcast     #54                 // class \"[Ljava/lang/Object;\"\n-       112: iconst_2\n-       113: anewarray     #55                 // class dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest\n+        34: invokevirtual #113                // Method dev/langchain4j/agent/tool/JsonSchemaProperty.value:()Ljava/lang/Object;\n+        37: checkcast     #129                // class \"[Ljava/lang/String;\"\n+        40: iconst_2\n+        41: anewarray     #85                 // class java/lang/String\n+        44: dup\n+        45: iconst_0\n+        46: ldc           #87                 // String value1\n+        48: aastore\n+        49: dup\n+        50: iconst_1\n+        51: ldc           #89                 // String value2\n+        53: aastore\n+        54: invokestatic  #131                // Method java/util/Arrays.equals:([Ljava/lang/Object;[Ljava/lang/Object;)Z\n+        57: invokevirtual #137                // Method assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+        60: invokevirtual #140                // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+        63: pop\n+        64: iconst_2\n+        65: anewarray     #2                  // class java/lang/Object\n+        68: dup\n+        69: iconst_0\n+        70: getstatic     #146                // Field dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest.VALUE1:Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest;\n+        73: aastore\n+        74: dup\n+        75: iconst_1\n+        76: getstatic     #152                // Field dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest.VALUE2:Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest;\n+        79: aastore\n+        80: invokestatic  #155                // Method dev/langchain4j/agent/tool/JsonSchemaProperty.enums:([Ljava/lang/Object;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+        83: astore_1\n+        84: aload_0\n+        85: aload_1\n+        86: invokevirtual #110                // Method dev/langchain4j/agent/tool/JsonSchemaProperty.key:()Ljava/lang/String;\n+        89: invokevirtual #99                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        92: ldc           #127                // String enum\n+        94: invokevirtual #104                // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        97: pop\n+        98: aload_0\n+        99: aload_1\n+       100: invokevirtual #113                // Method dev/langchain4j/agent/tool/JsonSchemaProperty.value:()Ljava/lang/Object;\n+       103: checkcast     #158                // class \"[Ljava/lang/Object;\"\n+       106: iconst_2\n+       107: anewarray     #147                // class dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest\n+       110: dup\n+       111: iconst_0\n+       112: getstatic     #146                // Field dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest.VALUE1:Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest;\n+       115: aastore\n        116: dup\n-       117: iconst_0\n-       118: getstatic     #51                 // Field dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest.VALUE1:Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest;\n+       117: iconst_1\n+       118: getstatic     #152                // Field dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest.VALUE2:Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest;\n        121: aastore\n-       122: dup\n-       123: iconst_1\n-       124: getstatic     #52                 // Field dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest.VALUE2:Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest;\n-       127: aastore\n-       128: invokestatic  #48                 // Method java/util/Arrays.equals:([Ljava/lang/Object;[Ljava/lang/Object;)Z\n-       131: invokevirtual #49                 // Method assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-       134: invokevirtual #50                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n-       137: pop\n-       138: ldc           #55                 // class dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest\n-       140: invokestatic  #56                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.enums:(Ljava/lang/Class;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-       143: astore_1\n-       144: aload_0\n-       145: aload_1\n-       146: invokevirtual #39                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.key:()Ljava/lang/String;\n-       149: invokevirtual #35                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       152: ldc           #46                 // String enum\n-       154: invokevirtual #37                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       157: pop\n-       158: aload_0\n-       159: aload_1\n-       160: invokevirtual #41                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.value:()Ljava/lang/Object;\n-       163: checkcast     #54                 // class \"[Ljava/lang/Object;\"\n-       166: checkcast     #54                 // class \"[Ljava/lang/Object;\"\n-       169: iconst_2\n-       170: anewarray     #55                 // class dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest\n-       173: dup\n-       174: iconst_0\n-       175: getstatic     #51                 // Field dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest.VALUE1:Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest;\n-       178: aastore\n-       179: dup\n-       180: iconst_1\n-       181: getstatic     #52                 // Field dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest.VALUE2:Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest;\n-       184: aastore\n-       185: invokestatic  #48                 // Method java/util/Arrays.equals:([Ljava/lang/Object;[Ljava/lang/Object;)Z\n-       188: invokevirtual #49                 // Method assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-       191: invokevirtual #50                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n-       194: pop\n-       195: aload_0\n-       196: ldc           #57                 // class java/lang/RuntimeException\n-       198: invokevirtual #58                 // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-       201: invokedynamic #59,  0             // InvokeDynamic #0:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-       206: invokevirtual #60                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-       209: ldc           #61                 // String should be enum\n-       211: invokevirtual #62                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-       214: pop\n-       215: aload_0\n-       216: ldc           #57                 // class java/lang/RuntimeException\n-       218: invokevirtual #58                 // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-       221: invokedynamic #63,  0             // InvokeDynamic #1:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-       226: invokevirtual #60                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-       229: ldc           #61                 // String should be enum\n-       231: invokevirtual #62                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-       234: pop\n-       235: return\n+       122: invokestatic  #131                // Method java/util/Arrays.equals:([Ljava/lang/Object;[Ljava/lang/Object;)Z\n+       125: invokevirtual #137                // Method assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+       128: invokevirtual #140                // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+       131: pop\n+       132: ldc           #147                // class dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest\n+       134: invokestatic  #160                // Method dev/langchain4j/agent/tool/JsonSchemaProperty.enums:(Ljava/lang/Class;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+       137: astore_1\n+       138: aload_0\n+       139: aload_1\n+       140: invokevirtual #110                // Method dev/langchain4j/agent/tool/JsonSchemaProperty.key:()Ljava/lang/String;\n+       143: invokevirtual #99                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       146: ldc           #127                // String enum\n+       148: invokevirtual #104                // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       151: pop\n+       152: aload_0\n+       153: aload_1\n+       154: invokevirtual #113                // Method dev/langchain4j/agent/tool/JsonSchemaProperty.value:()Ljava/lang/Object;\n+       157: checkcast     #158                // class \"[Ljava/lang/Object;\"\n+       160: iconst_2\n+       161: anewarray     #147                // class dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest\n+       164: dup\n+       165: iconst_0\n+       166: getstatic     #146                // Field dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest.VALUE1:Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest;\n+       169: aastore\n+       170: dup\n+       171: iconst_1\n+       172: getstatic     #152                // Field dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest.VALUE2:Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest;\n+       175: aastore\n+       176: invokestatic  #131                // Method java/util/Arrays.equals:([Ljava/lang/Object;[Ljava/lang/Object;)Z\n+       179: invokevirtual #137                // Method assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+       182: invokevirtual #140                // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+       185: pop\n+       186: aload_0\n+       187: ldc           #163                // class java/lang/RuntimeException\n+       189: invokevirtual #165                // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+       192: invokedynamic #169,  0            // InvokeDynamic #0:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+       197: invokevirtual #173                // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+       200: ldc           #179                // String should be enum\n+       202: invokevirtual #181                // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+       205: pop\n+       206: aload_0\n+       207: ldc           #163                // class java/lang/RuntimeException\n+       209: invokevirtual #165                // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+       212: invokedynamic #187,  0            // InvokeDynamic #1:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+       217: invokevirtual #173                // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+       220: ldc           #179                // String should be enum\n+       222: invokevirtual #181                // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+       225: pop\n+       226: return\n       LineNumberTable:\n         line 106: 0\n         line 107: 18\n         line 108: 32\n-        line 112: 67\n-        line 113: 87\n-        line 114: 101\n-        line 118: 138\n-        line 119: 144\n-        line 120: 158\n-        line 123: 195\n-        line 124: 206\n-        line 125: 211\n-        line 127: 215\n-        line 128: 226\n-        line 129: 231\n-        line 130: 235\n+        line 112: 64\n+        line 113: 84\n+        line 114: 98\n+        line 118: 132\n+        line 119: 138\n+        line 120: 152\n+        line 123: 186\n+        line 124: 197\n+        line 125: 202\n+        line 127: 206\n+        line 128: 217\n+        line 129: 222\n+        line 130: 226\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n-           18      49     1  prop   Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-           87      51     1  prop   Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-          144      51     1  prop   Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-            0     236     0  this   Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest;\n+           18      46     1  prop   Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+           84      48     1  prop   Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+          138      48     1  prop   Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+            0     227     0  this   Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest;\n     RuntimeVisibleAnnotations:\n-      0: #81()\n+      0: #208()\n         org.junit.jupiter.api.Test\n \n   public void test_items();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=2, args_size=1\n-         0: getstatic     #2                  // Field dev/langchain4j/agent/tool/JsonSchemaProperty.STRING:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-         3: invokestatic  #64                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.items:(Ldev/langchain4j/agent/tool/JsonSchemaProperty;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+         0: getstatic     #7                  // Field dev/langchain4j/agent/tool/JsonSchemaProperty.STRING:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+         3: invokestatic  #188                // Method dev/langchain4j/agent/tool/JsonSchemaProperty.items:(Ldev/langchain4j/agent/tool/JsonSchemaProperty;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n          6: astore_1\n          7: aload_0\n          8: aload_1\n-         9: invokevirtual #39                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.key:()Ljava/lang/String;\n-        12: invokevirtual #35                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        15: ldc           #65                 // String items\n-        17: invokevirtual #37                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+         9: invokevirtual #110                // Method dev/langchain4j/agent/tool/JsonSchemaProperty.key:()Ljava/lang/String;\n+        12: invokevirtual #99                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        15: ldc           #192                // String items\n+        17: invokevirtual #104                // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         20: pop\n         21: aload_0\n         22: aload_1\n-        23: invokevirtual #41                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.value:()Ljava/lang/Object;\n-        26: invokevirtual #3                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        29: ldc           #40                 // String type\n-        31: ldc           #4                  // String string\n-        33: invokestatic  #66                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-        36: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        23: invokevirtual #113                // Method dev/langchain4j/agent/tool/JsonSchemaProperty.value:()Ljava/lang/Object;\n+        26: invokevirtual #13                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        29: ldc           #112                // String type\n+        31: ldc           #19                 // String string\n+        33: invokestatic  #193                // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+        36: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         39: pop\n         40: return\n       LineNumberTable:\n         line 134: 0\n         line 135: 7\n         line 136: 21\n         line 137: 40\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      41     0  this   Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest;\n             7      34     1  prop   Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n     RuntimeVisibleAnnotations:\n-      0: #81()\n+      0: #208()\n         org.junit.jupiter.api.Test\n \n   private static void lambda$test_enums$1() throws java.lang.Throwable;\n     descriptor: ()V\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=1, locals=0, args_size=0\n-         0: ldc           #27                 // class java/lang/Object\n-         2: invokestatic  #56                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.enums:(Ljava/lang/Class;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+         0: ldc           #2                  // class java/lang/Object\n+         2: invokestatic  #160                // Method dev/langchain4j/agent/tool/JsonSchemaProperty.enums:(Ljava/lang/Class;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n          5: pop\n          6: return\n       LineNumberTable:\n         line 128: 0\n     Exceptions:\n       throws java.lang.Throwable\n \n   private static void lambda$test_enums$0() throws java.lang.Throwable;\n     descriptor: ()V\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=4, locals=0, args_size=0\n          0: iconst_2\n-         1: anewarray     #27                 // class java/lang/Object\n+         1: anewarray     #2                  // class java/lang/Object\n          4: dup\n          5: iconst_0\n-         6: ldc           #27                 // class java/lang/Object\n+         6: ldc           #2                  // class java/lang/Object\n          8: aastore\n          9: dup\n         10: iconst_1\n-        11: ldc           #67                 // class java/lang/Integer\n+        11: ldc           #69                 // class java/lang/Integer\n         13: aastore\n-        14: invokestatic  #53                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.enums:([Ljava/lang/Object;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+        14: invokestatic  #155                // Method dev/langchain4j/agent/tool/JsonSchemaProperty.enums:([Ljava/lang/Object;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n         17: pop\n         18: return\n       LineNumberTable:\n         line 124: 0\n     Exceptions:\n       throws java.lang.Throwable\n }\n SourceFile: \"JsonSchemaPropertyTest.java\"\n-InnerClasses:\n-  public static final #70= #55 of #68;    // EnumTest=class dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest of class dev/langchain4j/agent/tool/JsonSchemaPropertyTest\n-  public static #230= #229 of #246;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n-  public static final #252= #251 of #255; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n BootstrapMethods:\n-  0: #166 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  0: #232 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #167 ()V\n-      #168 REF_invokeStatic dev/langchain4j/agent/tool/JsonSchemaPropertyTest.lambda$test_enums$0:()V\n-      #167 ()V\n-  1: #166 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #239 ()V\n+      #240 REF_invokeStatic dev/langchain4j/agent/tool/JsonSchemaPropertyTest.lambda$test_enums$0:()V\n+      #239 ()V\n+  1: #232 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #167 ()V\n-      #175 REF_invokeStatic dev/langchain4j/agent/tool/JsonSchemaPropertyTest.lambda$test_enums$1:()V\n-      #167 ()V\n+      #239 ()V\n+      #243 REF_invokeStatic dev/langchain4j/agent/tool/JsonSchemaPropertyTest.lambda$test_enums$1:()V\n+      #239 ()V\n+InnerClasses:\n+  public static final #247= #147 of #14;  // EnumTest=class dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest of class dev/langchain4j/agent/tool/JsonSchemaPropertyTest\n+  public static #252= #248 of #250;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n+  public static final #257= #253 of #255; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n"}]}, {"source1": "dev/langchain4j/agent/tool/ToolExecutionRequestTest.class", "source2": "dev/langchain4j/agent/tool/ToolExecutionRequestTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,114 +1,114 @@\n-  SHA-256 checksum baa19af22cbd4987441d71759b6240b2a45951629221f002e3a247c689d89c3e\n+  SHA-256 checksum 69a0a6929da6c20c09294ebb736e83054702cb67376aa3e97db288a90e557d6c\n   Compiled from \"ToolExecutionRequestTest.java\"\n class dev.langchain4j.agent.tool.ToolExecutionRequestTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #26                         // dev/langchain4j/agent/tool/ToolExecutionRequestTest\n-  super_class: #21                        // java/lang/Object\n+  this_class: #36                         // dev/langchain4j/agent/tool/ToolExecutionRequestTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 4, attributes: 2\n Constant pool:\n-   #1 = Methodref          #21.#46        // java/lang/Object.\"<init>\":()V\n-   #2 = Methodref          #47.#48        // dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #3 = String             #49            // id\n-   #4 = Methodref          #50.#51        // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #5 = String             #52            // name\n-   #6 = Methodref          #50.#53        // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #7 = String             #54            // arguments\n-   #8 = Methodref          #50.#55        // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #9 = Methodref          #50.#56        // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-  #10 = Methodref          #47.#57        // dev/langchain4j/agent/tool/ToolExecutionRequest.id:()Ljava/lang/String;\n-  #11 = Methodref          #26.#58        // dev/langchain4j/agent/tool/ToolExecutionRequestTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #12 = Methodref          #59.#60        // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #13 = Methodref          #47.#61        // dev/langchain4j/agent/tool/ToolExecutionRequest.name:()Ljava/lang/String;\n-  #14 = Methodref          #47.#62        // dev/langchain4j/agent/tool/ToolExecutionRequest.arguments:()Ljava/lang/String;\n-  #15 = Methodref          #26.#63        // dev/langchain4j/agent/tool/ToolExecutionRequestTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #16 = String             #64            // ToolExecutionRequest { id = \\\"id\\\", name = \\\"name\\\", arguments = \\\"arguments\\\" }\n-  #17 = Methodref          #19.#65        // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-  #18 = Methodref          #19.#66        // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #19 = Class              #67            // org/assertj/core/api/ObjectAssert\n-  #20 = Methodref          #19.#68        // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #21 = Class              #69            // java/lang/Object\n-  #22 = Methodref          #19.#70        // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #23 = String             #71            // foo\n-  #24 = Methodref          #19.#72        // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #25 = Methodref          #59.#73        // org/assertj/core/api/AbstractStringAssert.isNull:()V\n-  #26 = Class              #74            // dev/langchain4j/agent/tool/ToolExecutionRequestTest\n-  #27 = Class              #75            // org/assertj/core/api/WithAssertions\n-  #28 = Utf8               <init>\n-  #29 = Utf8               ()V\n-  #30 = Utf8               Code\n-  #31 = Utf8               LineNumberTable\n-  #32 = Utf8               LocalVariableTable\n-  #33 = Utf8               this\n-  #34 = Utf8               Ldev/langchain4j/agent/tool/ToolExecutionRequestTest;\n-  #35 = Utf8               test_builder\n-  #36 = Utf8               request\n-  #37 = Utf8               Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-  #38 = Utf8               RuntimeVisibleAnnotations\n-  #39 = Utf8               Lorg/junit/jupiter/api/Test;\n-  #40 = Utf8               test_equals_hash\n-  #41 = Utf8               req1\n-  #42 = Utf8               req2\n-  #43 = Utf8               test_allNull\n-  #44 = Utf8               SourceFile\n-  #45 = Utf8               ToolExecutionRequestTest.java\n-  #46 = NameAndType        #28:#29        // \"<init>\":()V\n-  #47 = Class              #76            // dev/langchain4j/agent/tool/ToolExecutionRequest\n-  #48 = NameAndType        #77:#80        // builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #49 = Utf8               id\n-  #50 = Class              #81            // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n-  #51 = NameAndType        #49:#82        // id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #52 = Utf8               name\n-  #53 = NameAndType        #52:#82        // name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #54 = Utf8               arguments\n-  #55 = NameAndType        #54:#82        // arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #56 = NameAndType        #83:#84        // build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-  #57 = NameAndType        #49:#85        // id:()Ljava/lang/String;\n-  #58 = NameAndType        #86:#87        // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #59 = Class              #88            // org/assertj/core/api/AbstractStringAssert\n-  #60 = NameAndType        #89:#87        // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #61 = NameAndType        #52:#85        // name:()Ljava/lang/String;\n-  #62 = NameAndType        #54:#85        // arguments:()Ljava/lang/String;\n-  #63 = NameAndType        #86:#90        // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #64 = Utf8               ToolExecutionRequest { id = \\\"id\\\", name = \\\"name\\\", arguments = \\\"arguments\\\" }\n-  #65 = NameAndType        #91:#92        // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-  #66 = NameAndType        #89:#93        // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #67 = Utf8               org/assertj/core/api/ObjectAssert\n-  #68 = NameAndType        #94:#93        // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #69 = Utf8               java/lang/Object\n-  #70 = NameAndType        #95:#93        // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Methodref          #8.#9          // dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #8 = Class              #10            // dev/langchain4j/agent/tool/ToolExecutionRequest\n+   #9 = NameAndType        #11:#12        // builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #10 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest\n+  #11 = Utf8               builder\n+  #12 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #13 = String             #14            // id\n+  #14 = Utf8               id\n+  #15 = Methodref          #16.#17        // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #16 = Class              #18            // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n+  #17 = NameAndType        #14:#19        // id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #18 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n+  #19 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #20 = String             #21            // name\n+  #21 = Utf8               name\n+  #22 = Methodref          #16.#23        // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #23 = NameAndType        #21:#19        // name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #24 = String             #25            // arguments\n+  #25 = Utf8               arguments\n+  #26 = Methodref          #16.#27        // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #27 = NameAndType        #25:#19        // arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #28 = Methodref          #16.#29        // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+  #29 = NameAndType        #30:#31        // build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+  #30 = Utf8               build\n+  #31 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+  #32 = Methodref          #8.#33         // dev/langchain4j/agent/tool/ToolExecutionRequest.id:()Ljava/lang/String;\n+  #33 = NameAndType        #14:#34        // id:()Ljava/lang/String;\n+  #34 = Utf8               ()Ljava/lang/String;\n+  #35 = Methodref          #36.#37        // dev/langchain4j/agent/tool/ToolExecutionRequestTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #36 = Class              #38            // dev/langchain4j/agent/tool/ToolExecutionRequestTest\n+  #37 = NameAndType        #39:#40        // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #38 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequestTest\n+  #39 = Utf8               assertThat\n+  #40 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #41 = Methodref          #42.#43        // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #42 = Class              #44            // org/assertj/core/api/AbstractStringAssert\n+  #43 = NameAndType        #45:#40        // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #44 = Utf8               org/assertj/core/api/AbstractStringAssert\n+  #45 = Utf8               isEqualTo\n+  #46 = Methodref          #8.#47         // dev/langchain4j/agent/tool/ToolExecutionRequest.name:()Ljava/lang/String;\n+  #47 = NameAndType        #21:#34        // name:()Ljava/lang/String;\n+  #48 = Methodref          #8.#49         // dev/langchain4j/agent/tool/ToolExecutionRequest.arguments:()Ljava/lang/String;\n+  #49 = NameAndType        #25:#34        // arguments:()Ljava/lang/String;\n+  #50 = Methodref          #36.#51        // dev/langchain4j/agent/tool/ToolExecutionRequestTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+  #51 = NameAndType        #39:#52        // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+  #52 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+  #53 = String             #54            // ToolExecutionRequest { id = \\\"id\\\", name = \\\"name\\\", arguments = \\\"arguments\\\" }\n+  #54 = Utf8               ToolExecutionRequest { id = \\\"id\\\", name = \\\"name\\\", arguments = \\\"arguments\\\" }\n+  #55 = Methodref          #56.#57        // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+  #56 = Class              #58            // org/assertj/core/api/ObjectAssert\n+  #57 = NameAndType        #59:#60        // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+  #58 = Utf8               org/assertj/core/api/ObjectAssert\n+  #59 = Utf8               hasToString\n+  #60 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+  #61 = Methodref          #56.#62        // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #62 = NameAndType        #45:#63        // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #63 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #64 = Methodref          #56.#65        // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #65 = NameAndType        #66:#63        // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #66 = Utf8               isNotEqualTo\n+  #67 = Methodref          #56.#68        // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #68 = NameAndType        #69:#63        // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #69 = Utf8               hasSameHashCodeAs\n+  #70 = String             #71            // foo\n   #71 = Utf8               foo\n-  #72 = NameAndType        #96:#93        // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #73 = NameAndType        #97:#29        // isNull:()V\n-  #74 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequestTest\n-  #75 = Utf8               org/assertj/core/api/WithAssertions\n-  #76 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest\n-  #77 = Utf8               builder\n-  #78 = Utf8               Builder\n-  #79 = Utf8               InnerClasses\n-  #80 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #81 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n-  #82 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #83 = Utf8               build\n-  #84 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-  #85 = Utf8               ()Ljava/lang/String;\n-  #86 = Utf8               assertThat\n-  #87 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #88 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #89 = Utf8               isEqualTo\n-  #90 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #91 = Utf8               hasToString\n-  #92 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-  #93 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #94 = Utf8               isNotEqualTo\n-  #95 = Utf8               hasSameHashCodeAs\n-  #96 = Utf8               doesNotHaveSameHashCodeAs\n-  #97 = Utf8               isNull\n+  #72 = Methodref          #56.#73        // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #73 = NameAndType        #74:#63        // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #74 = Utf8               doesNotHaveSameHashCodeAs\n+  #75 = Methodref          #42.#76        // org/assertj/core/api/AbstractStringAssert.isNull:()V\n+  #76 = NameAndType        #77:#6         // isNull:()V\n+  #77 = Utf8               isNull\n+  #78 = Class              #79            // org/assertj/core/api/WithAssertions\n+  #79 = Utf8               org/assertj/core/api/WithAssertions\n+  #80 = Utf8               Code\n+  #81 = Utf8               LineNumberTable\n+  #82 = Utf8               LocalVariableTable\n+  #83 = Utf8               this\n+  #84 = Utf8               Ldev/langchain4j/agent/tool/ToolExecutionRequestTest;\n+  #85 = Utf8               test_builder\n+  #86 = Utf8               request\n+  #87 = Utf8               Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+  #88 = Utf8               RuntimeVisibleAnnotations\n+  #89 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #90 = Utf8               test_equals_hash\n+  #91 = Utf8               req1\n+  #92 = Utf8               req2\n+  #93 = Utf8               test_allNull\n+  #94 = Utf8               SourceFile\n+  #95 = Utf8               ToolExecutionRequestTest.java\n+  #96 = Utf8               InnerClasses\n+  #97 = Utf8               Builder\n {\n   dev.langchain4j.agent.tool.ToolExecutionRequestTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -121,49 +121,49 @@\n             0       5     0  this   Ldev/langchain4j/agent/tool/ToolExecutionRequestTest;\n \n   public void test_builder();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=1\n-         0: invokestatic  #2                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-         3: ldc           #3                  // String id\n-         5: invokevirtual #4                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-         8: ldc           #5                  // String name\n-        10: invokevirtual #6                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        13: ldc           #7                  // String arguments\n-        15: invokevirtual #8                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        18: invokevirtual #9                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+         0: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+         3: ldc           #13                 // String id\n+         5: invokevirtual #15                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+         8: ldc           #20                 // String name\n+        10: invokevirtual #22                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        13: ldc           #24                 // String arguments\n+        15: invokevirtual #26                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        18: invokevirtual #28                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n         21: astore_1\n         22: aload_0\n         23: aload_1\n-        24: invokevirtual #10                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.id:()Ljava/lang/String;\n-        27: invokevirtual #11                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        30: ldc           #3                  // String id\n-        32: invokevirtual #12                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        24: invokevirtual #32                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.id:()Ljava/lang/String;\n+        27: invokevirtual #35                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        30: ldc           #13                 // String id\n+        32: invokevirtual #41                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         35: pop\n         36: aload_0\n         37: aload_1\n-        38: invokevirtual #13                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.name:()Ljava/lang/String;\n-        41: invokevirtual #11                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        44: ldc           #5                  // String name\n-        46: invokevirtual #12                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        38: invokevirtual #46                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.name:()Ljava/lang/String;\n+        41: invokevirtual #35                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        44: ldc           #20                 // String name\n+        46: invokevirtual #41                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         49: pop\n         50: aload_0\n         51: aload_1\n-        52: invokevirtual #14                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.arguments:()Ljava/lang/String;\n-        55: invokevirtual #11                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        58: ldc           #7                  // String arguments\n-        60: invokevirtual #12                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        52: invokevirtual #48                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.arguments:()Ljava/lang/String;\n+        55: invokevirtual #35                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        58: ldc           #24                 // String arguments\n+        60: invokevirtual #41                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         63: pop\n         64: aload_0\n         65: aload_1\n-        66: invokevirtual #15                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        69: ldc           #16                 // String ToolExecutionRequest { id = \\\"id\\\", name = \\\"name\\\", arguments = \\\"arguments\\\" }\n-        71: invokevirtual #17                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+        66: invokevirtual #50                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        69: ldc           #53                 // String ToolExecutionRequest { id = \\\"id\\\", name = \\\"name\\\", arguments = \\\"arguments\\\" }\n+        71: invokevirtual #55                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n         74: pop\n         75: return\n       LineNumberTable:\n         line 9: 0\n         line 10: 5\n         line 11: 10\n         line 12: 15\n@@ -175,107 +175,107 @@\n         line 20: 71\n         line 22: 75\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      76     0  this   Ldev/langchain4j/agent/tool/ToolExecutionRequestTest;\n            22      54     1 request   Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n     RuntimeVisibleAnnotations:\n-      0: #39()\n+      0: #89()\n         org.junit.jupiter.api.Test\n \n   public void test_equals_hash();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=3, args_size=1\n-         0: invokestatic  #2                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-         3: ldc           #3                  // String id\n-         5: invokevirtual #4                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-         8: ldc           #5                  // String name\n-        10: invokevirtual #6                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        13: ldc           #7                  // String arguments\n-        15: invokevirtual #8                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        18: invokevirtual #9                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+         0: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+         3: ldc           #13                 // String id\n+         5: invokevirtual #15                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+         8: ldc           #20                 // String name\n+        10: invokevirtual #22                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        13: ldc           #24                 // String arguments\n+        15: invokevirtual #26                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        18: invokevirtual #28                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n         21: astore_1\n-        22: invokestatic  #2                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        25: ldc           #3                  // String id\n-        27: invokevirtual #4                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        30: ldc           #5                  // String name\n-        32: invokevirtual #6                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        35: ldc           #7                  // String arguments\n-        37: invokevirtual #8                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        40: invokevirtual #9                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+        22: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        25: ldc           #13                 // String id\n+        27: invokevirtual #15                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        30: ldc           #20                 // String name\n+        32: invokevirtual #22                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        35: ldc           #24                 // String arguments\n+        37: invokevirtual #26                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        40: invokevirtual #28                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n         43: astore_2\n         44: aload_0\n         45: aload_1\n-        46: invokevirtual #15                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        46: invokevirtual #50                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         49: aload_1\n-        50: invokevirtual #18                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        53: checkcast     #19                 // class org/assertj/core/api/ObjectAssert\n+        50: invokevirtual #61                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        53: checkcast     #56                 // class org/assertj/core/api/ObjectAssert\n         56: aconst_null\n-        57: invokevirtual #20                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        60: checkcast     #19                 // class org/assertj/core/api/ObjectAssert\n-        63: new           #21                 // class java/lang/Object\n+        57: invokevirtual #64                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        60: checkcast     #56                 // class org/assertj/core/api/ObjectAssert\n+        63: new           #2                  // class java/lang/Object\n         66: dup\n         67: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n-        70: invokevirtual #20                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        73: checkcast     #19                 // class org/assertj/core/api/ObjectAssert\n+        70: invokevirtual #64                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        73: checkcast     #56                 // class org/assertj/core/api/ObjectAssert\n         76: aload_2\n-        77: invokevirtual #18                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        80: checkcast     #19                 // class org/assertj/core/api/ObjectAssert\n+        77: invokevirtual #61                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        80: checkcast     #56                 // class org/assertj/core/api/ObjectAssert\n         83: aload_2\n-        84: invokevirtual #22                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        84: invokevirtual #67                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         87: pop\n         88: aload_0\n-        89: invokestatic  #2                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        92: ldc           #23                 // String foo\n-        94: invokevirtual #4                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        97: ldc           #5                  // String name\n-        99: invokevirtual #6                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-       102: ldc           #7                  // String arguments\n-       104: invokevirtual #8                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-       107: invokevirtual #9                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-       110: invokevirtual #15                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        89: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        92: ldc           #70                 // String foo\n+        94: invokevirtual #15                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        97: ldc           #20                 // String name\n+        99: invokevirtual #22                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+       102: ldc           #24                 // String arguments\n+       104: invokevirtual #26                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+       107: invokevirtual #28                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+       110: invokevirtual #50                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        113: aload_1\n-       114: invokevirtual #20                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       117: checkcast     #19                 // class org/assertj/core/api/ObjectAssert\n+       114: invokevirtual #64                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       117: checkcast     #56                 // class org/assertj/core/api/ObjectAssert\n        120: aload_1\n-       121: invokevirtual #24                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       121: invokevirtual #72                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        124: pop\n        125: aload_0\n-       126: invokestatic  #2                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-       129: ldc           #3                  // String id\n-       131: invokevirtual #4                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-       134: ldc           #23                 // String foo\n-       136: invokevirtual #6                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-       139: ldc           #7                  // String arguments\n-       141: invokevirtual #8                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-       144: invokevirtual #9                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-       147: invokevirtual #15                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       126: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+       129: ldc           #13                 // String id\n+       131: invokevirtual #15                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+       134: ldc           #70                 // String foo\n+       136: invokevirtual #22                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+       139: ldc           #24                 // String arguments\n+       141: invokevirtual #26                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+       144: invokevirtual #28                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+       147: invokevirtual #50                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        150: aload_1\n-       151: invokevirtual #20                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       154: checkcast     #19                 // class org/assertj/core/api/ObjectAssert\n+       151: invokevirtual #64                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       154: checkcast     #56                 // class org/assertj/core/api/ObjectAssert\n        157: aload_1\n-       158: invokevirtual #24                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       158: invokevirtual #72                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        161: pop\n        162: aload_0\n-       163: invokestatic  #2                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-       166: ldc           #3                  // String id\n-       168: invokevirtual #4                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-       171: ldc           #5                  // String name\n-       173: invokevirtual #6                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-       176: ldc           #23                 // String foo\n-       178: invokevirtual #8                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-       181: invokevirtual #9                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-       184: invokevirtual #15                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       163: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+       166: ldc           #13                 // String id\n+       168: invokevirtual #15                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+       171: ldc           #20                 // String name\n+       173: invokevirtual #22                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+       176: ldc           #70                 // String foo\n+       178: invokevirtual #26                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+       181: invokevirtual #28                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+       184: invokevirtual #50                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        187: aload_1\n-       188: invokevirtual #20                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       191: checkcast     #19                 // class org/assertj/core/api/ObjectAssert\n+       188: invokevirtual #64                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       191: checkcast     #56                 // class org/assertj/core/api/ObjectAssert\n        194: aload_1\n-       195: invokevirtual #24                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       195: invokevirtual #72                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        198: pop\n        199: return\n       LineNumberTable:\n         line 26: 0\n         line 27: 5\n         line 28: 10\n         line 29: 15\n@@ -318,46 +318,46 @@\n         line 68: 199\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     200     0  this   Ldev/langchain4j/agent/tool/ToolExecutionRequestTest;\n            22     178     1  req1   Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n            44     156     2  req2   Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n     RuntimeVisibleAnnotations:\n-      0: #39()\n+      0: #89()\n         org.junit.jupiter.api.Test\n \n   public void test_allNull();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=1\n-         0: invokestatic  #2                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-         3: invokevirtual #9                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+         0: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+         3: invokevirtual #28                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n          6: astore_1\n          7: aload_0\n          8: aload_1\n-         9: invokevirtual #10                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.id:()Ljava/lang/String;\n-        12: invokevirtual #11                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        15: invokevirtual #25                 // Method org/assertj/core/api/AbstractStringAssert.isNull:()V\n+         9: invokevirtual #32                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.id:()Ljava/lang/String;\n+        12: invokevirtual #35                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        15: invokevirtual #75                 // Method org/assertj/core/api/AbstractStringAssert.isNull:()V\n         18: aload_0\n         19: aload_1\n-        20: invokevirtual #13                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.name:()Ljava/lang/String;\n-        23: invokevirtual #11                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        26: invokevirtual #25                 // Method org/assertj/core/api/AbstractStringAssert.isNull:()V\n+        20: invokevirtual #46                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.name:()Ljava/lang/String;\n+        23: invokevirtual #35                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        26: invokevirtual #75                 // Method org/assertj/core/api/AbstractStringAssert.isNull:()V\n         29: aload_0\n         30: aload_1\n-        31: invokevirtual #14                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.arguments:()Ljava/lang/String;\n-        34: invokevirtual #11                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        37: invokevirtual #25                 // Method org/assertj/core/api/AbstractStringAssert.isNull:()V\n+        31: invokevirtual #48                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.arguments:()Ljava/lang/String;\n+        34: invokevirtual #35                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        37: invokevirtual #75                 // Method org/assertj/core/api/AbstractStringAssert.isNull:()V\n         40: aload_0\n         41: aload_1\n-        42: invokevirtual #15                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        45: invokestatic  #2                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        48: invokevirtual #9                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-        51: invokevirtual #18                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        42: invokevirtual #50                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        45: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        48: invokevirtual #28                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+        51: invokevirtual #61                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         54: pop\n         55: return\n       LineNumberTable:\n         line 72: 0\n         line 73: 3\n         line 75: 7\n         line 76: 18\n@@ -366,13 +366,13 @@\n         line 80: 45\n         line 81: 55\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      56     0  this   Ldev/langchain4j/agent/tool/ToolExecutionRequestTest;\n             7      49     1 request   Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n     RuntimeVisibleAnnotations:\n-      0: #39()\n+      0: #89()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"ToolExecutionRequestTest.java\"\n InnerClasses:\n-  public static final #78= #50 of #47;    // Builder=class dev/langchain4j/agent/tool/ToolExecutionRequest$Builder of class dev/langchain4j/agent/tool/ToolExecutionRequest\n+  public static final #97= #16 of #8;     // Builder=class dev/langchain4j/agent/tool/ToolExecutionRequest$Builder of class dev/langchain4j/agent/tool/ToolExecutionRequest\n"}]}, {"source1": "dev/langchain4j/agent/tool/ToolExecutionRequestUtilTest.class", "source2": "dev/langchain4j/agent/tool/ToolExecutionRequestUtilTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,123 +1,123 @@\n-  SHA-256 checksum 62cc141a71e2d804049a0a000544aaf9e84a7e04de17c79fafff520882a69c6a\n+  SHA-256 checksum 45f7469e0f44f5057361c3ff00a8f1cad807b14a4d26b6d71db4640b5141d835\n   Compiled from \"ToolExecutionRequestUtilTest.java\"\n class dev.langchain4j.agent.tool.ToolExecutionRequestUtilTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #28                         // dev/langchain4j/agent/tool/ToolExecutionRequestUtilTest\n-  super_class: #29                        // java/lang/Object\n+  this_class: #43                         // dev/langchain4j/agent/tool/ToolExecutionRequestUtilTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 2\n Constant pool:\n-    #1 = Methodref          #29.#45       // java/lang/Object.\"<init>\":()V\n-    #2 = Methodref          #46.#47       // dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-    #3 = String             #48           // id\n-    #4 = Methodref          #49.#50       // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-    #5 = String             #51           // name\n-    #6 = Methodref          #49.#52       // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-    #7 = String             #53           // {\\\"foo\\\":\\\"bar\\\", \\\"qux\\\": 12}\n-    #8 = Methodref          #49.#54       // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-    #9 = Methodref          #49.#55       // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-   #10 = Methodref          #46.#56       // dev/langchain4j/agent/tool/ToolExecutionRequest.arguments:()Ljava/lang/String;\n-   #11 = Methodref          #57.#58       // dev/langchain4j/agent/tool/ToolExecutionRequestUtil.argumentsAsMap:(Ljava/lang/String;)Ljava/util/Map;\n-   #12 = Methodref          #28.#59       // dev/langchain4j/agent/tool/ToolExecutionRequestUtilTest.assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n-   #13 = String             #60           // foo\n-   #14 = String             #61           // bar\n-   #15 = Methodref          #16.#62       // org/assertj/core/api/MapAssert.containsEntry:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n-   #16 = Class              #63           // org/assertj/core/api/MapAssert\n-   #17 = String             #64           // qux\n-   #18 = Double             12.0d\n-   #20 = Methodref          #65.#66       // java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-   #21 = Methodref          #57.#67       // dev/langchain4j/agent/tool/ToolExecutionRequestUtil.argument:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;Ljava/lang/String;)Ljava/lang/Object;\n-   #22 = Class              #68           // java/lang/String\n-   #23 = Methodref          #28.#69       // dev/langchain4j/agent/tool/ToolExecutionRequestUtilTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #24 = Methodref          #70.#71       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #25 = Class              #72           // java/lang/Number\n-   #26 = Methodref          #28.#73       // dev/langchain4j/agent/tool/ToolExecutionRequestUtilTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #27 = Methodref          #74.#75       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #28 = Class              #76           // dev/langchain4j/agent/tool/ToolExecutionRequestUtilTest\n-   #29 = Class              #77           // java/lang/Object\n-   #30 = Class              #78           // org/assertj/core/api/WithAssertions\n-   #31 = Utf8               <init>\n-   #32 = Utf8               ()V\n-   #33 = Utf8               Code\n-   #34 = Utf8               LineNumberTable\n-   #35 = Utf8               LocalVariableTable\n-   #36 = Utf8               this\n-   #37 = Utf8               Ldev/langchain4j/agent/tool/ToolExecutionRequestUtilTest;\n-   #38 = Utf8               test_argument\n-   #39 = Utf8               request\n-   #40 = Utf8               Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-   #41 = Utf8               RuntimeVisibleAnnotations\n-   #42 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #43 = Utf8               SourceFile\n-   #44 = Utf8               ToolExecutionRequestUtilTest.java\n-   #45 = NameAndType        #31:#32       // \"<init>\":()V\n-   #46 = Class              #79           // dev/langchain4j/agent/tool/ToolExecutionRequest\n-   #47 = NameAndType        #80:#83       // builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #48 = Utf8               id\n-   #49 = Class              #84           // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n-   #50 = NameAndType        #48:#85       // id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #51 = Utf8               name\n-   #52 = NameAndType        #51:#85       // name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #53 = Utf8               {\\\"foo\\\":\\\"bar\\\", \\\"qux\\\": 12}\n-   #54 = NameAndType        #86:#85       // arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #55 = NameAndType        #87:#88       // build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-   #56 = NameAndType        #86:#89       // arguments:()Ljava/lang/String;\n-   #57 = Class              #90           // dev/langchain4j/agent/tool/ToolExecutionRequestUtil\n-   #58 = NameAndType        #91:#92       // argumentsAsMap:(Ljava/lang/String;)Ljava/util/Map;\n-   #59 = NameAndType        #93:#94       // assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n-   #60 = Utf8               foo\n-   #61 = Utf8               bar\n-   #62 = NameAndType        #95:#96       // containsEntry:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n-   #63 = Utf8               org/assertj/core/api/MapAssert\n-   #64 = Utf8               qux\n-   #65 = Class              #97           // java/lang/Double\n-   #66 = NameAndType        #98:#99       // valueOf:(D)Ljava/lang/Double;\n-   #67 = NameAndType        #100:#101     // argument:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;Ljava/lang/String;)Ljava/lang/Object;\n-   #68 = Utf8               java/lang/String\n-   #69 = NameAndType        #93:#102      // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #70 = Class              #103          // org/assertj/core/api/AbstractStringAssert\n-   #71 = NameAndType        #104:#102     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #72 = Utf8               java/lang/Number\n-   #73 = NameAndType        #93:#105      // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #74 = Class              #106          // org/assertj/core/api/ObjectAssert\n-   #75 = NameAndType        #104:#107     // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #76 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequestUtilTest\n-   #77 = Utf8               java/lang/Object\n-   #78 = Utf8               org/assertj/core/api/WithAssertions\n-   #79 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest\n-   #80 = Utf8               builder\n-   #81 = Utf8               Builder\n-   #82 = Utf8               InnerClasses\n-   #83 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #84 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n-   #85 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #86 = Utf8               arguments\n-   #87 = Utf8               build\n-   #88 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-   #89 = Utf8               ()Ljava/lang/String;\n-   #90 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequestUtil\n-   #91 = Utf8               argumentsAsMap\n-   #92 = Utf8               (Ljava/lang/String;)Ljava/util/Map;\n-   #93 = Utf8               assertThat\n-   #94 = Utf8               (Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n-   #95 = Utf8               containsEntry\n-   #96 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n-   #97 = Utf8               java/lang/Double\n-   #98 = Utf8               valueOf\n-   #99 = Utf8               (D)Ljava/lang/Double;\n-  #100 = Utf8               argument\n-  #101 = Utf8               (Ldev/langchain4j/agent/tool/ToolExecutionRequest;Ljava/lang/String;)Ljava/lang/Object;\n-  #102 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #103 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #104 = Utf8               isEqualTo\n-  #105 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #106 = Utf8               org/assertj/core/api/ObjectAssert\n-  #107 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Methodref          #8.#9         // dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+    #8 = Class              #10           // dev/langchain4j/agent/tool/ToolExecutionRequest\n+    #9 = NameAndType        #11:#12       // builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #10 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest\n+   #11 = Utf8               builder\n+   #12 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #13 = String             #14           // id\n+   #14 = Utf8               id\n+   #15 = Methodref          #16.#17       // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #16 = Class              #18           // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n+   #17 = NameAndType        #14:#19       // id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #18 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n+   #19 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #20 = String             #21           // name\n+   #21 = Utf8               name\n+   #22 = Methodref          #16.#23       // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #23 = NameAndType        #21:#19       // name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #24 = String             #25           // {\\\"foo\\\":\\\"bar\\\", \\\"qux\\\": 12}\n+   #25 = Utf8               {\\\"foo\\\":\\\"bar\\\", \\\"qux\\\": 12}\n+   #26 = Methodref          #16.#27       // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #27 = NameAndType        #28:#19       // arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #28 = Utf8               arguments\n+   #29 = Methodref          #16.#30       // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+   #30 = NameAndType        #31:#32       // build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+   #31 = Utf8               build\n+   #32 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+   #33 = Methodref          #8.#34        // dev/langchain4j/agent/tool/ToolExecutionRequest.arguments:()Ljava/lang/String;\n+   #34 = NameAndType        #28:#35       // arguments:()Ljava/lang/String;\n+   #35 = Utf8               ()Ljava/lang/String;\n+   #36 = Methodref          #37.#38       // dev/langchain4j/agent/tool/ToolExecutionRequestUtil.argumentsAsMap:(Ljava/lang/String;)Ljava/util/Map;\n+   #37 = Class              #39           // dev/langchain4j/agent/tool/ToolExecutionRequestUtil\n+   #38 = NameAndType        #40:#41       // argumentsAsMap:(Ljava/lang/String;)Ljava/util/Map;\n+   #39 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequestUtil\n+   #40 = Utf8               argumentsAsMap\n+   #41 = Utf8               (Ljava/lang/String;)Ljava/util/Map;\n+   #42 = Methodref          #43.#44       // dev/langchain4j/agent/tool/ToolExecutionRequestUtilTest.assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n+   #43 = Class              #45           // dev/langchain4j/agent/tool/ToolExecutionRequestUtilTest\n+   #44 = NameAndType        #46:#47       // assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n+   #45 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequestUtilTest\n+   #46 = Utf8               assertThat\n+   #47 = Utf8               (Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n+   #48 = String             #49           // foo\n+   #49 = Utf8               foo\n+   #50 = String             #51           // bar\n+   #51 = Utf8               bar\n+   #52 = Methodref          #53.#54       // org/assertj/core/api/MapAssert.containsEntry:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n+   #53 = Class              #55           // org/assertj/core/api/MapAssert\n+   #54 = NameAndType        #56:#57       // containsEntry:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n+   #55 = Utf8               org/assertj/core/api/MapAssert\n+   #56 = Utf8               containsEntry\n+   #57 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n+   #58 = String             #59           // qux\n+   #59 = Utf8               qux\n+   #60 = Double             12.0d\n+   #62 = Methodref          #63.#64       // java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+   #63 = Class              #65           // java/lang/Double\n+   #64 = NameAndType        #66:#67       // valueOf:(D)Ljava/lang/Double;\n+   #65 = Utf8               java/lang/Double\n+   #66 = Utf8               valueOf\n+   #67 = Utf8               (D)Ljava/lang/Double;\n+   #68 = Methodref          #37.#69       // dev/langchain4j/agent/tool/ToolExecutionRequestUtil.argument:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;Ljava/lang/String;)Ljava/lang/Object;\n+   #69 = NameAndType        #70:#71       // argument:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;Ljava/lang/String;)Ljava/lang/Object;\n+   #70 = Utf8               argument\n+   #71 = Utf8               (Ldev/langchain4j/agent/tool/ToolExecutionRequest;Ljava/lang/String;)Ljava/lang/Object;\n+   #72 = Class              #73           // java/lang/String\n+   #73 = Utf8               java/lang/String\n+   #74 = Methodref          #43.#75       // dev/langchain4j/agent/tool/ToolExecutionRequestUtilTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #75 = NameAndType        #46:#76       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #76 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #77 = Methodref          #78.#79       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #78 = Class              #80           // org/assertj/core/api/AbstractStringAssert\n+   #79 = NameAndType        #81:#76       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #80 = Utf8               org/assertj/core/api/AbstractStringAssert\n+   #81 = Utf8               isEqualTo\n+   #82 = Class              #83           // java/lang/Number\n+   #83 = Utf8               java/lang/Number\n+   #84 = Methodref          #43.#85       // dev/langchain4j/agent/tool/ToolExecutionRequestUtilTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #85 = NameAndType        #46:#86       // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #86 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #87 = Methodref          #88.#89       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #88 = Class              #90           // org/assertj/core/api/ObjectAssert\n+   #89 = NameAndType        #81:#91       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #90 = Utf8               org/assertj/core/api/ObjectAssert\n+   #91 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #92 = Class              #93           // org/assertj/core/api/WithAssertions\n+   #93 = Utf8               org/assertj/core/api/WithAssertions\n+   #94 = Utf8               Code\n+   #95 = Utf8               LineNumberTable\n+   #96 = Utf8               LocalVariableTable\n+   #97 = Utf8               this\n+   #98 = Utf8               Ldev/langchain4j/agent/tool/ToolExecutionRequestUtilTest;\n+   #99 = Utf8               test_argument\n+  #100 = Utf8               request\n+  #101 = Utf8               Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+  #102 = Utf8               RuntimeVisibleAnnotations\n+  #103 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #104 = Utf8               SourceFile\n+  #105 = Utf8               ToolExecutionRequestUtilTest.java\n+  #106 = Utf8               InnerClasses\n+  #107 = Utf8               Builder\n {\n   dev.langchain4j.agent.tool.ToolExecutionRequestUtilTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -130,55 +130,55 @@\n             0       5     0  this   Ldev/langchain4j/agent/tool/ToolExecutionRequestUtilTest;\n \n   public void test_argument();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=4, locals=2, args_size=1\n-         0: invokestatic  #2                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-         3: ldc           #3                  // String id\n-         5: invokevirtual #4                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-         8: ldc           #5                  // String name\n-        10: invokevirtual #6                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        13: ldc           #7                  // String {\\\"foo\\\":\\\"bar\\\", \\\"qux\\\": 12}\n-        15: invokevirtual #8                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        18: invokevirtual #9                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+         0: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+         3: ldc           #13                 // String id\n+         5: invokevirtual #15                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+         8: ldc           #20                 // String name\n+        10: invokevirtual #22                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        13: ldc           #24                 // String {\\\"foo\\\":\\\"bar\\\", \\\"qux\\\": 12}\n+        15: invokevirtual #26                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        18: invokevirtual #29                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n         21: astore_1\n         22: aload_0\n         23: aload_1\n-        24: invokevirtual #10                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.arguments:()Ljava/lang/String;\n-        27: invokestatic  #11                 // Method dev/langchain4j/agent/tool/ToolExecutionRequestUtil.argumentsAsMap:(Ljava/lang/String;)Ljava/util/Map;\n-        30: invokevirtual #12                 // Method assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n-        33: ldc           #13                 // String foo\n-        35: ldc           #14                 // String bar\n-        37: invokevirtual #15                 // Method org/assertj/core/api/MapAssert.containsEntry:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n-        40: checkcast     #16                 // class org/assertj/core/api/MapAssert\n-        43: ldc           #17                 // String qux\n-        45: ldc2_w        #18                 // double 12.0d\n-        48: invokestatic  #20                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-        51: invokevirtual #15                 // Method org/assertj/core/api/MapAssert.containsEntry:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n+        24: invokevirtual #33                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.arguments:()Ljava/lang/String;\n+        27: invokestatic  #36                 // Method dev/langchain4j/agent/tool/ToolExecutionRequestUtil.argumentsAsMap:(Ljava/lang/String;)Ljava/util/Map;\n+        30: invokevirtual #42                 // Method assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n+        33: ldc           #48                 // String foo\n+        35: ldc           #50                 // String bar\n+        37: invokevirtual #52                 // Method org/assertj/core/api/MapAssert.containsEntry:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n+        40: checkcast     #53                 // class org/assertj/core/api/MapAssert\n+        43: ldc           #58                 // String qux\n+        45: ldc2_w        #60                 // double 12.0d\n+        48: invokestatic  #62                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+        51: invokevirtual #52                 // Method org/assertj/core/api/MapAssert.containsEntry:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n         54: pop\n         55: aload_0\n         56: aload_1\n-        57: ldc           #13                 // String foo\n-        59: invokestatic  #21                 // Method dev/langchain4j/agent/tool/ToolExecutionRequestUtil.argument:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;Ljava/lang/String;)Ljava/lang/Object;\n-        62: checkcast     #22                 // class java/lang/String\n-        65: invokevirtual #23                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        68: ldc           #14                 // String bar\n-        70: invokevirtual #24                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        57: ldc           #48                 // String foo\n+        59: invokestatic  #68                 // Method dev/langchain4j/agent/tool/ToolExecutionRequestUtil.argument:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;Ljava/lang/String;)Ljava/lang/Object;\n+        62: checkcast     #72                 // class java/lang/String\n+        65: invokevirtual #74                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        68: ldc           #50                 // String bar\n+        70: invokevirtual #77                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         73: pop\n         74: aload_0\n         75: aload_1\n-        76: ldc           #17                 // String qux\n-        78: invokestatic  #21                 // Method dev/langchain4j/agent/tool/ToolExecutionRequestUtil.argument:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;Ljava/lang/String;)Ljava/lang/Object;\n-        81: checkcast     #25                 // class java/lang/Number\n-        84: invokevirtual #26                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        87: ldc2_w        #18                 // double 12.0d\n-        90: invokestatic  #20                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-        93: invokevirtual #27                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        76: ldc           #58                 // String qux\n+        78: invokestatic  #68                 // Method dev/langchain4j/agent/tool/ToolExecutionRequestUtil.argument:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;Ljava/lang/String;)Ljava/lang/Object;\n+        81: checkcast     #82                 // class java/lang/Number\n+        84: invokevirtual #84                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        87: ldc2_w        #60                 // double 12.0d\n+        90: invokestatic  #62                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+        93: invokevirtual #87                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         96: pop\n         97: return\n       LineNumberTable:\n         line 9: 0\n         line 10: 5\n         line 11: 10\n         line 12: 15\n@@ -192,13 +192,13 @@\n         line 22: 90\n         line 23: 97\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      98     0  this   Ldev/langchain4j/agent/tool/ToolExecutionRequestUtilTest;\n            22      76     1 request   Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n     RuntimeVisibleAnnotations:\n-      0: #42()\n+      0: #103()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"ToolExecutionRequestUtilTest.java\"\n InnerClasses:\n-  public static final #81= #49 of #46;    // Builder=class dev/langchain4j/agent/tool/ToolExecutionRequest$Builder of class dev/langchain4j/agent/tool/ToolExecutionRequest\n+  public static final #107= #16 of #8;    // Builder=class dev/langchain4j/agent/tool/ToolExecutionRequest$Builder of class dev/langchain4j/agent/tool/ToolExecutionRequest\n"}]}, {"source1": "dev/langchain4j/agent/tool/ToolParametersTest.class", "source2": "dev/langchain4j/agent/tool/ToolParametersTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,151 +1,151 @@\n-  SHA-256 checksum 0b7a72a9aa7eff89a8542b373fc215670791d72c6810712507d9dd7986ab9ac5\n+  SHA-256 checksum fe51bb8096eeb00b42d2fb325db801411aa12faf58e424c539051b3f9d3c071c\n   Compiled from \"ToolParametersTest.java\"\n class dev.langchain4j.agent.tool.ToolParametersTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #34                         // dev/langchain4j/agent/tool/ToolParametersTest\n-  super_class: #18                        // java/lang/Object\n+  this_class: #56                         // dev/langchain4j/agent/tool/ToolParametersTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 4, attributes: 2\n Constant pool:\n-    #1 = Methodref          #18.#54       // java/lang/Object.\"<init>\":()V\n-    #2 = Methodref          #55.#56       // dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-    #3 = String             #57           // foo\n-    #4 = Methodref          #58.#59       // dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-    #5 = String             #60           // abc\n-    #6 = String             #61           // xyz\n-    #7 = Methodref          #62.#63       // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-    #8 = Methodref          #64.#65       // java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-    #9 = Methodref          #58.#66       // dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-   #10 = String             #67           // jkl\n-   #11 = Methodref          #64.#68       // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-   #12 = Methodref          #58.#69       // dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-   #13 = Methodref          #58.#70       // dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n-   #14 = Methodref          #34.#71       // dev/langchain4j/agent/tool/ToolParametersTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #15 = Methodref          #16.#72       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #16 = Class              #73           // org/assertj/core/api/ObjectAssert\n-   #17 = Methodref          #16.#74       // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #18 = Class              #75           // java/lang/Object\n-   #19 = Methodref          #16.#76       // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #20 = String             #77           // changed\n-   #21 = Methodref          #16.#78       // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #22 = Methodref          #55.#79       // dev/langchain4j/agent/tool/ToolParameters.toString:()Ljava/lang/String;\n-   #23 = Methodref          #34.#80       // dev/langchain4j/agent/tool/ToolParametersTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #24 = String             #81           // ToolParameters { type = \\\"foo\\\", properties = {abc={xyz=12}}, required = [jkl] }\n-   #25 = Methodref          #82.#83       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #26 = Methodref          #55.#84       // dev/langchain4j/agent/tool/ToolParameters.type:()Ljava/lang/String;\n-   #27 = String             #85           // object\n-   #28 = Methodref          #55.#86       // dev/langchain4j/agent/tool/ToolParameters.properties:()Ljava/util/Map;\n-   #29 = Methodref          #34.#87       // dev/langchain4j/agent/tool/ToolParametersTest.assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n-   #30 = Methodref          #88.#89       // org/assertj/core/api/MapAssert.isEmpty:()V\n-   #31 = Methodref          #55.#90       // dev/langchain4j/agent/tool/ToolParameters.required:()Ljava/util/List;\n-   #32 = Methodref          #34.#91       // dev/langchain4j/agent/tool/ToolParametersTest.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-   #33 = Methodref          #92.#89       // org/assertj/core/api/ListAssert.isEmpty:()V\n-   #34 = Class              #93           // dev/langchain4j/agent/tool/ToolParametersTest\n-   #35 = Class              #94           // org/assertj/core/api/WithAssertions\n-   #36 = Utf8               <init>\n-   #37 = Utf8               ()V\n-   #38 = Utf8               Code\n-   #39 = Utf8               LineNumberTable\n-   #40 = Utf8               LocalVariableTable\n-   #41 = Utf8               this\n-   #42 = Utf8               Ldev/langchain4j/agent/tool/ToolParametersTest;\n-   #43 = Utf8               test_equals_hash\n-   #44 = Utf8               tp1\n-   #45 = Utf8               Ldev/langchain4j/agent/tool/ToolParameters;\n-   #46 = Utf8               tp2\n-   #47 = Utf8               RuntimeVisibleAnnotations\n-   #48 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #49 = Utf8               test_toString\n-   #50 = Utf8               parameters\n-   #51 = Utf8               test_builder\n-   #52 = Utf8               SourceFile\n-   #53 = Utf8               ToolParametersTest.java\n-   #54 = NameAndType        #36:#37       // \"<init>\":()V\n-   #55 = Class              #95           // dev/langchain4j/agent/tool/ToolParameters\n-   #56 = NameAndType        #96:#99       // builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-   #57 = Utf8               foo\n-   #58 = Class              #100          // dev/langchain4j/agent/tool/ToolParameters$Builder\n-   #59 = NameAndType        #101:#102     // type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-   #60 = Utf8               abc\n-   #61 = Utf8               xyz\n-   #62 = Class              #103          // java/lang/Integer\n-   #63 = NameAndType        #104:#105     // valueOf:(I)Ljava/lang/Integer;\n-   #64 = Class              #106          // java/util/Collections\n-   #65 = NameAndType        #107:#108     // singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-   #66 = NameAndType        #109:#110     // properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-   #67 = Utf8               jkl\n-   #68 = NameAndType        #111:#112     // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-   #69 = NameAndType        #113:#114     // required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-   #70 = NameAndType        #115:#116     // build:()Ldev/langchain4j/agent/tool/ToolParameters;\n-   #71 = NameAndType        #117:#118     // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #72 = NameAndType        #119:#120     // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #73 = Utf8               org/assertj/core/api/ObjectAssert\n-   #74 = NameAndType        #121:#120     // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #75 = Utf8               java/lang/Object\n-   #76 = NameAndType        #122:#120     // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #77 = Utf8               changed\n-   #78 = NameAndType        #123:#120     // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #79 = NameAndType        #124:#125     // toString:()Ljava/lang/String;\n-   #80 = NameAndType        #117:#126     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #81 = Utf8               ToolParameters { type = \\\"foo\\\", properties = {abc={xyz=12}}, required = [jkl] }\n-   #82 = Class              #127          // org/assertj/core/api/AbstractStringAssert\n-   #83 = NameAndType        #119:#126     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #84 = NameAndType        #101:#125     // type:()Ljava/lang/String;\n-   #85 = Utf8               object\n-   #86 = NameAndType        #109:#128     // properties:()Ljava/util/Map;\n-   #87 = NameAndType        #117:#129     // assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n-   #88 = Class              #130          // org/assertj/core/api/MapAssert\n-   #89 = NameAndType        #131:#37      // isEmpty:()V\n-   #90 = NameAndType        #113:#132     // required:()Ljava/util/List;\n-   #91 = NameAndType        #117:#133     // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-   #92 = Class              #134          // org/assertj/core/api/ListAssert\n-   #93 = Utf8               dev/langchain4j/agent/tool/ToolParametersTest\n-   #94 = Utf8               org/assertj/core/api/WithAssertions\n-   #95 = Utf8               dev/langchain4j/agent/tool/ToolParameters\n-   #96 = Utf8               builder\n-   #97 = Utf8               Builder\n-   #98 = Utf8               InnerClasses\n-   #99 = Utf8               ()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-  #100 = Utf8               dev/langchain4j/agent/tool/ToolParameters$Builder\n-  #101 = Utf8               type\n-  #102 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-  #103 = Utf8               java/lang/Integer\n-  #104 = Utf8               valueOf\n-  #105 = Utf8               (I)Ljava/lang/Integer;\n-  #106 = Utf8               java/util/Collections\n-  #107 = Utf8               singletonMap\n-  #108 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-  #109 = Utf8               properties\n-  #110 = Utf8               (Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-  #111 = Utf8               singletonList\n-  #112 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n-  #113 = Utf8               required\n-  #114 = Utf8               (Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-  #115 = Utf8               build\n-  #116 = Utf8               ()Ldev/langchain4j/agent/tool/ToolParameters;\n-  #117 = Utf8               assertThat\n-  #118 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #119 = Utf8               isEqualTo\n-  #120 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #121 = Utf8               isNotEqualTo\n-  #122 = Utf8               hasSameHashCodeAs\n-  #123 = Utf8               doesNotHaveSameHashCodeAs\n-  #124 = Utf8               toString\n-  #125 = Utf8               ()Ljava/lang/String;\n-  #126 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #127 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #128 = Utf8               ()Ljava/util/Map;\n-  #129 = Utf8               (Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n-  #130 = Utf8               org/assertj/core/api/MapAssert\n-  #131 = Utf8               isEmpty\n-  #132 = Utf8               ()Ljava/util/List;\n-  #133 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #134 = Utf8               org/assertj/core/api/ListAssert\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Methodref          #8.#9         // dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+    #8 = Class              #10           // dev/langchain4j/agent/tool/ToolParameters\n+    #9 = NameAndType        #11:#12       // builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+   #10 = Utf8               dev/langchain4j/agent/tool/ToolParameters\n+   #11 = Utf8               builder\n+   #12 = Utf8               ()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+   #13 = String             #14           // foo\n+   #14 = Utf8               foo\n+   #15 = Methodref          #16.#17       // dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+   #16 = Class              #18           // dev/langchain4j/agent/tool/ToolParameters$Builder\n+   #17 = NameAndType        #19:#20       // type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+   #18 = Utf8               dev/langchain4j/agent/tool/ToolParameters$Builder\n+   #19 = Utf8               type\n+   #20 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+   #21 = String             #22           // abc\n+   #22 = Utf8               abc\n+   #23 = String             #24           // xyz\n+   #24 = Utf8               xyz\n+   #25 = Methodref          #26.#27       // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+   #26 = Class              #28           // java/lang/Integer\n+   #27 = NameAndType        #29:#30       // valueOf:(I)Ljava/lang/Integer;\n+   #28 = Utf8               java/lang/Integer\n+   #29 = Utf8               valueOf\n+   #30 = Utf8               (I)Ljava/lang/Integer;\n+   #31 = Methodref          #32.#33       // java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+   #32 = Class              #34           // java/util/Collections\n+   #33 = NameAndType        #35:#36       // singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+   #34 = Utf8               java/util/Collections\n+   #35 = Utf8               singletonMap\n+   #36 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+   #37 = Methodref          #16.#38       // dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+   #38 = NameAndType        #39:#40       // properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+   #39 = Utf8               properties\n+   #40 = Utf8               (Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+   #41 = String             #42           // jkl\n+   #42 = Utf8               jkl\n+   #43 = Methodref          #32.#44       // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+   #44 = NameAndType        #45:#46       // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+   #45 = Utf8               singletonList\n+   #46 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n+   #47 = Methodref          #16.#48       // dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+   #48 = NameAndType        #49:#50       // required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+   #49 = Utf8               required\n+   #50 = Utf8               (Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+   #51 = Methodref          #16.#52       // dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n+   #52 = NameAndType        #53:#54       // build:()Ldev/langchain4j/agent/tool/ToolParameters;\n+   #53 = Utf8               build\n+   #54 = Utf8               ()Ldev/langchain4j/agent/tool/ToolParameters;\n+   #55 = Methodref          #56.#57       // dev/langchain4j/agent/tool/ToolParametersTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #56 = Class              #58           // dev/langchain4j/agent/tool/ToolParametersTest\n+   #57 = NameAndType        #59:#60       // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #58 = Utf8               dev/langchain4j/agent/tool/ToolParametersTest\n+   #59 = Utf8               assertThat\n+   #60 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #61 = Methodref          #62.#63       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #62 = Class              #64           // org/assertj/core/api/ObjectAssert\n+   #63 = NameAndType        #65:#66       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #64 = Utf8               org/assertj/core/api/ObjectAssert\n+   #65 = Utf8               isEqualTo\n+   #66 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #67 = Methodref          #62.#68       // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #68 = NameAndType        #69:#66       // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #69 = Utf8               isNotEqualTo\n+   #70 = Methodref          #62.#71       // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #71 = NameAndType        #72:#66       // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #72 = Utf8               hasSameHashCodeAs\n+   #73 = String             #74           // changed\n+   #74 = Utf8               changed\n+   #75 = Methodref          #62.#76       // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #76 = NameAndType        #77:#66       // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #77 = Utf8               doesNotHaveSameHashCodeAs\n+   #78 = Methodref          #8.#79        // dev/langchain4j/agent/tool/ToolParameters.toString:()Ljava/lang/String;\n+   #79 = NameAndType        #80:#81       // toString:()Ljava/lang/String;\n+   #80 = Utf8               toString\n+   #81 = Utf8               ()Ljava/lang/String;\n+   #82 = Methodref          #56.#83       // dev/langchain4j/agent/tool/ToolParametersTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #83 = NameAndType        #59:#84       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #84 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #85 = String             #86           // ToolParameters { type = \\\"foo\\\", properties = {abc={xyz=12}}, required = [jkl] }\n+   #86 = Utf8               ToolParameters { type = \\\"foo\\\", properties = {abc={xyz=12}}, required = [jkl] }\n+   #87 = Methodref          #88.#89       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #88 = Class              #90           // org/assertj/core/api/AbstractStringAssert\n+   #89 = NameAndType        #65:#84       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #90 = Utf8               org/assertj/core/api/AbstractStringAssert\n+   #91 = Methodref          #8.#92        // dev/langchain4j/agent/tool/ToolParameters.type:()Ljava/lang/String;\n+   #92 = NameAndType        #19:#81       // type:()Ljava/lang/String;\n+   #93 = String             #94           // object\n+   #94 = Utf8               object\n+   #95 = Methodref          #8.#96        // dev/langchain4j/agent/tool/ToolParameters.properties:()Ljava/util/Map;\n+   #96 = NameAndType        #39:#97       // properties:()Ljava/util/Map;\n+   #97 = Utf8               ()Ljava/util/Map;\n+   #98 = Methodref          #56.#99       // dev/langchain4j/agent/tool/ToolParametersTest.assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n+   #99 = NameAndType        #59:#100      // assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n+  #100 = Utf8               (Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n+  #101 = Methodref          #102.#103     // org/assertj/core/api/MapAssert.isEmpty:()V\n+  #102 = Class              #104          // org/assertj/core/api/MapAssert\n+  #103 = NameAndType        #105:#6       // isEmpty:()V\n+  #104 = Utf8               org/assertj/core/api/MapAssert\n+  #105 = Utf8               isEmpty\n+  #106 = Methodref          #8.#107       // dev/langchain4j/agent/tool/ToolParameters.required:()Ljava/util/List;\n+  #107 = NameAndType        #49:#108      // required:()Ljava/util/List;\n+  #108 = Utf8               ()Ljava/util/List;\n+  #109 = Methodref          #56.#110      // dev/langchain4j/agent/tool/ToolParametersTest.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #110 = NameAndType        #59:#111      // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #111 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #112 = Methodref          #113.#103     // org/assertj/core/api/ListAssert.isEmpty:()V\n+  #113 = Class              #114          // org/assertj/core/api/ListAssert\n+  #114 = Utf8               org/assertj/core/api/ListAssert\n+  #115 = Class              #116          // org/assertj/core/api/WithAssertions\n+  #116 = Utf8               org/assertj/core/api/WithAssertions\n+  #117 = Utf8               Code\n+  #118 = Utf8               LineNumberTable\n+  #119 = Utf8               LocalVariableTable\n+  #120 = Utf8               this\n+  #121 = Utf8               Ldev/langchain4j/agent/tool/ToolParametersTest;\n+  #122 = Utf8               test_equals_hash\n+  #123 = Utf8               tp1\n+  #124 = Utf8               Ldev/langchain4j/agent/tool/ToolParameters;\n+  #125 = Utf8               tp2\n+  #126 = Utf8               RuntimeVisibleAnnotations\n+  #127 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #128 = Utf8               test_toString\n+  #129 = Utf8               parameters\n+  #130 = Utf8               test_builder\n+  #131 = Utf8               SourceFile\n+  #132 = Utf8               ToolParametersTest.java\n+  #133 = Utf8               InnerClasses\n+  #134 = Utf8               Builder\n {\n   dev.langchain4j.agent.tool.ToolParametersTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -158,128 +158,128 @@\n             0       5     0  this   Ldev/langchain4j/agent/tool/ToolParametersTest;\n \n   public void test_equals_hash();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=5, locals=3, args_size=1\n-         0: invokestatic  #2                  // Method dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-         3: ldc           #3                  // String foo\n-         5: invokevirtual #4                  // Method dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-         8: ldc           #5                  // String abc\n-        10: ldc           #6                  // String xyz\n+         0: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+         3: ldc           #13                 // String foo\n+         5: invokevirtual #15                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+         8: ldc           #21                 // String abc\n+        10: ldc           #23                 // String xyz\n         12: bipush        12\n-        14: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-        17: invokestatic  #8                  // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-        20: invokestatic  #8                  // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-        23: invokevirtual #9                  // Method dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-        26: ldc           #10                 // String jkl\n-        28: invokestatic  #11                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-        31: invokevirtual #12                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-        34: invokevirtual #13                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n+        14: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        17: invokestatic  #31                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+        20: invokestatic  #31                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+        23: invokevirtual #37                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+        26: ldc           #41                 // String jkl\n+        28: invokestatic  #43                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+        31: invokevirtual #47                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+        34: invokevirtual #51                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n         37: astore_1\n-        38: invokestatic  #2                  // Method dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-        41: ldc           #3                  // String foo\n-        43: invokevirtual #4                  // Method dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-        46: ldc           #5                  // String abc\n-        48: ldc           #6                  // String xyz\n+        38: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+        41: ldc           #13                 // String foo\n+        43: invokevirtual #15                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+        46: ldc           #21                 // String abc\n+        48: ldc           #23                 // String xyz\n         50: bipush        12\n-        52: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-        55: invokestatic  #8                  // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-        58: invokestatic  #8                  // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-        61: invokevirtual #9                  // Method dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-        64: ldc           #10                 // String jkl\n-        66: invokestatic  #11                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-        69: invokevirtual #12                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-        72: invokevirtual #13                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n+        52: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        55: invokestatic  #31                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+        58: invokestatic  #31                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+        61: invokevirtual #37                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+        64: ldc           #41                 // String jkl\n+        66: invokestatic  #43                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+        69: invokevirtual #47                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+        72: invokevirtual #51                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n         75: astore_2\n         76: aload_0\n         77: aload_1\n-        78: invokevirtual #14                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        78: invokevirtual #55                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         81: aload_1\n-        82: invokevirtual #15                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        85: checkcast     #16                 // class org/assertj/core/api/ObjectAssert\n+        82: invokevirtual #61                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        85: checkcast     #62                 // class org/assertj/core/api/ObjectAssert\n         88: aconst_null\n-        89: invokevirtual #17                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        92: checkcast     #16                 // class org/assertj/core/api/ObjectAssert\n-        95: new           #18                 // class java/lang/Object\n+        89: invokevirtual #67                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        92: checkcast     #62                 // class org/assertj/core/api/ObjectAssert\n+        95: new           #2                  // class java/lang/Object\n         98: dup\n         99: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n-       102: invokevirtual #17                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       105: checkcast     #16                 // class org/assertj/core/api/ObjectAssert\n+       102: invokevirtual #67                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       105: checkcast     #62                 // class org/assertj/core/api/ObjectAssert\n        108: aload_2\n-       109: invokevirtual #15                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       112: checkcast     #16                 // class org/assertj/core/api/ObjectAssert\n+       109: invokevirtual #61                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       112: checkcast     #62                 // class org/assertj/core/api/ObjectAssert\n        115: aload_2\n-       116: invokevirtual #19                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       116: invokevirtual #70                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        119: pop\n        120: aload_0\n-       121: invokestatic  #2                  // Method dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-       124: ldc           #20                 // String changed\n-       126: invokevirtual #4                  // Method dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-       129: ldc           #5                  // String abc\n-       131: ldc           #6                  // String xyz\n+       121: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+       124: ldc           #73                 // String changed\n+       126: invokevirtual #15                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+       129: ldc           #21                 // String abc\n+       131: ldc           #23                 // String xyz\n        133: bipush        12\n-       135: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-       138: invokestatic  #8                  // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-       141: invokestatic  #8                  // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-       144: invokevirtual #9                  // Method dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-       147: ldc           #10                 // String jkl\n-       149: invokestatic  #11                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-       152: invokevirtual #12                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-       155: invokevirtual #13                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n-       158: invokevirtual #14                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       135: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       138: invokestatic  #31                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+       141: invokestatic  #31                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+       144: invokevirtual #37                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+       147: ldc           #41                 // String jkl\n+       149: invokestatic  #43                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+       152: invokevirtual #47                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+       155: invokevirtual #51                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n+       158: invokevirtual #55                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        161: aload_1\n-       162: invokevirtual #17                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       165: checkcast     #16                 // class org/assertj/core/api/ObjectAssert\n+       162: invokevirtual #67                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       165: checkcast     #62                 // class org/assertj/core/api/ObjectAssert\n        168: aload_1\n-       169: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       169: invokevirtual #75                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        172: pop\n        173: aload_0\n-       174: invokestatic  #2                  // Method dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-       177: ldc           #3                  // String foo\n-       179: invokevirtual #4                  // Method dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-       182: ldc           #5                  // String abc\n-       184: ldc           #6                  // String xyz\n-       186: ldc           #20                 // String changed\n-       188: invokestatic  #8                  // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-       191: invokestatic  #8                  // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-       194: invokevirtual #9                  // Method dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-       197: ldc           #10                 // String jkl\n-       199: invokestatic  #11                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-       202: invokevirtual #12                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-       205: invokevirtual #13                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n-       208: invokevirtual #14                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       174: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+       177: ldc           #13                 // String foo\n+       179: invokevirtual #15                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+       182: ldc           #21                 // String abc\n+       184: ldc           #23                 // String xyz\n+       186: ldc           #73                 // String changed\n+       188: invokestatic  #31                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+       191: invokestatic  #31                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+       194: invokevirtual #37                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+       197: ldc           #41                 // String jkl\n+       199: invokestatic  #43                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+       202: invokevirtual #47                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+       205: invokevirtual #51                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n+       208: invokevirtual #55                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        211: aload_1\n-       212: invokevirtual #17                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       215: checkcast     #16                 // class org/assertj/core/api/ObjectAssert\n+       212: invokevirtual #67                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       215: checkcast     #62                 // class org/assertj/core/api/ObjectAssert\n        218: aload_1\n-       219: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       219: invokevirtual #75                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        222: pop\n        223: aload_0\n-       224: invokestatic  #2                  // Method dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-       227: ldc           #3                  // String foo\n-       229: invokevirtual #4                  // Method dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-       232: ldc           #5                  // String abc\n-       234: ldc           #6                  // String xyz\n+       224: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+       227: ldc           #13                 // String foo\n+       229: invokevirtual #15                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+       232: ldc           #21                 // String abc\n+       234: ldc           #23                 // String xyz\n        236: bipush        12\n-       238: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-       241: invokestatic  #8                  // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-       244: invokestatic  #8                  // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-       247: invokevirtual #9                  // Method dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-       250: ldc           #20                 // String changed\n-       252: invokestatic  #11                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-       255: invokevirtual #12                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-       258: invokevirtual #13                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n-       261: invokevirtual #14                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       238: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       241: invokestatic  #31                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+       244: invokestatic  #31                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+       247: invokevirtual #37                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+       250: ldc           #73                 // String changed\n+       252: invokestatic  #43                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+       255: invokevirtual #47                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+       258: invokevirtual #51                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n+       261: invokevirtual #55                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        264: aload_1\n-       265: invokevirtual #17                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       268: checkcast     #16                 // class org/assertj/core/api/ObjectAssert\n+       265: invokevirtual #67                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       268: checkcast     #62                 // class org/assertj/core/api/ObjectAssert\n        271: aload_1\n-       272: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       272: invokevirtual #75                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        275: pop\n        276: return\n       LineNumberTable:\n         line 12: 0\n         line 13: 5\n         line 14: 14\n         line 15: 28\n@@ -322,43 +322,43 @@\n         line 53: 276\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     277     0  this   Ldev/langchain4j/agent/tool/ToolParametersTest;\n            38     239     1   tp1   Ldev/langchain4j/agent/tool/ToolParameters;\n            76     201     2   tp2   Ldev/langchain4j/agent/tool/ToolParameters;\n     RuntimeVisibleAnnotations:\n-      0: #48()\n+      0: #127()\n         org.junit.jupiter.api.Test\n \n   public void test_toString();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=4, locals=2, args_size=1\n-         0: invokestatic  #2                  // Method dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-         3: ldc           #3                  // String foo\n-         5: invokevirtual #4                  // Method dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-         8: ldc           #5                  // String abc\n-        10: ldc           #6                  // String xyz\n+         0: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+         3: ldc           #13                 // String foo\n+         5: invokevirtual #15                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+         8: ldc           #21                 // String abc\n+        10: ldc           #23                 // String xyz\n         12: bipush        12\n-        14: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-        17: invokestatic  #8                  // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-        20: invokestatic  #8                  // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-        23: invokevirtual #9                  // Method dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-        26: ldc           #10                 // String jkl\n-        28: invokestatic  #11                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-        31: invokevirtual #12                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-        34: invokevirtual #13                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n+        14: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        17: invokestatic  #31                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+        20: invokestatic  #31                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+        23: invokevirtual #37                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+        26: ldc           #41                 // String jkl\n+        28: invokestatic  #43                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+        31: invokevirtual #47                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+        34: invokevirtual #51                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n         37: astore_1\n         38: aload_0\n         39: aload_1\n-        40: invokevirtual #22                 // Method dev/langchain4j/agent/tool/ToolParameters.toString:()Ljava/lang/String;\n-        43: invokevirtual #23                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        46: ldc           #24                 // String ToolParameters { type = \\\"foo\\\", properties = {abc={xyz=12}}, required = [jkl] }\n-        48: invokevirtual #25                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        40: invokevirtual #78                 // Method dev/langchain4j/agent/tool/ToolParameters.toString:()Ljava/lang/String;\n+        43: invokevirtual #82                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        46: ldc           #85                 // String ToolParameters { type = \\\"foo\\\", properties = {abc={xyz=12}}, required = [jkl] }\n+        48: invokevirtual #87                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         51: pop\n         52: return\n       LineNumberTable:\n         line 57: 0\n         line 58: 5\n         line 59: 14\n         line 60: 28\n@@ -366,53 +366,53 @@\n         line 62: 38\n         line 63: 52\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      53     0  this   Ldev/langchain4j/agent/tool/ToolParametersTest;\n            38      15     1 parameters   Ldev/langchain4j/agent/tool/ToolParameters;\n     RuntimeVisibleAnnotations:\n-      0: #48()\n+      0: #127()\n         org.junit.jupiter.api.Test\n \n   public void test_builder();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=1\n-         0: invokestatic  #2                  // Method dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-         3: invokevirtual #13                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n+         0: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+         3: invokevirtual #51                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n          6: astore_1\n          7: aload_0\n          8: aload_1\n-         9: invokevirtual #26                 // Method dev/langchain4j/agent/tool/ToolParameters.type:()Ljava/lang/String;\n-        12: invokevirtual #23                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        15: ldc           #27                 // String object\n-        17: invokevirtual #25                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+         9: invokevirtual #91                 // Method dev/langchain4j/agent/tool/ToolParameters.type:()Ljava/lang/String;\n+        12: invokevirtual #82                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        15: ldc           #93                 // String object\n+        17: invokevirtual #87                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         20: pop\n         21: aload_0\n         22: aload_1\n-        23: invokevirtual #28                 // Method dev/langchain4j/agent/tool/ToolParameters.properties:()Ljava/util/Map;\n-        26: invokevirtual #29                 // Method assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n-        29: invokevirtual #30                 // Method org/assertj/core/api/MapAssert.isEmpty:()V\n+        23: invokevirtual #95                 // Method dev/langchain4j/agent/tool/ToolParameters.properties:()Ljava/util/Map;\n+        26: invokevirtual #98                 // Method assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n+        29: invokevirtual #101                // Method org/assertj/core/api/MapAssert.isEmpty:()V\n         32: aload_0\n         33: aload_1\n-        34: invokevirtual #31                 // Method dev/langchain4j/agent/tool/ToolParameters.required:()Ljava/util/List;\n-        37: invokevirtual #32                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-        40: invokevirtual #33                 // Method org/assertj/core/api/ListAssert.isEmpty:()V\n+        34: invokevirtual #106                // Method dev/langchain4j/agent/tool/ToolParameters.required:()Ljava/util/List;\n+        37: invokevirtual #109                // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+        40: invokevirtual #112                // Method org/assertj/core/api/ListAssert.isEmpty:()V\n         43: return\n       LineNumberTable:\n         line 69: 0\n         line 70: 7\n         line 71: 21\n         line 72: 32\n         line 74: 43\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             7      36     1 parameters   Ldev/langchain4j/agent/tool/ToolParameters;\n             0      44     0  this   Ldev/langchain4j/agent/tool/ToolParametersTest;\n     RuntimeVisibleAnnotations:\n-      0: #48()\n+      0: #127()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"ToolParametersTest.java\"\n InnerClasses:\n-  public static final #97= #58 of #55;    // Builder=class dev/langchain4j/agent/tool/ToolParameters$Builder of class dev/langchain4j/agent/tool/ToolParameters\n+  public static final #134= #16 of #8;    // Builder=class dev/langchain4j/agent/tool/ToolParameters$Builder of class dev/langchain4j/agent/tool/ToolParameters\n"}]}, {"source1": "dev/langchain4j/agent/tool/ToolSpecificationTest.class", "source2": "dev/langchain4j/agent/tool/ToolSpecificationTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,216 +1,216 @@\n-  SHA-256 checksum 38ddadf3b769b166b71c86a18a10639fc141e5203eac42db3ec1cabbff7dae48\n+  SHA-256 checksum 06b188939b321c15608549f31baa907731f70e6dd5704ef2135083704f803a54\n   Compiled from \"ToolSpecificationTest.java\"\n class dev.langchain4j.agent.tool.ToolSpecificationTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #58                         // dev/langchain4j/agent/tool/ToolSpecificationTest\n-  super_class: #52                        // java/lang/Object\n+  this_class: #75                         // dev/langchain4j/agent/tool/ToolSpecificationTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 5, attributes: 2\n Constant pool:\n-    #1 = Methodref          #52.#79       // java/lang/Object.\"<init>\":()V\n-    #2 = Methodref          #80.#81       // dev/langchain4j/agent/tool/ToolSpecification.builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-    #3 = String             #82           // name\n-    #4 = Methodref          #83.#84       // dev/langchain4j/agent/tool/ToolSpecification$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-    #5 = String             #85           // description\n-    #6 = Methodref          #83.#86       // dev/langchain4j/agent/tool/ToolSpecification$Builder.description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-    #7 = Methodref          #87.#88       // dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-    #8 = String             #89           // type\n-    #9 = Methodref          #90.#91       // dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-   #10 = String             #92           // foo\n-   #11 = String             #93           // bar\n-   #12 = String             #94           // baz\n-   #13 = Methodref          #95.#96       // java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-   #14 = Methodref          #90.#97       // dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-   #15 = Methodref          #95.#98       // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-   #16 = Methodref          #90.#99       // dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-   #17 = Methodref          #90.#100      // dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n-   #18 = Methodref          #83.#101      // dev/langchain4j/agent/tool/ToolSpecification$Builder.parameters:(Ldev/langchain4j/agent/tool/ToolParameters;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-   #19 = Methodref          #83.#102      // dev/langchain4j/agent/tool/ToolSpecification$Builder.build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n-   #20 = Methodref          #80.#103      // dev/langchain4j/agent/tool/ToolSpecification.name:()Ljava/lang/String;\n-   #21 = Methodref          #58.#104      // dev/langchain4j/agent/tool/ToolSpecificationTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #22 = Methodref          #105.#106     // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #23 = Methodref          #80.#107      // dev/langchain4j/agent/tool/ToolSpecification.description:()Ljava/lang/String;\n-   #24 = Methodref          #80.#108      // dev/langchain4j/agent/tool/ToolSpecification.parameters:()Ldev/langchain4j/agent/tool/ToolParameters;\n-   #25 = Methodref          #87.#109      // dev/langchain4j/agent/tool/ToolParameters.type:()Ljava/lang/String;\n-   #26 = String             #110          // req\n-   #27 = Class              #111          // dev/langchain4j/agent/tool/JsonSchemaProperty\n-   #28 = Fieldref           #27.#112      // dev/langchain4j/agent/tool/JsonSchemaProperty.BOOLEAN:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-   #29 = Methodref          #83.#113      // dev/langchain4j/agent/tool/ToolSpecification$Builder.addParameter:(Ljava/lang/String;[Ldev/langchain4j/agent/tool/JsonSchemaProperty;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-   #30 = Fieldref           #27.#114      // dev/langchain4j/agent/tool/JsonSchemaProperty.STRING:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-   #31 = Methodref          #27.#115      // dev/langchain4j/agent/tool/JsonSchemaProperty.description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-   #32 = Methodref          #83.#116      // dev/langchain4j/agent/tool/ToolSpecification$Builder.addOptionalParameter:(Ljava/lang/String;[Ldev/langchain4j/agent/tool/JsonSchemaProperty;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-   #33 = Fieldref           #27.#117      // dev/langchain4j/agent/tool/JsonSchemaProperty.INTEGER:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-   #34 = String             #118          // object\n-   #35 = Methodref          #87.#119      // dev/langchain4j/agent/tool/ToolParameters.properties:()Ljava/util/Map;\n-   #36 = InterfaceMethodref #37.#120      // java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object;\n-   #37 = Class              #121          // java/util/Map\n-   #38 = Methodref          #58.#122      // dev/langchain4j/agent/tool/ToolSpecificationTest.assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n-   #39 = String             #123          // boolean\n-   #40 = Methodref          #42.#124      // org/assertj/core/api/MapAssert.containsEntry:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n-   #41 = String             #125          // string\n-   #42 = Class              #126          // org/assertj/core/api/MapAssert\n-   #43 = String             #127          // integer\n-   #44 = Methodref          #87.#128      // dev/langchain4j/agent/tool/ToolParameters.required:()Ljava/util/List;\n-   #45 = Methodref          #58.#129      // dev/langchain4j/agent/tool/ToolSpecificationTest.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-   #46 = Class              #130          // java/lang/String\n-   #47 = Methodref          #131.#132     // org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-   #48 = Methodref          #58.#133      // dev/langchain4j/agent/tool/ToolSpecificationTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #49 = Methodref          #50.#134      // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #50 = Class              #135          // org/assertj/core/api/ObjectAssert\n-   #51 = Methodref          #50.#136      // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #52 = Class              #137          // java/lang/Object\n-   #53 = Methodref          #50.#138      // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #54 = String             #139          // changed\n-   #55 = Methodref          #50.#140      // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #56 = Methodref          #80.#141      // dev/langchain4j/agent/tool/ToolSpecification.toString:()Ljava/lang/String;\n-   #57 = String             #142          // ToolSpecification { name = \\\"name\\\", description = \\\"description\\\", parameters = ToolParameters { type = \\\"type\\\", properties = {foo={bar=baz}}, required = [foo] } }\n-   #58 = Class              #143          // dev/langchain4j/agent/tool/ToolSpecificationTest\n-   #59 = Class              #144          // org/assertj/core/api/WithAssertions\n-   #60 = Utf8               <init>\n-   #61 = Utf8               ()V\n-   #62 = Utf8               Code\n-   #63 = Utf8               LineNumberTable\n-   #64 = Utf8               LocalVariableTable\n-   #65 = Utf8               this\n-   #66 = Utf8               Ldev/langchain4j/agent/tool/ToolSpecificationTest;\n-   #67 = Utf8               test_builder\n-   #68 = Utf8               ts\n-   #69 = Utf8               Ldev/langchain4j/agent/tool/ToolSpecification;\n-   #70 = Utf8               RuntimeVisibleAnnotations\n-   #71 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #72 = Utf8               test_parameter_builder\n-   #73 = Utf8               test_equals_hash\n-   #74 = Utf8               sp1\n-   #75 = Utf8               sp2\n-   #76 = Utf8               test_toString\n-   #77 = Utf8               SourceFile\n-   #78 = Utf8               ToolSpecificationTest.java\n-   #79 = NameAndType        #60:#61       // \"<init>\":()V\n-   #80 = Class              #145          // dev/langchain4j/agent/tool/ToolSpecification\n-   #81 = NameAndType        #146:#149     // builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-   #82 = Utf8               name\n-   #83 = Class              #150          // dev/langchain4j/agent/tool/ToolSpecification$Builder\n-   #84 = NameAndType        #82:#151      // name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-   #85 = Utf8               description\n-   #86 = NameAndType        #85:#151      // description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-   #87 = Class              #152          // dev/langchain4j/agent/tool/ToolParameters\n-   #88 = NameAndType        #146:#153     // builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-   #89 = Utf8               type\n-   #90 = Class              #154          // dev/langchain4j/agent/tool/ToolParameters$Builder\n-   #91 = NameAndType        #89:#155      // type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-   #92 = Utf8               foo\n-   #93 = Utf8               bar\n-   #94 = Utf8               baz\n-   #95 = Class              #156          // java/util/Collections\n-   #96 = NameAndType        #157:#158     // singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-   #97 = NameAndType        #159:#160     // properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-   #98 = NameAndType        #161:#162     // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-   #99 = NameAndType        #163:#164     // required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-  #100 = NameAndType        #165:#166     // build:()Ldev/langchain4j/agent/tool/ToolParameters;\n-  #101 = NameAndType        #167:#168     // parameters:(Ldev/langchain4j/agent/tool/ToolParameters;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-  #102 = NameAndType        #165:#169     // build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n-  #103 = NameAndType        #82:#170      // name:()Ljava/lang/String;\n-  #104 = NameAndType        #171:#172     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #105 = Class              #173          // org/assertj/core/api/AbstractStringAssert\n-  #106 = NameAndType        #174:#172     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #107 = NameAndType        #85:#170      // description:()Ljava/lang/String;\n-  #108 = NameAndType        #167:#166     // parameters:()Ldev/langchain4j/agent/tool/ToolParameters;\n-  #109 = NameAndType        #89:#170      // type:()Ljava/lang/String;\n-  #110 = Utf8               req\n-  #111 = Utf8               dev/langchain4j/agent/tool/JsonSchemaProperty\n-  #112 = NameAndType        #175:#176     // BOOLEAN:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-  #113 = NameAndType        #177:#178     // addParameter:(Ljava/lang/String;[Ldev/langchain4j/agent/tool/JsonSchemaProperty;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-  #114 = NameAndType        #179:#176     // STRING:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-  #115 = NameAndType        #85:#180      // description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-  #116 = NameAndType        #181:#178     // addOptionalParameter:(Ljava/lang/String;[Ldev/langchain4j/agent/tool/JsonSchemaProperty;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-  #117 = NameAndType        #182:#176     // INTEGER:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-  #118 = Utf8               object\n-  #119 = NameAndType        #159:#183     // properties:()Ljava/util/Map;\n-  #120 = NameAndType        #184:#185     // get:(Ljava/lang/Object;)Ljava/lang/Object;\n-  #121 = Utf8               java/util/Map\n-  #122 = NameAndType        #171:#186     // assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n-  #123 = Utf8               boolean\n-  #124 = NameAndType        #187:#188     // containsEntry:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n-  #125 = Utf8               string\n-  #126 = Utf8               org/assertj/core/api/MapAssert\n-  #127 = Utf8               integer\n-  #128 = NameAndType        #163:#189     // required:()Ljava/util/List;\n-  #129 = NameAndType        #171:#190     // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #130 = Utf8               java/lang/String\n-  #131 = Class              #191          // org/assertj/core/api/ListAssert\n-  #132 = NameAndType        #192:#193     // containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #133 = NameAndType        #171:#194     // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #134 = NameAndType        #174:#195     // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #135 = Utf8               org/assertj/core/api/ObjectAssert\n-  #136 = NameAndType        #196:#195     // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #137 = Utf8               java/lang/Object\n-  #138 = NameAndType        #197:#195     // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #139 = Utf8               changed\n-  #140 = NameAndType        #198:#195     // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #141 = NameAndType        #199:#170     // toString:()Ljava/lang/String;\n-  #142 = Utf8               ToolSpecification { name = \\\"name\\\", description = \\\"description\\\", parameters = ToolParameters { type = \\\"type\\\", properties = {foo={bar=baz}}, required = [foo] } }\n-  #143 = Utf8               dev/langchain4j/agent/tool/ToolSpecificationTest\n-  #144 = Utf8               org/assertj/core/api/WithAssertions\n-  #145 = Utf8               dev/langchain4j/agent/tool/ToolSpecification\n-  #146 = Utf8               builder\n-  #147 = Utf8               Builder\n-  #148 = Utf8               InnerClasses\n-  #149 = Utf8               ()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-  #150 = Utf8               dev/langchain4j/agent/tool/ToolSpecification$Builder\n-  #151 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-  #152 = Utf8               dev/langchain4j/agent/tool/ToolParameters\n-  #153 = Utf8               ()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-  #154 = Utf8               dev/langchain4j/agent/tool/ToolParameters$Builder\n-  #155 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-  #156 = Utf8               java/util/Collections\n-  #157 = Utf8               singletonMap\n-  #158 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-  #159 = Utf8               properties\n-  #160 = Utf8               (Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-  #161 = Utf8               singletonList\n-  #162 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n-  #163 = Utf8               required\n-  #164 = Utf8               (Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-  #165 = Utf8               build\n-  #166 = Utf8               ()Ldev/langchain4j/agent/tool/ToolParameters;\n-  #167 = Utf8               parameters\n-  #168 = Utf8               (Ldev/langchain4j/agent/tool/ToolParameters;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-  #169 = Utf8               ()Ldev/langchain4j/agent/tool/ToolSpecification;\n-  #170 = Utf8               ()Ljava/lang/String;\n-  #171 = Utf8               assertThat\n-  #172 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #173 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #174 = Utf8               isEqualTo\n-  #175 = Utf8               BOOLEAN\n-  #176 = Utf8               Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-  #177 = Utf8               addParameter\n-  #178 = Utf8               (Ljava/lang/String;[Ldev/langchain4j/agent/tool/JsonSchemaProperty;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-  #179 = Utf8               STRING\n-  #180 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-  #181 = Utf8               addOptionalParameter\n-  #182 = Utf8               INTEGER\n-  #183 = Utf8               ()Ljava/util/Map;\n-  #184 = Utf8               get\n-  #185 = Utf8               (Ljava/lang/Object;)Ljava/lang/Object;\n-  #186 = Utf8               (Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n-  #187 = Utf8               containsEntry\n-  #188 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n-  #189 = Utf8               ()Ljava/util/List;\n-  #190 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #191 = Utf8               org/assertj/core/api/ListAssert\n-  #192 = Utf8               containsOnly\n-  #193 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #194 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #195 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #196 = Utf8               isNotEqualTo\n-  #197 = Utf8               hasSameHashCodeAs\n-  #198 = Utf8               doesNotHaveSameHashCodeAs\n-  #199 = Utf8               toString\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Methodref          #8.#9         // dev/langchain4j/agent/tool/ToolSpecification.builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+    #8 = Class              #10           // dev/langchain4j/agent/tool/ToolSpecification\n+    #9 = NameAndType        #11:#12       // builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+   #10 = Utf8               dev/langchain4j/agent/tool/ToolSpecification\n+   #11 = Utf8               builder\n+   #12 = Utf8               ()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+   #13 = String             #14           // name\n+   #14 = Utf8               name\n+   #15 = Methodref          #16.#17       // dev/langchain4j/agent/tool/ToolSpecification$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+   #16 = Class              #18           // dev/langchain4j/agent/tool/ToolSpecification$Builder\n+   #17 = NameAndType        #14:#19       // name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+   #18 = Utf8               dev/langchain4j/agent/tool/ToolSpecification$Builder\n+   #19 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+   #20 = String             #21           // description\n+   #21 = Utf8               description\n+   #22 = Methodref          #16.#23       // dev/langchain4j/agent/tool/ToolSpecification$Builder.description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+   #23 = NameAndType        #21:#19       // description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+   #24 = Methodref          #25.#26       // dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+   #25 = Class              #27           // dev/langchain4j/agent/tool/ToolParameters\n+   #26 = NameAndType        #11:#28       // builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+   #27 = Utf8               dev/langchain4j/agent/tool/ToolParameters\n+   #28 = Utf8               ()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+   #29 = String             #30           // type\n+   #30 = Utf8               type\n+   #31 = Methodref          #32.#33       // dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+   #32 = Class              #34           // dev/langchain4j/agent/tool/ToolParameters$Builder\n+   #33 = NameAndType        #30:#35       // type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+   #34 = Utf8               dev/langchain4j/agent/tool/ToolParameters$Builder\n+   #35 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+   #36 = String             #37           // foo\n+   #37 = Utf8               foo\n+   #38 = String             #39           // bar\n+   #39 = Utf8               bar\n+   #40 = String             #41           // baz\n+   #41 = Utf8               baz\n+   #42 = Methodref          #43.#44       // java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+   #43 = Class              #45           // java/util/Collections\n+   #44 = NameAndType        #46:#47       // singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+   #45 = Utf8               java/util/Collections\n+   #46 = Utf8               singletonMap\n+   #47 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+   #48 = Methodref          #32.#49       // dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+   #49 = NameAndType        #50:#51       // properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+   #50 = Utf8               properties\n+   #51 = Utf8               (Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+   #52 = Methodref          #43.#53       // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+   #53 = NameAndType        #54:#55       // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+   #54 = Utf8               singletonList\n+   #55 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n+   #56 = Methodref          #32.#57       // dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+   #57 = NameAndType        #58:#59       // required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+   #58 = Utf8               required\n+   #59 = Utf8               (Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+   #60 = Methodref          #32.#61       // dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n+   #61 = NameAndType        #62:#63       // build:()Ldev/langchain4j/agent/tool/ToolParameters;\n+   #62 = Utf8               build\n+   #63 = Utf8               ()Ldev/langchain4j/agent/tool/ToolParameters;\n+   #64 = Methodref          #16.#65       // dev/langchain4j/agent/tool/ToolSpecification$Builder.parameters:(Ldev/langchain4j/agent/tool/ToolParameters;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+   #65 = NameAndType        #66:#67       // parameters:(Ldev/langchain4j/agent/tool/ToolParameters;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+   #66 = Utf8               parameters\n+   #67 = Utf8               (Ldev/langchain4j/agent/tool/ToolParameters;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+   #68 = Methodref          #16.#69       // dev/langchain4j/agent/tool/ToolSpecification$Builder.build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n+   #69 = NameAndType        #62:#70       // build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n+   #70 = Utf8               ()Ldev/langchain4j/agent/tool/ToolSpecification;\n+   #71 = Methodref          #8.#72        // dev/langchain4j/agent/tool/ToolSpecification.name:()Ljava/lang/String;\n+   #72 = NameAndType        #14:#73       // name:()Ljava/lang/String;\n+   #73 = Utf8               ()Ljava/lang/String;\n+   #74 = Methodref          #75.#76       // dev/langchain4j/agent/tool/ToolSpecificationTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #75 = Class              #77           // dev/langchain4j/agent/tool/ToolSpecificationTest\n+   #76 = NameAndType        #78:#79       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #77 = Utf8               dev/langchain4j/agent/tool/ToolSpecificationTest\n+   #78 = Utf8               assertThat\n+   #79 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #80 = Methodref          #81.#82       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #81 = Class              #83           // org/assertj/core/api/AbstractStringAssert\n+   #82 = NameAndType        #84:#79       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #83 = Utf8               org/assertj/core/api/AbstractStringAssert\n+   #84 = Utf8               isEqualTo\n+   #85 = Methodref          #8.#86        // dev/langchain4j/agent/tool/ToolSpecification.description:()Ljava/lang/String;\n+   #86 = NameAndType        #21:#73       // description:()Ljava/lang/String;\n+   #87 = Methodref          #8.#88        // dev/langchain4j/agent/tool/ToolSpecification.parameters:()Ldev/langchain4j/agent/tool/ToolParameters;\n+   #88 = NameAndType        #66:#63       // parameters:()Ldev/langchain4j/agent/tool/ToolParameters;\n+   #89 = Methodref          #25.#90       // dev/langchain4j/agent/tool/ToolParameters.type:()Ljava/lang/String;\n+   #90 = NameAndType        #30:#73       // type:()Ljava/lang/String;\n+   #91 = String             #92           // req\n+   #92 = Utf8               req\n+   #93 = Class              #94           // dev/langchain4j/agent/tool/JsonSchemaProperty\n+   #94 = Utf8               dev/langchain4j/agent/tool/JsonSchemaProperty\n+   #95 = Fieldref           #93.#96       // dev/langchain4j/agent/tool/JsonSchemaProperty.BOOLEAN:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+   #96 = NameAndType        #97:#98       // BOOLEAN:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+   #97 = Utf8               BOOLEAN\n+   #98 = Utf8               Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+   #99 = Methodref          #16.#100      // dev/langchain4j/agent/tool/ToolSpecification$Builder.addParameter:(Ljava/lang/String;[Ldev/langchain4j/agent/tool/JsonSchemaProperty;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+  #100 = NameAndType        #101:#102     // addParameter:(Ljava/lang/String;[Ldev/langchain4j/agent/tool/JsonSchemaProperty;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+  #101 = Utf8               addParameter\n+  #102 = Utf8               (Ljava/lang/String;[Ldev/langchain4j/agent/tool/JsonSchemaProperty;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+  #103 = Fieldref           #93.#104      // dev/langchain4j/agent/tool/JsonSchemaProperty.STRING:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+  #104 = NameAndType        #105:#98      // STRING:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+  #105 = Utf8               STRING\n+  #106 = Methodref          #93.#107      // dev/langchain4j/agent/tool/JsonSchemaProperty.description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+  #107 = NameAndType        #21:#108      // description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+  #108 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+  #109 = Methodref          #16.#110      // dev/langchain4j/agent/tool/ToolSpecification$Builder.addOptionalParameter:(Ljava/lang/String;[Ldev/langchain4j/agent/tool/JsonSchemaProperty;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+  #110 = NameAndType        #111:#102     // addOptionalParameter:(Ljava/lang/String;[Ldev/langchain4j/agent/tool/JsonSchemaProperty;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+  #111 = Utf8               addOptionalParameter\n+  #112 = Fieldref           #93.#113      // dev/langchain4j/agent/tool/JsonSchemaProperty.INTEGER:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+  #113 = NameAndType        #114:#98      // INTEGER:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+  #114 = Utf8               INTEGER\n+  #115 = String             #116          // object\n+  #116 = Utf8               object\n+  #117 = Methodref          #25.#118      // dev/langchain4j/agent/tool/ToolParameters.properties:()Ljava/util/Map;\n+  #118 = NameAndType        #50:#119      // properties:()Ljava/util/Map;\n+  #119 = Utf8               ()Ljava/util/Map;\n+  #120 = InterfaceMethodref #121.#122     // java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object;\n+  #121 = Class              #123          // java/util/Map\n+  #122 = NameAndType        #124:#125     // get:(Ljava/lang/Object;)Ljava/lang/Object;\n+  #123 = Utf8               java/util/Map\n+  #124 = Utf8               get\n+  #125 = Utf8               (Ljava/lang/Object;)Ljava/lang/Object;\n+  #126 = Methodref          #75.#127      // dev/langchain4j/agent/tool/ToolSpecificationTest.assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n+  #127 = NameAndType        #78:#128      // assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n+  #128 = Utf8               (Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n+  #129 = String             #130          // boolean\n+  #130 = Utf8               boolean\n+  #131 = Methodref          #132.#133     // org/assertj/core/api/MapAssert.containsEntry:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n+  #132 = Class              #134          // org/assertj/core/api/MapAssert\n+  #133 = NameAndType        #135:#136     // containsEntry:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n+  #134 = Utf8               org/assertj/core/api/MapAssert\n+  #135 = Utf8               containsEntry\n+  #136 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n+  #137 = String             #138          // string\n+  #138 = Utf8               string\n+  #139 = String             #140          // integer\n+  #140 = Utf8               integer\n+  #141 = Methodref          #25.#142      // dev/langchain4j/agent/tool/ToolParameters.required:()Ljava/util/List;\n+  #142 = NameAndType        #58:#143      // required:()Ljava/util/List;\n+  #143 = Utf8               ()Ljava/util/List;\n+  #144 = Methodref          #75.#145      // dev/langchain4j/agent/tool/ToolSpecificationTest.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #145 = NameAndType        #78:#146      // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #146 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #147 = Class              #148          // java/lang/String\n+  #148 = Utf8               java/lang/String\n+  #149 = Methodref          #150.#151     // org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #150 = Class              #152          // org/assertj/core/api/ListAssert\n+  #151 = NameAndType        #153:#154     // containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #152 = Utf8               org/assertj/core/api/ListAssert\n+  #153 = Utf8               containsOnly\n+  #154 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #155 = Methodref          #75.#156      // dev/langchain4j/agent/tool/ToolSpecificationTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+  #156 = NameAndType        #78:#157      // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+  #157 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+  #158 = Methodref          #159.#160     // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #159 = Class              #161          // org/assertj/core/api/ObjectAssert\n+  #160 = NameAndType        #84:#162      // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #161 = Utf8               org/assertj/core/api/ObjectAssert\n+  #162 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #163 = Methodref          #159.#164     // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #164 = NameAndType        #165:#162     // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #165 = Utf8               isNotEqualTo\n+  #166 = Methodref          #159.#167     // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #167 = NameAndType        #168:#162     // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #168 = Utf8               hasSameHashCodeAs\n+  #169 = String             #170          // changed\n+  #170 = Utf8               changed\n+  #171 = Methodref          #159.#172     // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #172 = NameAndType        #173:#162     // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #173 = Utf8               doesNotHaveSameHashCodeAs\n+  #174 = Methodref          #8.#175       // dev/langchain4j/agent/tool/ToolSpecification.toString:()Ljava/lang/String;\n+  #175 = NameAndType        #176:#73      // toString:()Ljava/lang/String;\n+  #176 = Utf8               toString\n+  #177 = String             #178          // ToolSpecification { name = \\\"name\\\", description = \\\"description\\\", parameters = ToolParameters { type = \\\"type\\\", properties = {foo={bar=baz}}, required = [foo] } }\n+  #178 = Utf8               ToolSpecification { name = \\\"name\\\", description = \\\"description\\\", parameters = ToolParameters { type = \\\"type\\\", properties = {foo={bar=baz}}, required = [foo] } }\n+  #179 = Class              #180          // org/assertj/core/api/WithAssertions\n+  #180 = Utf8               org/assertj/core/api/WithAssertions\n+  #181 = Utf8               Code\n+  #182 = Utf8               LineNumberTable\n+  #183 = Utf8               LocalVariableTable\n+  #184 = Utf8               this\n+  #185 = Utf8               Ldev/langchain4j/agent/tool/ToolSpecificationTest;\n+  #186 = Utf8               test_builder\n+  #187 = Utf8               ts\n+  #188 = Utf8               Ldev/langchain4j/agent/tool/ToolSpecification;\n+  #189 = Utf8               RuntimeVisibleAnnotations\n+  #190 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #191 = Utf8               test_parameter_builder\n+  #192 = Utf8               test_equals_hash\n+  #193 = Utf8               sp1\n+  #194 = Utf8               sp2\n+  #195 = Utf8               test_toString\n+  #196 = Utf8               SourceFile\n+  #197 = Utf8               ToolSpecificationTest.java\n+  #198 = Utf8               InnerClasses\n+  #199 = Utf8               Builder\n {\n   dev.langchain4j.agent.tool.ToolSpecificationTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -223,56 +223,56 @@\n             0       5     0  this   Ldev/langchain4j/agent/tool/ToolSpecificationTest;\n \n   public void test_builder();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=5, locals=2, args_size=1\n-         0: invokestatic  #2                  // Method dev/langchain4j/agent/tool/ToolSpecification.builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-         3: ldc           #3                  // String name\n-         5: invokevirtual #4                  // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-         8: ldc           #5                  // String description\n-        10: invokevirtual #6                  // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-        13: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-        16: ldc           #8                  // String type\n-        18: invokevirtual #9                  // Method dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-        21: ldc           #10                 // String foo\n-        23: ldc           #11                 // String bar\n-        25: ldc           #12                 // String baz\n-        27: invokestatic  #13                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-        30: invokestatic  #13                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-        33: invokevirtual #14                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-        36: ldc           #10                 // String foo\n-        38: invokestatic  #15                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-        41: invokevirtual #16                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-        44: invokevirtual #17                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n-        47: invokevirtual #18                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.parameters:(Ldev/langchain4j/agent/tool/ToolParameters;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-        50: invokevirtual #19                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n+         0: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolSpecification.builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+         3: ldc           #13                 // String name\n+         5: invokevirtual #15                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+         8: ldc           #20                 // String description\n+        10: invokevirtual #22                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+        13: invokestatic  #24                 // Method dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+        16: ldc           #29                 // String type\n+        18: invokevirtual #31                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+        21: ldc           #36                 // String foo\n+        23: ldc           #38                 // String bar\n+        25: ldc           #40                 // String baz\n+        27: invokestatic  #42                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+        30: invokestatic  #42                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+        33: invokevirtual #48                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+        36: ldc           #36                 // String foo\n+        38: invokestatic  #52                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+        41: invokevirtual #56                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+        44: invokevirtual #60                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n+        47: invokevirtual #64                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.parameters:(Ldev/langchain4j/agent/tool/ToolParameters;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+        50: invokevirtual #68                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n         53: astore_1\n         54: aload_0\n         55: aload_1\n-        56: invokevirtual #20                 // Method dev/langchain4j/agent/tool/ToolSpecification.name:()Ljava/lang/String;\n-        59: invokevirtual #21                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        62: ldc           #3                  // String name\n-        64: invokevirtual #22                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        56: invokevirtual #71                 // Method dev/langchain4j/agent/tool/ToolSpecification.name:()Ljava/lang/String;\n+        59: invokevirtual #74                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        62: ldc           #13                 // String name\n+        64: invokevirtual #80                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         67: pop\n         68: aload_0\n         69: aload_1\n-        70: invokevirtual #23                 // Method dev/langchain4j/agent/tool/ToolSpecification.description:()Ljava/lang/String;\n-        73: invokevirtual #21                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        76: ldc           #5                  // String description\n-        78: invokevirtual #22                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        70: invokevirtual #85                 // Method dev/langchain4j/agent/tool/ToolSpecification.description:()Ljava/lang/String;\n+        73: invokevirtual #74                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        76: ldc           #20                 // String description\n+        78: invokevirtual #80                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         81: pop\n         82: aload_0\n         83: aload_1\n-        84: invokevirtual #24                 // Method dev/langchain4j/agent/tool/ToolSpecification.parameters:()Ldev/langchain4j/agent/tool/ToolParameters;\n-        87: invokevirtual #25                 // Method dev/langchain4j/agent/tool/ToolParameters.type:()Ljava/lang/String;\n-        90: invokevirtual #21                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        93: ldc           #8                  // String type\n-        95: invokevirtual #22                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        84: invokevirtual #87                 // Method dev/langchain4j/agent/tool/ToolSpecification.parameters:()Ldev/langchain4j/agent/tool/ToolParameters;\n+        87: invokevirtual #89                 // Method dev/langchain4j/agent/tool/ToolParameters.type:()Ljava/lang/String;\n+        90: invokevirtual #74                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        93: ldc           #29                 // String type\n+        95: invokevirtual #80                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         98: pop\n         99: return\n       LineNumberTable:\n         line 11: 0\n         line 12: 5\n         line 13: 10\n         line 14: 13\n@@ -287,132 +287,132 @@\n         line 23: 82\n         line 24: 99\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     100     0  this   Ldev/langchain4j/agent/tool/ToolSpecificationTest;\n            54      46     1    ts   Ldev/langchain4j/agent/tool/ToolSpecification;\n     RuntimeVisibleAnnotations:\n-      0: #71()\n+      0: #190()\n         org.junit.jupiter.api.Test\n \n   public void test_parameter_builder();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=6, locals=2, args_size=1\n-         0: invokestatic  #2                  // Method dev/langchain4j/agent/tool/ToolSpecification.builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-         3: ldc           #3                  // String name\n-         5: invokevirtual #4                  // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-         8: ldc           #5                  // String description\n-        10: invokevirtual #6                  // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-        13: ldc           #26                 // String req\n+         0: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolSpecification.builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+         3: ldc           #13                 // String name\n+         5: invokevirtual #15                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+         8: ldc           #20                 // String description\n+        10: invokevirtual #22                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+        13: ldc           #91                 // String req\n         15: iconst_1\n-        16: anewarray     #27                 // class dev/langchain4j/agent/tool/JsonSchemaProperty\n+        16: anewarray     #93                 // class dev/langchain4j/agent/tool/JsonSchemaProperty\n         19: dup\n         20: iconst_0\n-        21: getstatic     #28                 // Field dev/langchain4j/agent/tool/JsonSchemaProperty.BOOLEAN:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+        21: getstatic     #95                 // Field dev/langchain4j/agent/tool/JsonSchemaProperty.BOOLEAN:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n         24: aastore\n-        25: invokevirtual #29                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.addParameter:(Ljava/lang/String;[Ldev/langchain4j/agent/tool/JsonSchemaProperty;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-        28: ldc           #10                 // String foo\n+        25: invokevirtual #99                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.addParameter:(Ljava/lang/String;[Ldev/langchain4j/agent/tool/JsonSchemaProperty;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+        28: ldc           #36                 // String foo\n         30: iconst_2\n-        31: anewarray     #27                 // class dev/langchain4j/agent/tool/JsonSchemaProperty\n+        31: anewarray     #93                 // class dev/langchain4j/agent/tool/JsonSchemaProperty\n         34: dup\n         35: iconst_0\n-        36: getstatic     #30                 // Field dev/langchain4j/agent/tool/JsonSchemaProperty.STRING:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+        36: getstatic     #103                // Field dev/langchain4j/agent/tool/JsonSchemaProperty.STRING:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n         39: aastore\n         40: dup\n         41: iconst_1\n-        42: ldc           #5                  // String description\n-        44: invokestatic  #31                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+        42: ldc           #20                 // String description\n+        44: invokestatic  #106                // Method dev/langchain4j/agent/tool/JsonSchemaProperty.description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n         47: aastore\n-        48: invokevirtual #32                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.addOptionalParameter:(Ljava/lang/String;[Ldev/langchain4j/agent/tool/JsonSchemaProperty;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-        51: ldc           #11                 // String bar\n+        48: invokevirtual #109                // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.addOptionalParameter:(Ljava/lang/String;[Ldev/langchain4j/agent/tool/JsonSchemaProperty;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+        51: ldc           #38                 // String bar\n         53: iconst_1\n-        54: anewarray     #27                 // class dev/langchain4j/agent/tool/JsonSchemaProperty\n+        54: anewarray     #93                 // class dev/langchain4j/agent/tool/JsonSchemaProperty\n         57: dup\n         58: iconst_0\n-        59: getstatic     #33                 // Field dev/langchain4j/agent/tool/JsonSchemaProperty.INTEGER:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+        59: getstatic     #112                // Field dev/langchain4j/agent/tool/JsonSchemaProperty.INTEGER:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n         62: aastore\n-        63: invokevirtual #32                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.addOptionalParameter:(Ljava/lang/String;[Ldev/langchain4j/agent/tool/JsonSchemaProperty;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-        66: invokevirtual #19                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n+        63: invokevirtual #109                // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.addOptionalParameter:(Ljava/lang/String;[Ldev/langchain4j/agent/tool/JsonSchemaProperty;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+        66: invokevirtual #68                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n         69: astore_1\n         70: aload_0\n         71: aload_1\n-        72: invokevirtual #20                 // Method dev/langchain4j/agent/tool/ToolSpecification.name:()Ljava/lang/String;\n-        75: invokevirtual #21                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        78: ldc           #3                  // String name\n-        80: invokevirtual #22                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        72: invokevirtual #71                 // Method dev/langchain4j/agent/tool/ToolSpecification.name:()Ljava/lang/String;\n+        75: invokevirtual #74                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        78: ldc           #13                 // String name\n+        80: invokevirtual #80                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         83: pop\n         84: aload_0\n         85: aload_1\n-        86: invokevirtual #23                 // Method dev/langchain4j/agent/tool/ToolSpecification.description:()Ljava/lang/String;\n-        89: invokevirtual #21                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        92: ldc           #5                  // String description\n-        94: invokevirtual #22                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        86: invokevirtual #85                 // Method dev/langchain4j/agent/tool/ToolSpecification.description:()Ljava/lang/String;\n+        89: invokevirtual #74                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        92: ldc           #20                 // String description\n+        94: invokevirtual #80                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         97: pop\n         98: aload_0\n         99: aload_1\n-       100: invokevirtual #24                 // Method dev/langchain4j/agent/tool/ToolSpecification.parameters:()Ldev/langchain4j/agent/tool/ToolParameters;\n-       103: invokevirtual #25                 // Method dev/langchain4j/agent/tool/ToolParameters.type:()Ljava/lang/String;\n-       106: invokevirtual #21                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       109: ldc           #34                 // String object\n-       111: invokevirtual #22                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       100: invokevirtual #87                 // Method dev/langchain4j/agent/tool/ToolSpecification.parameters:()Ldev/langchain4j/agent/tool/ToolParameters;\n+       103: invokevirtual #89                 // Method dev/langchain4j/agent/tool/ToolParameters.type:()Ljava/lang/String;\n+       106: invokevirtual #74                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       109: ldc           #115                // String object\n+       111: invokevirtual #80                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n        114: pop\n        115: aload_0\n        116: aload_1\n-       117: invokevirtual #24                 // Method dev/langchain4j/agent/tool/ToolSpecification.parameters:()Ldev/langchain4j/agent/tool/ToolParameters;\n-       120: invokevirtual #35                 // Method dev/langchain4j/agent/tool/ToolParameters.properties:()Ljava/util/Map;\n-       123: ldc           #26                 // String req\n-       125: invokeinterface #36,  2           // InterfaceMethod java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object;\n-       130: checkcast     #37                 // class java/util/Map\n-       133: invokevirtual #38                 // Method assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n-       136: ldc           #8                  // String type\n-       138: ldc           #39                 // String boolean\n-       140: invokevirtual #40                 // Method org/assertj/core/api/MapAssert.containsEntry:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n+       117: invokevirtual #87                 // Method dev/langchain4j/agent/tool/ToolSpecification.parameters:()Ldev/langchain4j/agent/tool/ToolParameters;\n+       120: invokevirtual #117                // Method dev/langchain4j/agent/tool/ToolParameters.properties:()Ljava/util/Map;\n+       123: ldc           #91                 // String req\n+       125: invokeinterface #120,  2          // InterfaceMethod java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object;\n+       130: checkcast     #121                // class java/util/Map\n+       133: invokevirtual #126                // Method assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n+       136: ldc           #29                 // String type\n+       138: ldc           #129                // String boolean\n+       140: invokevirtual #131                // Method org/assertj/core/api/MapAssert.containsEntry:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n        143: pop\n        144: aload_0\n        145: aload_1\n-       146: invokevirtual #24                 // Method dev/langchain4j/agent/tool/ToolSpecification.parameters:()Ldev/langchain4j/agent/tool/ToolParameters;\n-       149: invokevirtual #35                 // Method dev/langchain4j/agent/tool/ToolParameters.properties:()Ljava/util/Map;\n-       152: ldc           #10                 // String foo\n-       154: invokeinterface #36,  2           // InterfaceMethod java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object;\n-       159: checkcast     #37                 // class java/util/Map\n-       162: invokevirtual #38                 // Method assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n-       165: ldc           #8                  // String type\n-       167: ldc           #41                 // String string\n-       169: invokevirtual #40                 // Method org/assertj/core/api/MapAssert.containsEntry:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n-       172: checkcast     #42                 // class org/assertj/core/api/MapAssert\n-       175: ldc           #5                  // String description\n-       177: ldc           #5                  // String description\n-       179: invokevirtual #40                 // Method org/assertj/core/api/MapAssert.containsEntry:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n+       146: invokevirtual #87                 // Method dev/langchain4j/agent/tool/ToolSpecification.parameters:()Ldev/langchain4j/agent/tool/ToolParameters;\n+       149: invokevirtual #117                // Method dev/langchain4j/agent/tool/ToolParameters.properties:()Ljava/util/Map;\n+       152: ldc           #36                 // String foo\n+       154: invokeinterface #120,  2          // InterfaceMethod java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object;\n+       159: checkcast     #121                // class java/util/Map\n+       162: invokevirtual #126                // Method assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n+       165: ldc           #29                 // String type\n+       167: ldc           #137                // String string\n+       169: invokevirtual #131                // Method org/assertj/core/api/MapAssert.containsEntry:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n+       172: checkcast     #132                // class org/assertj/core/api/MapAssert\n+       175: ldc           #20                 // String description\n+       177: ldc           #20                 // String description\n+       179: invokevirtual #131                // Method org/assertj/core/api/MapAssert.containsEntry:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n        182: pop\n        183: aload_0\n        184: aload_1\n-       185: invokevirtual #24                 // Method dev/langchain4j/agent/tool/ToolSpecification.parameters:()Ldev/langchain4j/agent/tool/ToolParameters;\n-       188: invokevirtual #35                 // Method dev/langchain4j/agent/tool/ToolParameters.properties:()Ljava/util/Map;\n-       191: ldc           #11                 // String bar\n-       193: invokeinterface #36,  2           // InterfaceMethod java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object;\n-       198: checkcast     #37                 // class java/util/Map\n-       201: invokevirtual #38                 // Method assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n-       204: ldc           #8                  // String type\n-       206: ldc           #43                 // String integer\n-       208: invokevirtual #40                 // Method org/assertj/core/api/MapAssert.containsEntry:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n+       185: invokevirtual #87                 // Method dev/langchain4j/agent/tool/ToolSpecification.parameters:()Ldev/langchain4j/agent/tool/ToolParameters;\n+       188: invokevirtual #117                // Method dev/langchain4j/agent/tool/ToolParameters.properties:()Ljava/util/Map;\n+       191: ldc           #38                 // String bar\n+       193: invokeinterface #120,  2          // InterfaceMethod java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object;\n+       198: checkcast     #121                // class java/util/Map\n+       201: invokevirtual #126                // Method assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n+       204: ldc           #29                 // String type\n+       206: ldc           #139                // String integer\n+       208: invokevirtual #131                // Method org/assertj/core/api/MapAssert.containsEntry:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n        211: pop\n        212: aload_0\n        213: aload_1\n-       214: invokevirtual #24                 // Method dev/langchain4j/agent/tool/ToolSpecification.parameters:()Ldev/langchain4j/agent/tool/ToolParameters;\n-       217: invokevirtual #44                 // Method dev/langchain4j/agent/tool/ToolParameters.required:()Ljava/util/List;\n-       220: invokevirtual #45                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+       214: invokevirtual #87                 // Method dev/langchain4j/agent/tool/ToolSpecification.parameters:()Ldev/langchain4j/agent/tool/ToolParameters;\n+       217: invokevirtual #141                // Method dev/langchain4j/agent/tool/ToolParameters.required:()Ljava/util/List;\n+       220: invokevirtual #144                // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n        223: iconst_1\n-       224: anewarray     #46                 // class java/lang/String\n+       224: anewarray     #147                // class java/lang/String\n        227: dup\n        228: iconst_0\n-       229: ldc           #26                 // String req\n+       229: ldc           #91                 // String req\n        231: aastore\n-       232: invokevirtual #47                 // Method org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+       232: invokevirtual #149                // Method org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n        235: pop\n        236: return\n       LineNumberTable:\n         line 28: 0\n         line 29: 5\n         line 30: 10\n         line 31: 25\n@@ -432,167 +432,167 @@\n         line 46: 212\n         line 47: 236\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     237     0  this   Ldev/langchain4j/agent/tool/ToolSpecificationTest;\n            70     167     1    ts   Ldev/langchain4j/agent/tool/ToolSpecification;\n     RuntimeVisibleAnnotations:\n-      0: #71()\n+      0: #190()\n         org.junit.jupiter.api.Test\n \n   public void test_equals_hash();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=6, locals=3, args_size=1\n-         0: invokestatic  #2                  // Method dev/langchain4j/agent/tool/ToolSpecification.builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-         3: ldc           #3                  // String name\n-         5: invokevirtual #4                  // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-         8: ldc           #5                  // String description\n-        10: invokevirtual #6                  // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-        13: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-        16: ldc           #8                  // String type\n-        18: invokevirtual #9                  // Method dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-        21: ldc           #10                 // String foo\n-        23: ldc           #11                 // String bar\n-        25: ldc           #12                 // String baz\n-        27: invokestatic  #13                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-        30: invokestatic  #13                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-        33: invokevirtual #14                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-        36: ldc           #10                 // String foo\n-        38: invokestatic  #15                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-        41: invokevirtual #16                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-        44: invokevirtual #17                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n-        47: invokevirtual #18                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.parameters:(Ldev/langchain4j/agent/tool/ToolParameters;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-        50: invokevirtual #19                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n+         0: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolSpecification.builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+         3: ldc           #13                 // String name\n+         5: invokevirtual #15                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+         8: ldc           #20                 // String description\n+        10: invokevirtual #22                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+        13: invokestatic  #24                 // Method dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+        16: ldc           #29                 // String type\n+        18: invokevirtual #31                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+        21: ldc           #36                 // String foo\n+        23: ldc           #38                 // String bar\n+        25: ldc           #40                 // String baz\n+        27: invokestatic  #42                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+        30: invokestatic  #42                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+        33: invokevirtual #48                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+        36: ldc           #36                 // String foo\n+        38: invokestatic  #52                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+        41: invokevirtual #56                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+        44: invokevirtual #60                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n+        47: invokevirtual #64                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.parameters:(Ldev/langchain4j/agent/tool/ToolParameters;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+        50: invokevirtual #68                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n         53: astore_1\n-        54: invokestatic  #2                  // Method dev/langchain4j/agent/tool/ToolSpecification.builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-        57: ldc           #3                  // String name\n-        59: invokevirtual #4                  // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-        62: ldc           #5                  // String description\n-        64: invokevirtual #6                  // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-        67: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-        70: ldc           #8                  // String type\n-        72: invokevirtual #9                  // Method dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-        75: ldc           #10                 // String foo\n-        77: ldc           #11                 // String bar\n-        79: ldc           #12                 // String baz\n-        81: invokestatic  #13                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-        84: invokestatic  #13                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-        87: invokevirtual #14                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-        90: ldc           #10                 // String foo\n-        92: invokestatic  #15                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-        95: invokevirtual #16                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-        98: invokevirtual #17                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n-       101: invokevirtual #18                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.parameters:(Ldev/langchain4j/agent/tool/ToolParameters;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-       104: invokevirtual #19                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n+        54: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolSpecification.builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+        57: ldc           #13                 // String name\n+        59: invokevirtual #15                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+        62: ldc           #20                 // String description\n+        64: invokevirtual #22                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+        67: invokestatic  #24                 // Method dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+        70: ldc           #29                 // String type\n+        72: invokevirtual #31                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+        75: ldc           #36                 // String foo\n+        77: ldc           #38                 // String bar\n+        79: ldc           #40                 // String baz\n+        81: invokestatic  #42                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+        84: invokestatic  #42                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+        87: invokevirtual #48                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+        90: ldc           #36                 // String foo\n+        92: invokestatic  #52                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+        95: invokevirtual #56                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+        98: invokevirtual #60                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n+       101: invokevirtual #64                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.parameters:(Ldev/langchain4j/agent/tool/ToolParameters;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+       104: invokevirtual #68                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n        107: astore_2\n        108: aload_0\n        109: aload_1\n-       110: invokevirtual #48                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       110: invokevirtual #155                // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        113: aload_1\n-       114: invokevirtual #49                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       117: checkcast     #50                 // class org/assertj/core/api/ObjectAssert\n+       114: invokevirtual #158                // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       117: checkcast     #159                // class org/assertj/core/api/ObjectAssert\n        120: aconst_null\n-       121: invokevirtual #51                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       124: checkcast     #50                 // class org/assertj/core/api/ObjectAssert\n-       127: new           #52                 // class java/lang/Object\n+       121: invokevirtual #163                // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       124: checkcast     #159                // class org/assertj/core/api/ObjectAssert\n+       127: new           #2                  // class java/lang/Object\n        130: dup\n        131: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n-       134: invokevirtual #51                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       137: checkcast     #50                 // class org/assertj/core/api/ObjectAssert\n+       134: invokevirtual #163                // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       137: checkcast     #159                // class org/assertj/core/api/ObjectAssert\n        140: aload_2\n-       141: invokevirtual #49                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       144: checkcast     #50                 // class org/assertj/core/api/ObjectAssert\n+       141: invokevirtual #158                // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       144: checkcast     #159                // class org/assertj/core/api/ObjectAssert\n        147: aload_2\n-       148: invokevirtual #53                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       148: invokevirtual #166                // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        151: pop\n        152: aload_0\n-       153: invokestatic  #2                  // Method dev/langchain4j/agent/tool/ToolSpecification.builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-       156: ldc           #54                 // String changed\n-       158: invokevirtual #4                  // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-       161: ldc           #5                  // String description\n-       163: invokevirtual #6                  // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-       166: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-       169: ldc           #8                  // String type\n-       171: invokevirtual #9                  // Method dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-       174: ldc           #10                 // String foo\n-       176: ldc           #11                 // String bar\n-       178: ldc           #12                 // String baz\n-       180: invokestatic  #13                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-       183: invokestatic  #13                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-       186: invokevirtual #14                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-       189: ldc           #10                 // String foo\n-       191: invokestatic  #15                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-       194: invokevirtual #16                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-       197: invokevirtual #17                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n-       200: invokevirtual #18                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.parameters:(Ldev/langchain4j/agent/tool/ToolParameters;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-       203: invokevirtual #19                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n-       206: invokevirtual #48                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       153: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolSpecification.builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+       156: ldc           #169                // String changed\n+       158: invokevirtual #15                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+       161: ldc           #20                 // String description\n+       163: invokevirtual #22                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+       166: invokestatic  #24                 // Method dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+       169: ldc           #29                 // String type\n+       171: invokevirtual #31                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+       174: ldc           #36                 // String foo\n+       176: ldc           #38                 // String bar\n+       178: ldc           #40                 // String baz\n+       180: invokestatic  #42                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+       183: invokestatic  #42                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+       186: invokevirtual #48                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+       189: ldc           #36                 // String foo\n+       191: invokestatic  #52                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+       194: invokevirtual #56                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+       197: invokevirtual #60                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n+       200: invokevirtual #64                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.parameters:(Ldev/langchain4j/agent/tool/ToolParameters;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+       203: invokevirtual #68                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n+       206: invokevirtual #155                // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        209: aload_1\n-       210: invokevirtual #51                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       213: checkcast     #50                 // class org/assertj/core/api/ObjectAssert\n+       210: invokevirtual #163                // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       213: checkcast     #159                // class org/assertj/core/api/ObjectAssert\n        216: aload_1\n-       217: invokevirtual #55                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       217: invokevirtual #171                // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        220: pop\n        221: aload_0\n-       222: invokestatic  #2                  // Method dev/langchain4j/agent/tool/ToolSpecification.builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-       225: ldc           #3                  // String name\n-       227: invokevirtual #4                  // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-       230: ldc           #54                 // String changed\n-       232: invokevirtual #6                  // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-       235: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-       238: ldc           #8                  // String type\n-       240: invokevirtual #9                  // Method dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-       243: ldc           #10                 // String foo\n-       245: ldc           #11                 // String bar\n-       247: ldc           #12                 // String baz\n-       249: invokestatic  #13                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-       252: invokestatic  #13                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-       255: invokevirtual #14                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-       258: ldc           #10                 // String foo\n-       260: invokestatic  #15                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-       263: invokevirtual #16                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-       266: invokevirtual #17                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n-       269: invokevirtual #18                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.parameters:(Ldev/langchain4j/agent/tool/ToolParameters;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-       272: invokevirtual #19                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n-       275: invokevirtual #48                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       222: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolSpecification.builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+       225: ldc           #13                 // String name\n+       227: invokevirtual #15                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+       230: ldc           #169                // String changed\n+       232: invokevirtual #22                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+       235: invokestatic  #24                 // Method dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+       238: ldc           #29                 // String type\n+       240: invokevirtual #31                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+       243: ldc           #36                 // String foo\n+       245: ldc           #38                 // String bar\n+       247: ldc           #40                 // String baz\n+       249: invokestatic  #42                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+       252: invokestatic  #42                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+       255: invokevirtual #48                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+       258: ldc           #36                 // String foo\n+       260: invokestatic  #52                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+       263: invokevirtual #56                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+       266: invokevirtual #60                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n+       269: invokevirtual #64                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.parameters:(Ldev/langchain4j/agent/tool/ToolParameters;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+       272: invokevirtual #68                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n+       275: invokevirtual #155                // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        278: aload_1\n-       279: invokevirtual #51                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       282: checkcast     #50                 // class org/assertj/core/api/ObjectAssert\n+       279: invokevirtual #163                // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       282: checkcast     #159                // class org/assertj/core/api/ObjectAssert\n        285: aload_1\n-       286: invokevirtual #55                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       286: invokevirtual #171                // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        289: pop\n        290: aload_0\n-       291: invokestatic  #2                  // Method dev/langchain4j/agent/tool/ToolSpecification.builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-       294: ldc           #3                  // String name\n-       296: invokevirtual #4                  // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-       299: ldc           #5                  // String description\n-       301: invokevirtual #6                  // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-       304: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-       307: ldc           #8                  // String type\n-       309: invokevirtual #9                  // Method dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-       312: ldc           #10                 // String foo\n-       314: ldc           #11                 // String bar\n-       316: ldc           #12                 // String baz\n-       318: invokestatic  #13                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-       321: invokestatic  #13                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-       324: invokevirtual #14                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-       327: ldc           #54                 // String changed\n-       329: invokestatic  #15                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-       332: invokevirtual #16                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-       335: invokevirtual #17                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n-       338: invokevirtual #18                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.parameters:(Ldev/langchain4j/agent/tool/ToolParameters;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-       341: invokevirtual #19                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n-       344: invokevirtual #48                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       291: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolSpecification.builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+       294: ldc           #13                 // String name\n+       296: invokevirtual #15                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+       299: ldc           #20                 // String description\n+       301: invokevirtual #22                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+       304: invokestatic  #24                 // Method dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+       307: ldc           #29                 // String type\n+       309: invokevirtual #31                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+       312: ldc           #36                 // String foo\n+       314: ldc           #38                 // String bar\n+       316: ldc           #40                 // String baz\n+       318: invokestatic  #42                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+       321: invokestatic  #42                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+       324: invokevirtual #48                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+       327: ldc           #169                // String changed\n+       329: invokestatic  #52                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+       332: invokevirtual #56                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+       335: invokevirtual #60                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n+       338: invokevirtual #64                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.parameters:(Ldev/langchain4j/agent/tool/ToolParameters;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+       341: invokevirtual #68                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n+       344: invokevirtual #155                // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        347: aload_1\n-       348: invokevirtual #51                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       351: checkcast     #50                 // class org/assertj/core/api/ObjectAssert\n+       348: invokevirtual #163                // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       351: checkcast     #159                // class org/assertj/core/api/ObjectAssert\n        354: aload_1\n-       355: invokevirtual #55                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       355: invokevirtual #171                // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        358: pop\n        359: return\n       LineNumberTable:\n         line 51: 0\n         line 52: 5\n         line 53: 10\n         line 54: 13\n@@ -660,49 +660,49 @@\n         line 113: 359\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     360     0  this   Ldev/langchain4j/agent/tool/ToolSpecificationTest;\n            54     306     1   sp1   Ldev/langchain4j/agent/tool/ToolSpecification;\n           108     252     2   sp2   Ldev/langchain4j/agent/tool/ToolSpecification;\n     RuntimeVisibleAnnotations:\n-      0: #71()\n+      0: #190()\n         org.junit.jupiter.api.Test\n \n   public void test_toString();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=5, locals=2, args_size=1\n-         0: invokestatic  #2                  // Method dev/langchain4j/agent/tool/ToolSpecification.builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-         3: ldc           #3                  // String name\n-         5: invokevirtual #4                  // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-         8: ldc           #5                  // String description\n-        10: invokevirtual #6                  // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-        13: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-        16: ldc           #8                  // String type\n-        18: invokevirtual #9                  // Method dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-        21: ldc           #10                 // String foo\n-        23: ldc           #11                 // String bar\n-        25: ldc           #12                 // String baz\n-        27: invokestatic  #13                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-        30: invokestatic  #13                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-        33: invokevirtual #14                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-        36: ldc           #10                 // String foo\n-        38: invokestatic  #15                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-        41: invokevirtual #16                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-        44: invokevirtual #17                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n-        47: invokevirtual #18                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.parameters:(Ldev/langchain4j/agent/tool/ToolParameters;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-        50: invokevirtual #19                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n+         0: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolSpecification.builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+         3: ldc           #13                 // String name\n+         5: invokevirtual #15                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+         8: ldc           #20                 // String description\n+        10: invokevirtual #22                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+        13: invokestatic  #24                 // Method dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+        16: ldc           #29                 // String type\n+        18: invokevirtual #31                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+        21: ldc           #36                 // String foo\n+        23: ldc           #38                 // String bar\n+        25: ldc           #40                 // String baz\n+        27: invokestatic  #42                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+        30: invokestatic  #42                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+        33: invokevirtual #48                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+        36: ldc           #36                 // String foo\n+        38: invokestatic  #52                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+        41: invokevirtual #56                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+        44: invokevirtual #60                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n+        47: invokevirtual #64                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.parameters:(Ldev/langchain4j/agent/tool/ToolParameters;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+        50: invokevirtual #68                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n         53: astore_1\n         54: aload_0\n         55: aload_1\n-        56: invokevirtual #56                 // Method dev/langchain4j/agent/tool/ToolSpecification.toString:()Ljava/lang/String;\n-        59: invokevirtual #21                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        62: ldc           #57                 // String ToolSpecification { name = \\\"name\\\", description = \\\"description\\\", parameters = ToolParameters { type = \\\"type\\\", properties = {foo={bar=baz}}, required = [foo] } }\n-        64: invokevirtual #22                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        56: invokevirtual #174                // Method dev/langchain4j/agent/tool/ToolSpecification.toString:()Ljava/lang/String;\n+        59: invokevirtual #74                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        62: ldc           #177                // String ToolSpecification { name = \\\"name\\\", description = \\\"description\\\", parameters = ToolParameters { type = \\\"type\\\", properties = {foo={bar=baz}}, required = [foo] } }\n+        64: invokevirtual #80                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         67: pop\n         68: return\n       LineNumberTable:\n         line 117: 0\n         line 118: 5\n         line 119: 10\n         line 120: 13\n@@ -716,14 +716,14 @@\n         line 128: 64\n         line 130: 68\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      69     0  this   Ldev/langchain4j/agent/tool/ToolSpecificationTest;\n            54      15     1   sp1   Ldev/langchain4j/agent/tool/ToolSpecification;\n     RuntimeVisibleAnnotations:\n-      0: #71()\n+      0: #190()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"ToolSpecificationTest.java\"\n InnerClasses:\n-  public static final #147= #83 of #80;   // Builder=class dev/langchain4j/agent/tool/ToolSpecification$Builder of class dev/langchain4j/agent/tool/ToolSpecification\n-  public static final #147= #90 of #87;   // Builder=class dev/langchain4j/agent/tool/ToolParameters$Builder of class dev/langchain4j/agent/tool/ToolParameters\n+  public static final #199= #16 of #8;    // Builder=class dev/langchain4j/agent/tool/ToolSpecification$Builder of class dev/langchain4j/agent/tool/ToolSpecification\n+  public static final #199= #32 of #25;   // Builder=class dev/langchain4j/agent/tool/ToolParameters$Builder of class dev/langchain4j/agent/tool/ToolParameters\n"}]}, {"source1": "dev/langchain4j/agent/tool/ToolSpecificationsTest$E.class", "source2": "dev/langchain4j/agent/tool/ToolSpecificationsTest$E.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -11,10 +11,10 @@\n         return Enum.valueOf(E.class, name);\n     }\n     \n     static {\n         E.A = new E(\"A\", 0);\n         E.B = new E(\"B\", 1);\n         E.C = new E(\"C\", 2);\n-        E.$VALUES = new E[] { E.A, E.B, E.C };\n+        E.$VALUES = $values();\n     }\n }\n"}]}, {"source1": "dev/langchain4j/agent/tool/ToolSpecificationsTest$Wrapper.class", "source2": "dev/langchain4j/agent/tool/ToolSpecificationsTest$Wrapper.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,110 +1,110 @@\n-  SHA-256 checksum 35b06060282e3f5e711b9666b6751ce812cf7440fb38b3399137580bcb2f5f9f\n+  SHA-256 checksum 6a089c7d60749ee95fccf2803e44c4158e60f8092034f29413a3fec0fd0fcb0f\n   Compiled from \"ToolSpecificationsTest.java\"\n public class dev.langchain4j.agent.tool.ToolSpecificationsTest$Wrapper\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #2                          // dev/langchain4j/agent/tool/ToolSpecificationsTest$Wrapper\n-  super_class: #3                         // java/lang/Object\n+  this_class: #7                          // dev/langchain4j/agent/tool/ToolSpecificationsTest$Wrapper\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 0, methods: 4, attributes: 2\n Constant pool:\n-   #1 = Methodref          #3.#88         // java/lang/Object.\"<init>\":()V\n-   #2 = Class              #90            // dev/langchain4j/agent/tool/ToolSpecificationsTest$Wrapper\n-   #3 = Class              #91            // java/lang/Object\n-   #4 = Utf8               <init>\n-   #5 = Utf8               ()V\n-   #6 = Utf8               Code\n-   #7 = Utf8               LineNumberTable\n-   #8 = Utf8               LocalVariableTable\n-   #9 = Utf8               this\n-  #10 = Utf8               Wrapper\n-  #11 = Utf8               InnerClasses\n-  #12 = Utf8               Ldev/langchain4j/agent/tool/ToolSpecificationsTest$Wrapper;\n-  #13 = Utf8               f\n-  #14 = Class              #92            // dev/langchain4j/agent/tool/ToolSpecificationsTest$E\n-  #15 = Utf8               E\n-  #16 = Utf8               (Ljava/lang/String;ZLjava/lang/Boolean;BLjava/lang/Byte;SLjava/lang/Short;ILjava/lang/Integer;JLjava/lang/Long;Ljava/math/BigInteger;FLjava/lang/Float;DLjava/lang/Double;Ljava/math/BigDecimal;[Ljava/lang/String;Ljava/util/List;Ljava/util/Set;Ldev/langchain4j/agent/tool/ToolSpecificationsTest$E;Ljava/lang/Object;)I\n-  #17 = Utf8               p0\n-  #18 = Utf8               Ljava/lang/String;\n-  #19 = Utf8               p1\n-  #20 = Utf8               Z\n-  #21 = Utf8               p2\n-  #22 = Utf8               Ljava/lang/Boolean;\n-  #23 = Utf8               p3\n-  #24 = Utf8               B\n-  #25 = Utf8               p4\n-  #26 = Utf8               Ljava/lang/Byte;\n-  #27 = Utf8               p5\n-  #28 = Utf8               S\n-  #29 = Utf8               p6\n-  #30 = Utf8               Ljava/lang/Short;\n-  #31 = Utf8               p7\n-  #32 = Utf8               I\n-  #33 = Utf8               p8\n-  #34 = Utf8               Ljava/lang/Integer;\n-  #35 = Utf8               p9\n-  #36 = Utf8               J\n-  #37 = Utf8               p10\n-  #38 = Utf8               Ljava/lang/Long;\n-  #39 = Utf8               p11\n-  #40 = Utf8               Ljava/math/BigInteger;\n-  #41 = Utf8               p12\n-  #42 = Utf8               F\n-  #43 = Utf8               p13\n-  #44 = Utf8               Ljava/lang/Float;\n-  #45 = Utf8               p14\n-  #46 = Utf8               D\n-  #47 = Utf8               p15\n-  #48 = Utf8               Ljava/lang/Double;\n-  #49 = Utf8               p16\n-  #50 = Utf8               Ljava/math/BigDecimal;\n-  #51 = Utf8               p17\n-  #52 = Utf8               [Ljava/lang/String;\n-  #53 = Utf8               p18\n-  #54 = Utf8               Ljava/util/List;\n-  #55 = Utf8               p19\n-  #56 = Utf8               Ljava/util/Set;\n-  #57 = Utf8               p20\n-  #58 = Utf8               Ldev/langchain4j/agent/tool/ToolSpecificationsTest$E;\n-  #59 = Utf8               p21\n-  #60 = Utf8               Ljava/lang/Object;\n-  #61 = Utf8               LocalVariableTypeTable\n-  #62 = Utf8               Ljava/util/List<Ljava/lang/String;>;\n-  #63 = Utf8               Ljava/util/Set<Ljava/lang/String;>;\n-  #64 = Utf8               Signature\n-  #65 = Utf8               (Ljava/lang/String;ZLjava/lang/Boolean;BLjava/lang/Byte;SLjava/lang/Short;ILjava/lang/Integer;JLjava/lang/Long;Ljava/math/BigInteger;FLjava/lang/Float;DLjava/lang/Double;Ljava/math/BigDecimal;[Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;Ljava/util/Set<Ljava/lang/String;>;Ldev/langchain4j/agent/tool/ToolSpecificationsTest$E;Ljava/lang/Object;)I\n-  #66 = Utf8               RuntimeVisibleAnnotations\n-  #67 = Utf8               Ldev/langchain4j/agent/tool/Tool;\n-  #68 = Utf8               value\n-  #69 = Utf8               line1\n-  #70 = Utf8               line2\n-  #71 = Utf8               RuntimeVisibleParameterAnnotations\n-  #72 = Utf8               Ldev/langchain4j/agent/tool/P;\n-  #73 = Utf8               foo\n-  #74 = Utf8               b2\n-  #75 = Utf8               biggy\n-  #76 = Utf8               bigger\n-  #77 = Utf8               g\n-  #78 = Utf8               (Ljava/lang/String;)I\n-  #79 = Utf8               memoryId\n-  #80 = Utf8               name\n-  #81 = Utf8               func_name\n-  #82 = Utf8               Ldev/langchain4j/agent/tool/ToolMemoryId;\n-  #83 = Utf8               unused\n-  #84 = Utf8               (I)I\n-  #85 = Utf8               i\n-  #86 = Utf8               SourceFile\n-  #87 = Utf8               ToolSpecificationsTest.java\n-  #88 = NameAndType        #4:#5          // \"<init>\":()V\n-  #89 = Class              #93            // dev/langchain4j/agent/tool/ToolSpecificationsTest\n-  #90 = Utf8               dev/langchain4j/agent/tool/ToolSpecificationsTest$Wrapper\n-  #91 = Utf8               java/lang/Object\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Class              #8             // dev/langchain4j/agent/tool/ToolSpecificationsTest$Wrapper\n+   #8 = Utf8               dev/langchain4j/agent/tool/ToolSpecificationsTest$Wrapper\n+   #9 = Utf8               Code\n+  #10 = Utf8               LineNumberTable\n+  #11 = Utf8               LocalVariableTable\n+  #12 = Utf8               this\n+  #13 = Utf8               Ldev/langchain4j/agent/tool/ToolSpecificationsTest$Wrapper;\n+  #14 = Utf8               f\n+  #15 = Utf8               (Ljava/lang/String;ZLjava/lang/Boolean;BLjava/lang/Byte;SLjava/lang/Short;ILjava/lang/Integer;JLjava/lang/Long;Ljava/math/BigInteger;FLjava/lang/Float;DLjava/lang/Double;Ljava/math/BigDecimal;[Ljava/lang/String;Ljava/util/List;Ljava/util/Set;Ldev/langchain4j/agent/tool/ToolSpecificationsTest$E;Ljava/lang/Object;)I\n+  #16 = Utf8               p0\n+  #17 = Utf8               Ljava/lang/String;\n+  #18 = Utf8               p1\n+  #19 = Utf8               Z\n+  #20 = Utf8               p2\n+  #21 = Utf8               Ljava/lang/Boolean;\n+  #22 = Utf8               p3\n+  #23 = Utf8               B\n+  #24 = Utf8               p4\n+  #25 = Utf8               Ljava/lang/Byte;\n+  #26 = Utf8               p5\n+  #27 = Utf8               S\n+  #28 = Utf8               p6\n+  #29 = Utf8               Ljava/lang/Short;\n+  #30 = Utf8               p7\n+  #31 = Utf8               I\n+  #32 = Utf8               p8\n+  #33 = Utf8               Ljava/lang/Integer;\n+  #34 = Utf8               p9\n+  #35 = Utf8               J\n+  #36 = Utf8               p10\n+  #37 = Utf8               Ljava/lang/Long;\n+  #38 = Utf8               p11\n+  #39 = Utf8               Ljava/math/BigInteger;\n+  #40 = Utf8               p12\n+  #41 = Utf8               F\n+  #42 = Utf8               p13\n+  #43 = Utf8               Ljava/lang/Float;\n+  #44 = Utf8               p14\n+  #45 = Utf8               D\n+  #46 = Utf8               p15\n+  #47 = Utf8               Ljava/lang/Double;\n+  #48 = Utf8               p16\n+  #49 = Utf8               Ljava/math/BigDecimal;\n+  #50 = Utf8               p17\n+  #51 = Utf8               [Ljava/lang/String;\n+  #52 = Utf8               p18\n+  #53 = Utf8               Ljava/util/List;\n+  #54 = Utf8               p19\n+  #55 = Utf8               Ljava/util/Set;\n+  #56 = Utf8               p20\n+  #57 = Utf8               Ldev/langchain4j/agent/tool/ToolSpecificationsTest$E;\n+  #58 = Utf8               p21\n+  #59 = Utf8               Ljava/lang/Object;\n+  #60 = Utf8               LocalVariableTypeTable\n+  #61 = Utf8               Ljava/util/List<Ljava/lang/String;>;\n+  #62 = Utf8               Ljava/util/Set<Ljava/lang/String;>;\n+  #63 = Utf8               Signature\n+  #64 = Utf8               (Ljava/lang/String;ZLjava/lang/Boolean;BLjava/lang/Byte;SLjava/lang/Short;ILjava/lang/Integer;JLjava/lang/Long;Ljava/math/BigInteger;FLjava/lang/Float;DLjava/lang/Double;Ljava/math/BigDecimal;[Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;Ljava/util/Set<Ljava/lang/String;>;Ldev/langchain4j/agent/tool/ToolSpecificationsTest$E;Ljava/lang/Object;)I\n+  #65 = Utf8               RuntimeVisibleAnnotations\n+  #66 = Utf8               Ldev/langchain4j/agent/tool/Tool;\n+  #67 = Utf8               value\n+  #68 = Utf8               line1\n+  #69 = Utf8               line2\n+  #70 = Utf8               RuntimeVisibleParameterAnnotations\n+  #71 = Utf8               Ldev/langchain4j/agent/tool/P;\n+  #72 = Utf8               foo\n+  #73 = Utf8               b2\n+  #74 = Utf8               biggy\n+  #75 = Utf8               bigger\n+  #76 = Utf8               g\n+  #77 = Utf8               (Ljava/lang/String;)I\n+  #78 = Utf8               memoryId\n+  #79 = Utf8               name\n+  #80 = Utf8               func_name\n+  #81 = Utf8               Ldev/langchain4j/agent/tool/ToolMemoryId;\n+  #82 = Utf8               unused\n+  #83 = Utf8               (I)I\n+  #84 = Utf8               i\n+  #85 = Utf8               SourceFile\n+  #86 = Utf8               ToolSpecificationsTest.java\n+  #87 = Utf8               InnerClasses\n+  #88 = Class              #89            // dev/langchain4j/agent/tool/ToolSpecificationsTest\n+  #89 = Utf8               dev/langchain4j/agent/tool/ToolSpecificationsTest\n+  #90 = Utf8               Wrapper\n+  #91 = Class              #92            // dev/langchain4j/agent/tool/ToolSpecificationsTest$E\n   #92 = Utf8               dev/langchain4j/agent/tool/ToolSpecificationsTest$E\n-  #93 = Utf8               dev/langchain4j/agent/tool/ToolSpecificationsTest\n+  #93 = Utf8               E\n {\n   public dev.langchain4j.agent.tool.ToolSpecificationsTest$Wrapper();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -150,51 +150,51 @@\n             0       3    22   p19   Ljava/util/Set;\n             0       3    23   p20   Ldev/langchain4j/agent/tool/ToolSpecificationsTest$E;\n             0       3    24   p21   Ljava/lang/Object;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0       3    21   p18   Ljava/util/List<Ljava/lang/String;>;\n             0       3    22   p19   Ljava/util/Set<Ljava/lang/String;>;\n-    Signature: #65                          // (Ljava/lang/String;ZLjava/lang/Boolean;BLjava/lang/Byte;SLjava/lang/Short;ILjava/lang/Integer;JLjava/lang/Long;Ljava/math/BigInteger;FLjava/lang/Float;DLjava/lang/Double;Ljava/math/BigDecimal;[Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;Ljava/util/Set<Ljava/lang/String;>;Ldev/langchain4j/agent/tool/ToolSpecificationsTest$E;Ljava/lang/Object;)I\n+    Signature: #64                          // (Ljava/lang/String;ZLjava/lang/Boolean;BLjava/lang/Byte;SLjava/lang/Short;ILjava/lang/Integer;JLjava/lang/Long;Ljava/math/BigInteger;FLjava/lang/Float;DLjava/lang/Double;Ljava/math/BigDecimal;[Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;Ljava/util/Set<Ljava/lang/String;>;Ldev/langchain4j/agent/tool/ToolSpecificationsTest$E;Ljava/lang/Object;)I\n     RuntimeVisibleAnnotations:\n-      0: #67(#68=[s#69,s#70])\n+      0: #66(#67=[s#68,s#69])\n         dev.langchain4j.agent.tool.Tool(\n           value=[\"line1\",\"line2\"]\n         )\n     RuntimeVisibleParameterAnnotations:\n       parameter 0:\n-        0: #72(#68=s#73)\n+        0: #71(#67=s#72)\n           dev.langchain4j.agent.tool.P(\n             value=\"foo\"\n           )\n       parameter 1:\n       parameter 2:\n-        0: #72(#68=s#74)\n+        0: #71(#67=s#73)\n           dev.langchain4j.agent.tool.P(\n             value=\"b2\"\n           )\n       parameter 3:\n       parameter 4:\n       parameter 5:\n       parameter 6:\n       parameter 7:\n       parameter 8:\n       parameter 9:\n       parameter 10:\n       parameter 11:\n-        0: #72(#68=s#75)\n+        0: #71(#67=s#74)\n           dev.langchain4j.agent.tool.P(\n             value=\"biggy\"\n           )\n       parameter 12:\n       parameter 13:\n       parameter 14:\n       parameter 15:\n       parameter 16:\n-        0: #72(#68=s#76)\n+        0: #71(#67=s#75)\n           dev.langchain4j.agent.tool.P(\n             value=\"bigger\"\n           )\n       parameter 17:\n       parameter 18:\n       parameter 19:\n       parameter 20:\n@@ -210,21 +210,21 @@\n       LineNumberTable:\n         line 56: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       3     0  this   Ldev/langchain4j/agent/tool/ToolSpecificationsTest$Wrapper;\n             0       3     1 memoryId   Ljava/lang/String;\n     RuntimeVisibleAnnotations:\n-      0: #67(#80=s#81)\n+      0: #66(#79=s#80)\n         dev.langchain4j.agent.tool.Tool(\n           name=\"func_name\"\n         )\n     RuntimeVisibleParameterAnnotations:\n       parameter 0:\n-        0: #82()\n+        0: #81()\n           dev.langchain4j.agent.tool.ToolMemoryId\n \n   public int unused(int);\n     descriptor: (I)I\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=2, args_size=2\n@@ -235,9 +235,9 @@\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       3     0  this   Ldev/langchain4j/agent/tool/ToolSpecificationsTest$Wrapper;\n             0       3     1     i   I\n }\n SourceFile: \"ToolSpecificationsTest.java\"\n InnerClasses:\n-  public static #10= #2 of #89;           // Wrapper=class dev/langchain4j/agent/tool/ToolSpecificationsTest$Wrapper of class dev/langchain4j/agent/tool/ToolSpecificationsTest\n-  public static final #15= #14 of #89;    // E=class dev/langchain4j/agent/tool/ToolSpecificationsTest$E of class dev/langchain4j/agent/tool/ToolSpecificationsTest\n+  public static #90= #7 of #88;           // Wrapper=class dev/langchain4j/agent/tool/ToolSpecificationsTest$Wrapper of class dev/langchain4j/agent/tool/ToolSpecificationsTest\n+  public static final #93= #91 of #88;    // E=class dev/langchain4j/agent/tool/ToolSpecificationsTest$E of class dev/langchain4j/agent/tool/ToolSpecificationsTest\n"}]}, {"source1": "dev/langchain4j/agent/tool/ToolSpecificationsTest.class", "source2": "dev/langchain4j/agent/tool/ToolSpecificationsTest.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -1,12 +1,13 @@\n \n package dev.langchain4j.agent.tool;\n \n import java.lang.reflect.Parameter;\n import java.util.function.Consumer;\n+import java.util.Objects;\n import java.util.ArrayList;\n import java.util.Arrays;\n import org.assertj.core.api.MapAssert;\n import java.util.HashMap;\n import java.util.Map;\n import java.util.Set;\n import java.util.List;\n@@ -92,13 +93,16 @@\n         this.assertThat(ToolSpecifications.toJsonSchemaProperties(ps[14])).containsExactly((Object[])new JsonSchemaProperty[] { JsonSchemaProperty.NUMBER });\n         this.assertThat(ToolSpecifications.toJsonSchemaProperties(ps[15])).containsExactly((Object[])new JsonSchemaProperty[] { JsonSchemaProperty.NUMBER });\n         this.assertThat(ToolSpecifications.toJsonSchemaProperties(ps[16])).containsExactly((Object[])new JsonSchemaProperty[] { JsonSchemaProperty.NUMBER, JsonSchemaProperty.description(\"bigger\") });\n         this.assertThat(ToolSpecifications.toJsonSchemaProperties(ps[17])).containsExactly((Object[])new JsonSchemaProperty[] { JsonSchemaProperty.ARRAY });\n         this.assertThat(ToolSpecifications.toJsonSchemaProperties(ps[18])).containsExactly((Object[])new JsonSchemaProperty[] { JsonSchemaProperty.ARRAY });\n         this.assertThat(ToolSpecifications.toJsonSchemaProperties(ps[19])).containsExactly((Object[])new JsonSchemaProperty[] { JsonSchemaProperty.ARRAY });\n         final List<JsonSchemaProperty> properties = new ArrayList<JsonSchemaProperty>();\n-        ToolSpecifications.toJsonSchemaProperties(ps[20]).forEach(properties::add);\n-        this.assertThat((Object)properties.get(0)).isEqualTo((Object)JsonSchemaProperty.STRING);\n+        final Iterable jsonSchemaProperties = ToolSpecifications.toJsonSchemaProperties(ps[20]);\n+        final List<JsonSchemaProperty> obj = properties;\n+        Objects.requireNonNull((ArrayList)obj);\n+        jsonSchemaProperties.forEach(obj::add);\n+        this.assertThat((Object)(JsonSchemaProperty)properties.get(0)).isEqualTo((Object)JsonSchemaProperty.STRING);\n         this.assertThat(Arrays.equals((Object[])((JsonSchemaProperty)properties.get(1)).value(), (Object[])new ToolSpecificationsTest.E[] { ToolSpecificationsTest.E.A, ToolSpecificationsTest.E.B, ToolSpecificationsTest.E.C })).isTrue();\n         this.assertThat(ToolSpecifications.toJsonSchemaProperties(ps[21])).containsExactly((Object[])new JsonSchemaProperty[] { JsonSchemaProperty.OBJECT });\n     }\n }\n"}]}, {"source1": "dev/langchain4j/classification/TextClassifierTest$CatClassifier.class", "source2": "dev/langchain4j/classification/TextClassifierTest$CatClassifier.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,90 +1,89 @@\n-  SHA-256 checksum ff11d18dfe38e580beeb448356a1d71610e0314103d5ef840b9ea14b27dc161c\n+  SHA-256 checksum 4c714c167663c96cd350159530b69d657e42b7ce61e33dc0f4fd34123d9a7d9d\n   Compiled from \"TextClassifierTest.java\"\n public class dev.langchain4j.classification.TextClassifierTest$CatClassifier extends java.lang.Object implements dev.langchain4j.classification.TextClassifier<dev.langchain4j.classification.TextClassifierTest$Categories>\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #14                         // dev/langchain4j/classification/TextClassifierTest$CatClassifier\n-  super_class: #15                        // java/lang/Object\n+  this_class: #45                         // dev/langchain4j/classification/TextClassifierTest$CatClassifier\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 3\n Constant pool:\n-   #1 = Methodref          #15.#43        // java/lang/Object.\"<init>\":()V\n-   #2 = Class              #44            // java/util/HashSet\n-   #3 = Methodref          #2.#43         // java/util/HashSet.\"<init>\":()V\n-   #4 = String             #45            // cat\n-   #5 = Methodref          #46.#47        // java/lang/String.contains:(Ljava/lang/CharSequence;)Z\n-   #6 = Fieldref           #33.#48        // dev/langchain4j/classification/TextClassifierTest$Categories.CAT:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n-   #7 = InterfaceMethodref #49.#50        // java/util/Set.add:(Ljava/lang/Object;)Z\n-   #8 = String             #51            // dog\n-   #9 = Fieldref           #33.#52        // dev/langchain4j/classification/TextClassifierTest$Categories.DOG:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n-  #10 = String             #53            // fish\n-  #11 = Fieldref           #33.#54        // dev/langchain4j/classification/TextClassifierTest$Categories.FISH:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n-  #12 = Class              #55            // java/util/ArrayList\n-  #13 = Methodref          #12.#56        // java/util/ArrayList.\"<init>\":(Ljava/util/Collection;)V\n-  #14 = Class              #58            // dev/langchain4j/classification/TextClassifierTest$CatClassifier\n-  #15 = Class              #59            // java/lang/Object\n-  #16 = Class              #60            // dev/langchain4j/classification/TextClassifier\n-  #17 = Utf8               <init>\n-  #18 = Utf8               ()V\n-  #19 = Utf8               Code\n-  #20 = Utf8               LineNumberTable\n-  #21 = Utf8               LocalVariableTable\n-  #22 = Utf8               this\n-  #23 = Utf8               CatClassifier\n-  #24 = Utf8               InnerClasses\n-  #25 = Utf8               Ldev/langchain4j/classification/TextClassifierTest$CatClassifier;\n-  #26 = Utf8               classify\n-  #27 = Utf8               (Ljava/lang/String;)Ljava/util/List;\n-  #28 = Utf8               text\n-  #29 = Utf8               Ljava/lang/String;\n-  #30 = Utf8               result\n-  #31 = Utf8               Ljava/util/Set;\n-  #32 = Utf8               LocalVariableTypeTable\n-  #33 = Class              #61            // dev/langchain4j/classification/TextClassifierTest$Categories\n-  #34 = Utf8               Categories\n-  #35 = Utf8               Ljava/util/Set<Ldev/langchain4j/classification/TextClassifierTest$Categories;>;\n-  #36 = Utf8               StackMapTable\n-  #37 = Class              #62            // java/util/Set\n-  #38 = Utf8               Signature\n-  #39 = Utf8               (Ljava/lang/String;)Ljava/util/List<Ldev/langchain4j/classification/TextClassifierTest$Categories;>;\n-  #40 = Utf8               Ljava/lang/Object;Ldev/langchain4j/classification/TextClassifier<Ldev/langchain4j/classification/TextClassifierTest$Categories;>;\n-  #41 = Utf8               SourceFile\n-  #42 = Utf8               TextClassifierTest.java\n-  #43 = NameAndType        #17:#18        // \"<init>\":()V\n-  #44 = Utf8               java/util/HashSet\n-  #45 = Utf8               cat\n-  #46 = Class              #63            // java/lang/String\n-  #47 = NameAndType        #64:#65        // contains:(Ljava/lang/CharSequence;)Z\n-  #48 = NameAndType        #66:#67        // CAT:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n-  #49 = Class              #62            // java/util/Set\n-  #50 = NameAndType        #68:#69        // add:(Ljava/lang/Object;)Z\n-  #51 = Utf8               dog\n-  #52 = NameAndType        #70:#67        // DOG:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n-  #53 = Utf8               fish\n-  #54 = NameAndType        #71:#67        // FISH:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n-  #55 = Utf8               java/util/ArrayList\n-  #56 = NameAndType        #17:#72        // \"<init>\":(Ljava/util/Collection;)V\n-  #57 = Class              #73            // dev/langchain4j/classification/TextClassifierTest\n-  #58 = Utf8               dev/langchain4j/classification/TextClassifierTest$CatClassifier\n-  #59 = Utf8               java/lang/Object\n-  #60 = Utf8               dev/langchain4j/classification/TextClassifier\n-  #61 = Utf8               dev/langchain4j/classification/TextClassifierTest$Categories\n-  #62 = Utf8               java/util/Set\n-  #63 = Utf8               java/lang/String\n-  #64 = Utf8               contains\n-  #65 = Utf8               (Ljava/lang/CharSequence;)Z\n-  #66 = Utf8               CAT\n-  #67 = Utf8               Ldev/langchain4j/classification/TextClassifierTest$Categories;\n-  #68 = Utf8               add\n-  #69 = Utf8               (Ljava/lang/Object;)Z\n-  #70 = Utf8               DOG\n-  #71 = Utf8               FISH\n-  #72 = Utf8               (Ljava/util/Collection;)V\n-  #73 = Utf8               dev/langchain4j/classification/TextClassifierTest\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Class              #8             // java/util/HashSet\n+   #8 = Utf8               java/util/HashSet\n+   #9 = Methodref          #7.#3          // java/util/HashSet.\"<init>\":()V\n+  #10 = String             #11            // cat\n+  #11 = Utf8               cat\n+  #12 = Methodref          #13.#14        // java/lang/String.contains:(Ljava/lang/CharSequence;)Z\n+  #13 = Class              #15            // java/lang/String\n+  #14 = NameAndType        #16:#17        // contains:(Ljava/lang/CharSequence;)Z\n+  #15 = Utf8               java/lang/String\n+  #16 = Utf8               contains\n+  #17 = Utf8               (Ljava/lang/CharSequence;)Z\n+  #18 = Fieldref           #19.#20        // dev/langchain4j/classification/TextClassifierTest$Categories.CAT:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n+  #19 = Class              #21            // dev/langchain4j/classification/TextClassifierTest$Categories\n+  #20 = NameAndType        #22:#23        // CAT:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n+  #21 = Utf8               dev/langchain4j/classification/TextClassifierTest$Categories\n+  #22 = Utf8               CAT\n+  #23 = Utf8               Ldev/langchain4j/classification/TextClassifierTest$Categories;\n+  #24 = InterfaceMethodref #25.#26        // java/util/Set.add:(Ljava/lang/Object;)Z\n+  #25 = Class              #27            // java/util/Set\n+  #26 = NameAndType        #28:#29        // add:(Ljava/lang/Object;)Z\n+  #27 = Utf8               java/util/Set\n+  #28 = Utf8               add\n+  #29 = Utf8               (Ljava/lang/Object;)Z\n+  #30 = String             #31            // dog\n+  #31 = Utf8               dog\n+  #32 = Fieldref           #19.#33        // dev/langchain4j/classification/TextClassifierTest$Categories.DOG:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n+  #33 = NameAndType        #34:#23        // DOG:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n+  #34 = Utf8               DOG\n+  #35 = String             #36            // fish\n+  #36 = Utf8               fish\n+  #37 = Fieldref           #19.#38        // dev/langchain4j/classification/TextClassifierTest$Categories.FISH:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n+  #38 = NameAndType        #39:#23        // FISH:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n+  #39 = Utf8               FISH\n+  #40 = Class              #41            // java/util/ArrayList\n+  #41 = Utf8               java/util/ArrayList\n+  #42 = Methodref          #40.#43        // java/util/ArrayList.\"<init>\":(Ljava/util/Collection;)V\n+  #43 = NameAndType        #5:#44         // \"<init>\":(Ljava/util/Collection;)V\n+  #44 = Utf8               (Ljava/util/Collection;)V\n+  #45 = Class              #46            // dev/langchain4j/classification/TextClassifierTest$CatClassifier\n+  #46 = Utf8               dev/langchain4j/classification/TextClassifierTest$CatClassifier\n+  #47 = Class              #48            // dev/langchain4j/classification/TextClassifier\n+  #48 = Utf8               dev/langchain4j/classification/TextClassifier\n+  #49 = Utf8               Code\n+  #50 = Utf8               LineNumberTable\n+  #51 = Utf8               LocalVariableTable\n+  #52 = Utf8               this\n+  #53 = Utf8               Ldev/langchain4j/classification/TextClassifierTest$CatClassifier;\n+  #54 = Utf8               classify\n+  #55 = Utf8               (Ljava/lang/String;)Ljava/util/List;\n+  #56 = Utf8               text\n+  #57 = Utf8               Ljava/lang/String;\n+  #58 = Utf8               result\n+  #59 = Utf8               Ljava/util/Set;\n+  #60 = Utf8               LocalVariableTypeTable\n+  #61 = Utf8               Ljava/util/Set<Ldev/langchain4j/classification/TextClassifierTest$Categories;>;\n+  #62 = Utf8               StackMapTable\n+  #63 = Utf8               Signature\n+  #64 = Utf8               (Ljava/lang/String;)Ljava/util/List<Ldev/langchain4j/classification/TextClassifierTest$Categories;>;\n+  #65 = Utf8               Ljava/lang/Object;Ldev/langchain4j/classification/TextClassifier<Ldev/langchain4j/classification/TextClassifierTest$Categories;>;\n+  #66 = Utf8               SourceFile\n+  #67 = Utf8               TextClassifierTest.java\n+  #68 = Utf8               InnerClasses\n+  #69 = Class              #70            // dev/langchain4j/classification/TextClassifierTest\n+  #70 = Utf8               dev/langchain4j/classification/TextClassifierTest\n+  #71 = Utf8               Categories\n+  #72 = Utf8               CatClassifier\n {\n   public dev.langchain4j.classification.TextClassifierTest$CatClassifier();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -97,46 +96,46 @@\n             0       5     0  this   Ldev/langchain4j/classification/TextClassifierTest$CatClassifier;\n \n   public java.util.List<dev.langchain4j.classification.TextClassifierTest$Categories> classify(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ljava/util/List;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=3, args_size=2\n-         0: new           #2                  // class java/util/HashSet\n+         0: new           #7                  // class java/util/HashSet\n          3: dup\n-         4: invokespecial #3                  // Method java/util/HashSet.\"<init>\":()V\n+         4: invokespecial #9                  // Method java/util/HashSet.\"<init>\":()V\n          7: astore_2\n          8: aload_1\n-         9: ldc           #4                  // String cat\n-        11: invokevirtual #5                  // Method java/lang/String.contains:(Ljava/lang/CharSequence;)Z\n+         9: ldc           #10                 // String cat\n+        11: invokevirtual #12                 // Method java/lang/String.contains:(Ljava/lang/CharSequence;)Z\n         14: ifeq          27\n         17: aload_2\n-        18: getstatic     #6                  // Field dev/langchain4j/classification/TextClassifierTest$Categories.CAT:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n-        21: invokeinterface #7,  2            // InterfaceMethod java/util/Set.add:(Ljava/lang/Object;)Z\n+        18: getstatic     #18                 // Field dev/langchain4j/classification/TextClassifierTest$Categories.CAT:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n+        21: invokeinterface #24,  2           // InterfaceMethod java/util/Set.add:(Ljava/lang/Object;)Z\n         26: pop\n         27: aload_1\n-        28: ldc           #8                  // String dog\n-        30: invokevirtual #5                  // Method java/lang/String.contains:(Ljava/lang/CharSequence;)Z\n+        28: ldc           #30                 // String dog\n+        30: invokevirtual #12                 // Method java/lang/String.contains:(Ljava/lang/CharSequence;)Z\n         33: ifeq          46\n         36: aload_2\n-        37: getstatic     #9                  // Field dev/langchain4j/classification/TextClassifierTest$Categories.DOG:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n-        40: invokeinterface #7,  2            // InterfaceMethod java/util/Set.add:(Ljava/lang/Object;)Z\n+        37: getstatic     #32                 // Field dev/langchain4j/classification/TextClassifierTest$Categories.DOG:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n+        40: invokeinterface #24,  2           // InterfaceMethod java/util/Set.add:(Ljava/lang/Object;)Z\n         45: pop\n         46: aload_1\n-        47: ldc           #10                 // String fish\n-        49: invokevirtual #5                  // Method java/lang/String.contains:(Ljava/lang/CharSequence;)Z\n+        47: ldc           #35                 // String fish\n+        49: invokevirtual #12                 // Method java/lang/String.contains:(Ljava/lang/CharSequence;)Z\n         52: ifeq          65\n         55: aload_2\n-        56: getstatic     #11                 // Field dev/langchain4j/classification/TextClassifierTest$Categories.FISH:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n-        59: invokeinterface #7,  2            // InterfaceMethod java/util/Set.add:(Ljava/lang/Object;)Z\n+        56: getstatic     #37                 // Field dev/langchain4j/classification/TextClassifierTest$Categories.FISH:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n+        59: invokeinterface #24,  2           // InterfaceMethod java/util/Set.add:(Ljava/lang/Object;)Z\n         64: pop\n-        65: new           #12                 // class java/util/ArrayList\n+        65: new           #40                 // class java/util/ArrayList\n         68: dup\n         69: aload_2\n-        70: invokespecial #13                 // Method java/util/ArrayList.\"<init>\":(Ljava/util/Collection;)V\n+        70: invokespecial #42                 // Method java/util/ArrayList.\"<init>\":(Ljava/util/Collection;)V\n         73: areturn\n       LineNumberTable:\n         line 21: 0\n         line 22: 8\n         line 23: 17\n         line 25: 27\n         line 26: 36\n@@ -153,14 +152,14 @@\n             8      66     2 result   Ljava/util/Set<Ldev/langchain4j/classification/TextClassifierTest$Categories;>;\n       StackMapTable: number_of_entries = 3\n         frame_type = 252 /* append */\n           offset_delta = 27\n           locals = [ class java/util/Set ]\n         frame_type = 18 /* same */\n         frame_type = 18 /* same */\n-    Signature: #39                          // (Ljava/lang/String;)Ljava/util/List<Ldev/langchain4j/classification/TextClassifierTest$Categories;>;\n+    Signature: #64                          // (Ljava/lang/String;)Ljava/util/List<Ldev/langchain4j/classification/TextClassifierTest$Categories;>;\n }\n-Signature: #40                          // Ljava/lang/Object;Ldev/langchain4j/classification/TextClassifier<Ldev/langchain4j/classification/TextClassifierTest$Categories;>;\n+Signature: #65                          // Ljava/lang/Object;Ldev/langchain4j/classification/TextClassifier<Ldev/langchain4j/classification/TextClassifierTest$Categories;>;\n SourceFile: \"TextClassifierTest.java\"\n InnerClasses:\n-  public static #23= #14 of #57;          // CatClassifier=class dev/langchain4j/classification/TextClassifierTest$CatClassifier of class dev/langchain4j/classification/TextClassifierTest\n-  public static final #34= #33 of #57;    // Categories=class dev/langchain4j/classification/TextClassifierTest$Categories of class dev/langchain4j/classification/TextClassifierTest\n+  public static final #71= #19 of #69;    // Categories=class dev/langchain4j/classification/TextClassifierTest$Categories of class dev/langchain4j/classification/TextClassifierTest\n+  public static #72= #45 of #69;          // CatClassifier=class dev/langchain4j/classification/TextClassifierTest$CatClassifier of class dev/langchain4j/classification/TextClassifierTest\n"}]}, {"source1": "dev/langchain4j/classification/TextClassifierTest$Categories.class", "source2": "dev/langchain4j/classification/TextClassifierTest$Categories.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -11,10 +11,10 @@\n         return Enum.valueOf(Categories.class, name);\n     }\n     \n     static {\n         Categories.CAT = new Categories(\"CAT\", 0);\n         Categories.DOG = new Categories(\"DOG\", 1);\n         Categories.FISH = new Categories(\"FISH\", 2);\n-        Categories.$VALUES = new Categories[] { Categories.CAT, Categories.DOG, Categories.FISH };\n+        Categories.$VALUES = $values();\n     }\n }\n"}]}, {"source1": "dev/langchain4j/classification/TextClassifierTest.class", "source2": "dev/langchain4j/classification/TextClassifierTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,94 +1,94 @@\n-  SHA-256 checksum 83e6e1b37b1c3d5f6fa4c9e4575655508913b08b3937d1be61a23a06bf81f9ab\n+  SHA-256 checksum 949592d2df9f1eccf4973732f75a7653702c48a50ac3b0d30a43f19ed88ac899\n   Compiled from \"TextClassifierTest.java\"\n class dev.langchain4j.classification.TextClassifierTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #18                         // dev/langchain4j/classification/TextClassifierTest\n-  super_class: #19                        // java/lang/Object\n+  this_class: #17                         // dev/langchain4j/classification/TextClassifierTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 2\n Constant pool:\n-   #1 = Methodref          #19.#38        // java/lang/Object.\"<init>\":()V\n-   #2 = Class              #39            // dev/langchain4j/classification/TextClassifierTest$CatClassifier\n-   #3 = Methodref          #2.#38         // dev/langchain4j/classification/TextClassifierTest$CatClassifier.\"<init>\":()V\n-   #4 = String             #40            // cat fish\n-   #5 = Methodref          #2.#41         // dev/langchain4j/classification/TextClassifierTest$CatClassifier.classify:(Ljava/lang/String;)Ljava/util/List;\n-   #6 = Methodref          #18.#42        // dev/langchain4j/classification/TextClassifierTest.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-   #7 = Class              #43            // dev/langchain4j/classification/TextClassifierTest$Categories\n-   #8 = Fieldref           #7.#44         // dev/langchain4j/classification/TextClassifierTest$Categories.CAT:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n-   #9 = Fieldref           #7.#45         // dev/langchain4j/classification/TextClassifierTest$Categories.FISH:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n-  #10 = Methodref          #46.#47        // org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #11 = String             #48            // dog fish\n-  #12 = Methodref          #49.#50        // dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #13 = Methodref          #2.#51         // dev/langchain4j/classification/TextClassifierTest$CatClassifier.classify:(Ldev/langchain4j/data/segment/TextSegment;)Ljava/util/List;\n-  #14 = Fieldref           #7.#52         // dev/langchain4j/classification/TextClassifierTest$Categories.DOG:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n-  #15 = String             #53            // dog cat\n-  #16 = Methodref          #54.#55        // dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n-  #17 = Methodref          #2.#56         // dev/langchain4j/classification/TextClassifierTest$CatClassifier.classify:(Ldev/langchain4j/data/document/Document;)Ljava/util/List;\n-  #18 = Class              #57            // dev/langchain4j/classification/TextClassifierTest\n-  #19 = Class              #58            // java/lang/Object\n-  #20 = Class              #59            // org/assertj/core/api/WithAssertions\n-  #21 = Utf8               CatClassifier\n-  #22 = Utf8               InnerClasses\n-  #23 = Utf8               Categories\n-  #24 = Utf8               <init>\n-  #25 = Utf8               ()V\n-  #26 = Utf8               Code\n-  #27 = Utf8               LineNumberTable\n-  #28 = Utf8               LocalVariableTable\n-  #29 = Utf8               this\n-  #30 = Utf8               Ldev/langchain4j/classification/TextClassifierTest;\n-  #31 = Utf8               test\n-  #32 = Utf8               classifier\n-  #33 = Utf8               Ldev/langchain4j/classification/TextClassifierTest$CatClassifier;\n-  #34 = Utf8               RuntimeVisibleAnnotations\n-  #35 = Utf8               Lorg/junit/jupiter/api/Test;\n-  #36 = Utf8               SourceFile\n-  #37 = Utf8               TextClassifierTest.java\n-  #38 = NameAndType        #24:#25        // \"<init>\":()V\n-  #39 = Utf8               dev/langchain4j/classification/TextClassifierTest$CatClassifier\n-  #40 = Utf8               cat fish\n-  #41 = NameAndType        #60:#61        // classify:(Ljava/lang/String;)Ljava/util/List;\n-  #42 = NameAndType        #62:#63        // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #43 = Utf8               dev/langchain4j/classification/TextClassifierTest$Categories\n-  #44 = NameAndType        #64:#65        // CAT:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n-  #45 = NameAndType        #66:#65        // FISH:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n-  #46 = Class              #67            // org/assertj/core/api/ListAssert\n-  #47 = NameAndType        #68:#69        // containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #48 = Utf8               dog fish\n-  #49 = Class              #70            // dev/langchain4j/data/segment/TextSegment\n-  #50 = NameAndType        #71:#72        // from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #51 = NameAndType        #60:#73        // classify:(Ldev/langchain4j/data/segment/TextSegment;)Ljava/util/List;\n-  #52 = NameAndType        #74:#65        // DOG:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n-  #53 = Utf8               dog cat\n-  #54 = Class              #75            // dev/langchain4j/data/document/Document\n-  #55 = NameAndType        #71:#76        // from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n-  #56 = NameAndType        #60:#77        // classify:(Ldev/langchain4j/data/document/Document;)Ljava/util/List;\n-  #57 = Utf8               dev/langchain4j/classification/TextClassifierTest\n-  #58 = Utf8               java/lang/Object\n-  #59 = Utf8               org/assertj/core/api/WithAssertions\n-  #60 = Utf8               classify\n-  #61 = Utf8               (Ljava/lang/String;)Ljava/util/List;\n-  #62 = Utf8               assertThat\n-  #63 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #64 = Utf8               CAT\n-  #65 = Utf8               Ldev/langchain4j/classification/TextClassifierTest$Categories;\n-  #66 = Utf8               FISH\n-  #67 = Utf8               org/assertj/core/api/ListAssert\n-  #68 = Utf8               containsOnly\n-  #69 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #70 = Utf8               dev/langchain4j/data/segment/TextSegment\n-  #71 = Utf8               from\n-  #72 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #73 = Utf8               (Ldev/langchain4j/data/segment/TextSegment;)Ljava/util/List;\n-  #74 = Utf8               DOG\n-  #75 = Utf8               dev/langchain4j/data/document/Document\n-  #76 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n-  #77 = Utf8               (Ldev/langchain4j/data/document/Document;)Ljava/util/List;\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Class              #8             // dev/langchain4j/classification/TextClassifierTest$CatClassifier\n+   #8 = Utf8               dev/langchain4j/classification/TextClassifierTest$CatClassifier\n+   #9 = Methodref          #7.#3          // dev/langchain4j/classification/TextClassifierTest$CatClassifier.\"<init>\":()V\n+  #10 = String             #11            // cat fish\n+  #11 = Utf8               cat fish\n+  #12 = Methodref          #7.#13         // dev/langchain4j/classification/TextClassifierTest$CatClassifier.classify:(Ljava/lang/String;)Ljava/util/List;\n+  #13 = NameAndType        #14:#15        // classify:(Ljava/lang/String;)Ljava/util/List;\n+  #14 = Utf8               classify\n+  #15 = Utf8               (Ljava/lang/String;)Ljava/util/List;\n+  #16 = Methodref          #17.#18        // dev/langchain4j/classification/TextClassifierTest.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #17 = Class              #19            // dev/langchain4j/classification/TextClassifierTest\n+  #18 = NameAndType        #20:#21        // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #19 = Utf8               dev/langchain4j/classification/TextClassifierTest\n+  #20 = Utf8               assertThat\n+  #21 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #22 = Class              #23            // dev/langchain4j/classification/TextClassifierTest$Categories\n+  #23 = Utf8               dev/langchain4j/classification/TextClassifierTest$Categories\n+  #24 = Fieldref           #22.#25        // dev/langchain4j/classification/TextClassifierTest$Categories.CAT:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n+  #25 = NameAndType        #26:#27        // CAT:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n+  #26 = Utf8               CAT\n+  #27 = Utf8               Ldev/langchain4j/classification/TextClassifierTest$Categories;\n+  #28 = Fieldref           #22.#29        // dev/langchain4j/classification/TextClassifierTest$Categories.FISH:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n+  #29 = NameAndType        #30:#27        // FISH:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n+  #30 = Utf8               FISH\n+  #31 = Methodref          #32.#33        // org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #32 = Class              #34            // org/assertj/core/api/ListAssert\n+  #33 = NameAndType        #35:#36        // containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #34 = Utf8               org/assertj/core/api/ListAssert\n+  #35 = Utf8               containsOnly\n+  #36 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #37 = String             #38            // dog fish\n+  #38 = Utf8               dog fish\n+  #39 = Methodref          #40.#41        // dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #40 = Class              #42            // dev/langchain4j/data/segment/TextSegment\n+  #41 = NameAndType        #43:#44        // from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #42 = Utf8               dev/langchain4j/data/segment/TextSegment\n+  #43 = Utf8               from\n+  #44 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #45 = Methodref          #7.#46         // dev/langchain4j/classification/TextClassifierTest$CatClassifier.classify:(Ldev/langchain4j/data/segment/TextSegment;)Ljava/util/List;\n+  #46 = NameAndType        #14:#47        // classify:(Ldev/langchain4j/data/segment/TextSegment;)Ljava/util/List;\n+  #47 = Utf8               (Ldev/langchain4j/data/segment/TextSegment;)Ljava/util/List;\n+  #48 = Fieldref           #22.#49        // dev/langchain4j/classification/TextClassifierTest$Categories.DOG:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n+  #49 = NameAndType        #50:#27        // DOG:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n+  #50 = Utf8               DOG\n+  #51 = String             #52            // dog cat\n+  #52 = Utf8               dog cat\n+  #53 = Methodref          #54.#55        // dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+  #54 = Class              #56            // dev/langchain4j/data/document/Document\n+  #55 = NameAndType        #43:#57        // from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+  #56 = Utf8               dev/langchain4j/data/document/Document\n+  #57 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+  #58 = Methodref          #7.#59         // dev/langchain4j/classification/TextClassifierTest$CatClassifier.classify:(Ldev/langchain4j/data/document/Document;)Ljava/util/List;\n+  #59 = NameAndType        #14:#60        // classify:(Ldev/langchain4j/data/document/Document;)Ljava/util/List;\n+  #60 = Utf8               (Ldev/langchain4j/data/document/Document;)Ljava/util/List;\n+  #61 = Class              #62            // org/assertj/core/api/WithAssertions\n+  #62 = Utf8               org/assertj/core/api/WithAssertions\n+  #63 = Utf8               Code\n+  #64 = Utf8               LineNumberTable\n+  #65 = Utf8               LocalVariableTable\n+  #66 = Utf8               this\n+  #67 = Utf8               Ldev/langchain4j/classification/TextClassifierTest;\n+  #68 = Utf8               test\n+  #69 = Utf8               classifier\n+  #70 = Utf8               Ldev/langchain4j/classification/TextClassifierTest$CatClassifier;\n+  #71 = Utf8               RuntimeVisibleAnnotations\n+  #72 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #73 = Utf8               SourceFile\n+  #74 = Utf8               TextClassifierTest.java\n+  #75 = Utf8               InnerClasses\n+  #76 = Utf8               CatClassifier\n+  #77 = Utf8               Categories\n {\n   dev.langchain4j.classification.TextClassifierTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -101,84 +101,84 @@\n             0       5     0  this   Ldev/langchain4j/classification/TextClassifierTest;\n \n   public void test();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=5, locals=2, args_size=1\n-         0: new           #2                  // class dev/langchain4j/classification/TextClassifierTest$CatClassifier\n+         0: new           #7                  // class dev/langchain4j/classification/TextClassifierTest$CatClassifier\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/classification/TextClassifierTest$CatClassifier.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/classification/TextClassifierTest$CatClassifier.\"<init>\":()V\n          7: astore_1\n          8: aload_0\n          9: aload_1\n-        10: ldc           #4                  // String cat fish\n-        12: invokevirtual #5                  // Method dev/langchain4j/classification/TextClassifierTest$CatClassifier.classify:(Ljava/lang/String;)Ljava/util/List;\n-        15: invokevirtual #6                  // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+        10: ldc           #10                 // String cat fish\n+        12: invokevirtual #12                 // Method dev/langchain4j/classification/TextClassifierTest$CatClassifier.classify:(Ljava/lang/String;)Ljava/util/List;\n+        15: invokevirtual #16                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n         18: iconst_2\n-        19: anewarray     #7                  // class dev/langchain4j/classification/TextClassifierTest$Categories\n+        19: anewarray     #22                 // class dev/langchain4j/classification/TextClassifierTest$Categories\n         22: dup\n         23: iconst_0\n-        24: getstatic     #8                  // Field dev/langchain4j/classification/TextClassifierTest$Categories.CAT:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n+        24: getstatic     #24                 // Field dev/langchain4j/classification/TextClassifierTest$Categories.CAT:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n         27: aastore\n         28: dup\n         29: iconst_1\n-        30: getstatic     #9                  // Field dev/langchain4j/classification/TextClassifierTest$Categories.FISH:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n+        30: getstatic     #28                 // Field dev/langchain4j/classification/TextClassifierTest$Categories.FISH:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n         33: aastore\n-        34: invokevirtual #10                 // Method org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+        34: invokevirtual #31                 // Method org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n         37: pop\n         38: aload_0\n         39: aload_1\n-        40: ldc           #11                 // String dog fish\n-        42: invokestatic  #12                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-        45: invokevirtual #13                 // Method dev/langchain4j/classification/TextClassifierTest$CatClassifier.classify:(Ldev/langchain4j/data/segment/TextSegment;)Ljava/util/List;\n-        48: invokevirtual #6                  // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+        40: ldc           #37                 // String dog fish\n+        42: invokestatic  #39                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+        45: invokevirtual #45                 // Method dev/langchain4j/classification/TextClassifierTest$CatClassifier.classify:(Ldev/langchain4j/data/segment/TextSegment;)Ljava/util/List;\n+        48: invokevirtual #16                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n         51: iconst_2\n-        52: anewarray     #7                  // class dev/langchain4j/classification/TextClassifierTest$Categories\n+        52: anewarray     #22                 // class dev/langchain4j/classification/TextClassifierTest$Categories\n         55: dup\n         56: iconst_0\n-        57: getstatic     #14                 // Field dev/langchain4j/classification/TextClassifierTest$Categories.DOG:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n+        57: getstatic     #48                 // Field dev/langchain4j/classification/TextClassifierTest$Categories.DOG:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n         60: aastore\n         61: dup\n         62: iconst_1\n-        63: getstatic     #9                  // Field dev/langchain4j/classification/TextClassifierTest$Categories.FISH:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n+        63: getstatic     #28                 // Field dev/langchain4j/classification/TextClassifierTest$Categories.FISH:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n         66: aastore\n-        67: invokevirtual #10                 // Method org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+        67: invokevirtual #31                 // Method org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n         70: pop\n         71: aload_0\n         72: aload_1\n-        73: ldc           #15                 // String dog cat\n-        75: invokestatic  #16                 // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n-        78: invokevirtual #17                 // Method dev/langchain4j/classification/TextClassifierTest$CatClassifier.classify:(Ldev/langchain4j/data/document/Document;)Ljava/util/List;\n-        81: invokevirtual #6                  // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+        73: ldc           #51                 // String dog cat\n+        75: invokestatic  #53                 // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+        78: invokevirtual #58                 // Method dev/langchain4j/classification/TextClassifierTest$CatClassifier.classify:(Ldev/langchain4j/data/document/Document;)Ljava/util/List;\n+        81: invokevirtual #16                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n         84: iconst_2\n-        85: anewarray     #7                  // class dev/langchain4j/classification/TextClassifierTest$Categories\n+        85: anewarray     #22                 // class dev/langchain4j/classification/TextClassifierTest$Categories\n         88: dup\n         89: iconst_0\n-        90: getstatic     #8                  // Field dev/langchain4j/classification/TextClassifierTest$Categories.CAT:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n+        90: getstatic     #24                 // Field dev/langchain4j/classification/TextClassifierTest$Categories.CAT:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n         93: aastore\n         94: dup\n         95: iconst_1\n-        96: getstatic     #14                 // Field dev/langchain4j/classification/TextClassifierTest$Categories.DOG:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n+        96: getstatic     #48                 // Field dev/langchain4j/classification/TextClassifierTest$Categories.DOG:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n         99: aastore\n-       100: invokevirtual #10                 // Method org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+       100: invokevirtual #31                 // Method org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n        103: pop\n        104: return\n       LineNumberTable:\n         line 37: 0\n         line 39: 8\n         line 41: 38\n         line 42: 67\n         line 44: 71\n         line 45: 104\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     105     0  this   Ldev/langchain4j/classification/TextClassifierTest;\n             8      97     1 classifier   Ldev/langchain4j/classification/TextClassifierTest$CatClassifier;\n     RuntimeVisibleAnnotations:\n-      0: #35()\n+      0: #72()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"TextClassifierTest.java\"\n InnerClasses:\n-  public static #21= #2 of #18;           // CatClassifier=class dev/langchain4j/classification/TextClassifierTest$CatClassifier of class dev/langchain4j/classification/TextClassifierTest\n-  public static final #23= #7 of #18;     // Categories=class dev/langchain4j/classification/TextClassifierTest$Categories of class dev/langchain4j/classification/TextClassifierTest\n+  public static #76= #7 of #17;           // CatClassifier=class dev/langchain4j/classification/TextClassifierTest$CatClassifier of class dev/langchain4j/classification/TextClassifierTest\n+  public static final #77= #22 of #17;    // Categories=class dev/langchain4j/classification/TextClassifierTest$Categories of class dev/langchain4j/classification/TextClassifierTest\n"}]}, {"source1": "dev/langchain4j/data/document/DocumentLoaderTest$1.class", "source2": "dev/langchain4j/data/document/DocumentLoaderTest$1.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,113 +1,113 @@\n-  SHA-256 checksum df61ec658aa0690bd69799d6cbfd7d2c155e0cdb40945275b212035b54de8512\n+  SHA-256 checksum 94bdb7c8b189e794a5d29a6b116f5bb761ba1c0438edd6c621b320850c5fe64c\n   Compiled from \"DocumentLoaderTest.java\"\n class dev.langchain4j.data.document.DocumentLoaderTest$1 implements dev.langchain4j.data.document.DocumentSource\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #8                          // dev/langchain4j/data/document/DocumentLoaderTest$1\n-  super_class: #9                         // java/lang/Object\n+  this_class: #2                          // dev/langchain4j/data/document/DocumentLoaderTest$1\n+  super_class: #8                         // java/lang/Object\n   interfaces: 1, fields: 1, methods: 3, attributes: 3\n Constant pool:\n-   #1 = Fieldref           #8.#31         // dev/langchain4j/data/document/DocumentLoaderTest$1.this$0:Ldev/langchain4j/data/document/DocumentLoaderTest;\n-   #2 = Methodref          #9.#32         // java/lang/Object.\"<init>\":()V\n-   #3 = Class              #33            // java/io/IOException\n-   #4 = String             #34            // Failed to open input stream\n-   #5 = Methodref          #3.#35         // java/io/IOException.\"<init>\":(Ljava/lang/String;)V\n-   #6 = Class              #36            // dev/langchain4j/data/document/Metadata\n-   #7 = Methodref          #6.#32         // dev/langchain4j/data/document/Metadata.\"<init>\":()V\n-   #8 = Class              #37            // dev/langchain4j/data/document/DocumentLoaderTest$1\n-   #9 = Class              #38            // java/lang/Object\n-  #10 = Class              #39            // dev/langchain4j/data/document/DocumentSource\n-  #11 = Utf8               this$0\n-  #12 = Utf8               Ldev/langchain4j/data/document/DocumentLoaderTest;\n-  #13 = Utf8               <init>\n-  #14 = Utf8               (Ldev/langchain4j/data/document/DocumentLoaderTest;)V\n-  #15 = Utf8               Code\n-  #16 = Utf8               LineNumberTable\n-  #17 = Utf8               LocalVariableTable\n-  #18 = Utf8               this\n-  #19 = Utf8               InnerClasses\n-  #20 = Utf8               Ldev/langchain4j/data/document/DocumentLoaderTest$1;\n-  #21 = Utf8               inputStream\n-  #22 = Utf8               ()Ljava/io/InputStream;\n-  #23 = Utf8               Exceptions\n-  #24 = Utf8               metadata\n-  #25 = Utf8               ()Ldev/langchain4j/data/document/Metadata;\n-  #26 = Utf8               SourceFile\n-  #27 = Utf8               DocumentLoaderTest.java\n-  #28 = Utf8               EnclosingMethod\n-  #29 = Class              #40            // dev/langchain4j/data/document/DocumentLoaderTest\n-  #30 = NameAndType        #41:#42        // lambda$test_load$0:()V\n-  #31 = NameAndType        #11:#12        // this$0:Ldev/langchain4j/data/document/DocumentLoaderTest;\n-  #32 = NameAndType        #13:#42        // \"<init>\":()V\n-  #33 = Utf8               java/io/IOException\n-  #34 = Utf8               Failed to open input stream\n-  #35 = NameAndType        #13:#43        // \"<init>\":(Ljava/lang/String;)V\n-  #36 = Utf8               dev/langchain4j/data/document/Metadata\n-  #37 = Utf8               dev/langchain4j/data/document/DocumentLoaderTest$1\n-  #38 = Utf8               java/lang/Object\n-  #39 = Utf8               dev/langchain4j/data/document/DocumentSource\n+   #1 = Fieldref           #2.#3          // dev/langchain4j/data/document/DocumentLoaderTest$1.this$0:Ldev/langchain4j/data/document/DocumentLoaderTest;\n+   #2 = Class              #4             // dev/langchain4j/data/document/DocumentLoaderTest$1\n+   #3 = NameAndType        #5:#6          // this$0:Ldev/langchain4j/data/document/DocumentLoaderTest;\n+   #4 = Utf8               dev/langchain4j/data/document/DocumentLoaderTest$1\n+   #5 = Utf8               this$0\n+   #6 = Utf8               Ldev/langchain4j/data/document/DocumentLoaderTest;\n+   #7 = Methodref          #8.#9          // java/lang/Object.\"<init>\":()V\n+   #8 = Class              #10            // java/lang/Object\n+   #9 = NameAndType        #11:#12        // \"<init>\":()V\n+  #10 = Utf8               java/lang/Object\n+  #11 = Utf8               <init>\n+  #12 = Utf8               ()V\n+  #13 = Class              #14            // java/io/IOException\n+  #14 = Utf8               java/io/IOException\n+  #15 = String             #16            // Failed to open input stream\n+  #16 = Utf8               Failed to open input stream\n+  #17 = Methodref          #13.#18        // java/io/IOException.\"<init>\":(Ljava/lang/String;)V\n+  #18 = NameAndType        #11:#19        // \"<init>\":(Ljava/lang/String;)V\n+  #19 = Utf8               (Ljava/lang/String;)V\n+  #20 = Class              #21            // dev/langchain4j/data/document/Metadata\n+  #21 = Utf8               dev/langchain4j/data/document/Metadata\n+  #22 = Methodref          #20.#9         // dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+  #23 = Class              #24            // dev/langchain4j/data/document/DocumentSource\n+  #24 = Utf8               dev/langchain4j/data/document/DocumentSource\n+  #25 = Utf8               (Ldev/langchain4j/data/document/DocumentLoaderTest;)V\n+  #26 = Utf8               Code\n+  #27 = Utf8               LineNumberTable\n+  #28 = Utf8               LocalVariableTable\n+  #29 = Utf8               this\n+  #30 = Utf8               Ldev/langchain4j/data/document/DocumentLoaderTest$1;\n+  #31 = Utf8               inputStream\n+  #32 = Utf8               ()Ljava/io/InputStream;\n+  #33 = Utf8               Exceptions\n+  #34 = Utf8               metadata\n+  #35 = Utf8               ()Ldev/langchain4j/data/document/Metadata;\n+  #36 = Utf8               SourceFile\n+  #37 = Utf8               DocumentLoaderTest.java\n+  #38 = Utf8               EnclosingMethod\n+  #39 = Class              #40            // dev/langchain4j/data/document/DocumentLoaderTest\n   #40 = Utf8               dev/langchain4j/data/document/DocumentLoaderTest\n-  #41 = Utf8               lambda$test_load$0\n-  #42 = Utf8               ()V\n-  #43 = Utf8               (Ljava/lang/String;)V\n+  #41 = NameAndType        #42:#12        // test_load:()V\n+  #42 = Utf8               test_load\n+  #43 = Utf8               InnerClasses\n {\n   final dev.langchain4j.data.document.DocumentLoaderTest this$0;\n     descriptor: Ldev/langchain4j/data/document/DocumentLoaderTest;\n     flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC\n \n   dev.langchain4j.data.document.DocumentLoaderTest$1(dev.langchain4j.data.document.DocumentLoaderTest);\n     descriptor: (Ldev/langchain4j/data/document/DocumentLoaderTest;)V\n     flags: (0x0000)\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n          2: putfield      #1                  // Field this$0:Ldev/langchain4j/data/document/DocumentLoaderTest;\n          5: aload_0\n-         6: invokespecial #2                  // Method java/lang/Object.\"<init>\":()V\n+         6: invokespecial #7                  // Method java/lang/Object.\"<init>\":()V\n          9: return\n       LineNumberTable:\n         line 78: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      10     0  this   Ldev/langchain4j/data/document/DocumentLoaderTest$1;\n             0      10     1 this$0   Ldev/langchain4j/data/document/DocumentLoaderTest;\n \n   public java.io.InputStream inputStream() throws java.io.IOException;\n     descriptor: ()Ljava/io/InputStream;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=1, args_size=1\n-         0: new           #3                  // class java/io/IOException\n+         0: new           #13                 // class java/io/IOException\n          3: dup\n-         4: ldc           #4                  // String Failed to open input stream\n-         6: invokespecial #5                  // Method java/io/IOException.\"<init>\":(Ljava/lang/String;)V\n+         4: ldc           #15                 // String Failed to open input stream\n+         6: invokespecial #17                 // Method java/io/IOException.\"<init>\":(Ljava/lang/String;)V\n          9: athrow\n       LineNumberTable:\n         line 81: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      10     0  this   Ldev/langchain4j/data/document/DocumentLoaderTest$1;\n     Exceptions:\n       throws java.io.IOException\n \n   public dev.langchain4j.data.document.Metadata metadata();\n     descriptor: ()Ldev/langchain4j/data/document/Metadata;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=1, args_size=1\n-         0: new           #6                  // class dev/langchain4j/data/document/Metadata\n+         0: new           #20                 // class dev/langchain4j/data/document/Metadata\n          3: dup\n-         4: invokespecial #7                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+         4: invokespecial #22                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n          7: areturn\n       LineNumberTable:\n         line 86: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       8     0  this   Ldev/langchain4j/data/document/DocumentLoaderTest$1;\n }\n SourceFile: \"DocumentLoaderTest.java\"\n-EnclosingMethod: #29.#30                // dev.langchain4j.data.document.DocumentLoaderTest.lambda$test_load$0\n+EnclosingMethod: #39.#41                // dev.langchain4j.data.document.DocumentLoaderTest.test_load\n InnerClasses:\n-  #8;                                     // class dev/langchain4j/data/document/DocumentLoaderTest$1\n+  #2;                                     // class dev/langchain4j/data/document/DocumentLoaderTest$1\n"}]}, {"source1": "dev/langchain4j/data/document/DocumentLoaderTest$StringSource.class", "source2": "dev/langchain4j/data/document/DocumentLoaderTest$StringSource.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,67 +1,67 @@\n-  SHA-256 checksum d0917361fd430a94b377abd7d639b4dae72d85c00d3cf9f7009db68f8221db33\n+  SHA-256 checksum 2adf33caddabb180f76d1bd062faba8d7e2315e142452235bfed18450790dc12\n   Compiled from \"DocumentLoaderTest.java\"\n public final class dev.langchain4j.data.document.DocumentLoaderTest$StringSource implements dev.langchain4j.data.document.DocumentSource\n   minor version: 0\n   major version: 52\n   flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER\n   this_class: #8                          // dev/langchain4j/data/document/DocumentLoaderTest$StringSource\n-  super_class: #9                         // java/lang/Object\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 2, methods: 3, attributes: 2\n Constant pool:\n-   #1 = Methodref          #9.#29         // java/lang/Object.\"<init>\":()V\n-   #2 = Fieldref           #8.#30         // dev/langchain4j/data/document/DocumentLoaderTest$StringSource.content:Ljava/lang/String;\n-   #3 = Fieldref           #8.#31         // dev/langchain4j/data/document/DocumentLoaderTest$StringSource.metadata:Ldev/langchain4j/data/document/Metadata;\n-   #4 = Class              #32            // java/io/ByteArrayInputStream\n-   #5 = Fieldref           #33.#34        // java/nio/charset/StandardCharsets.UTF_8:Ljava/nio/charset/Charset;\n-   #6 = Methodref          #35.#36        // java/lang/String.getBytes:(Ljava/nio/charset/Charset;)[B\n-   #7 = Methodref          #4.#37         // java/io/ByteArrayInputStream.\"<init>\":([B)V\n-   #8 = Class              #39            // dev/langchain4j/data/document/DocumentLoaderTest$StringSource\n-   #9 = Class              #40            // java/lang/Object\n-  #10 = Class              #41            // dev/langchain4j/data/document/DocumentSource\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Fieldref           #8.#9          // dev/langchain4j/data/document/DocumentLoaderTest$StringSource.content:Ljava/lang/String;\n+   #8 = Class              #10            // dev/langchain4j/data/document/DocumentLoaderTest$StringSource\n+   #9 = NameAndType        #11:#12        // content:Ljava/lang/String;\n+  #10 = Utf8               dev/langchain4j/data/document/DocumentLoaderTest$StringSource\n   #11 = Utf8               content\n   #12 = Utf8               Ljava/lang/String;\n-  #13 = Utf8               metadata\n-  #14 = Utf8               Ldev/langchain4j/data/document/Metadata;\n-  #15 = Utf8               <init>\n-  #16 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n-  #17 = Utf8               Code\n-  #18 = Utf8               LineNumberTable\n-  #19 = Utf8               LocalVariableTable\n-  #20 = Utf8               this\n-  #21 = Utf8               StringSource\n-  #22 = Utf8               InnerClasses\n-  #23 = Utf8               Ldev/langchain4j/data/document/DocumentLoaderTest$StringSource;\n-  #24 = Utf8               inputStream\n-  #25 = Utf8               ()Ljava/io/InputStream;\n-  #26 = Utf8               ()Ldev/langchain4j/data/document/Metadata;\n-  #27 = Utf8               SourceFile\n-  #28 = Utf8               DocumentLoaderTest.java\n-  #29 = NameAndType        #15:#42        // \"<init>\":()V\n-  #30 = NameAndType        #11:#12        // content:Ljava/lang/String;\n-  #31 = NameAndType        #13:#14        // metadata:Ldev/langchain4j/data/document/Metadata;\n-  #32 = Utf8               java/io/ByteArrayInputStream\n-  #33 = Class              #43            // java/nio/charset/StandardCharsets\n-  #34 = NameAndType        #44:#45        // UTF_8:Ljava/nio/charset/Charset;\n-  #35 = Class              #46            // java/lang/String\n-  #36 = NameAndType        #47:#48        // getBytes:(Ljava/nio/charset/Charset;)[B\n-  #37 = NameAndType        #15:#49        // \"<init>\":([B)V\n-  #38 = Class              #50            // dev/langchain4j/data/document/DocumentLoaderTest\n-  #39 = Utf8               dev/langchain4j/data/document/DocumentLoaderTest$StringSource\n-  #40 = Utf8               java/lang/Object\n-  #41 = Utf8               dev/langchain4j/data/document/DocumentSource\n-  #42 = Utf8               ()V\n-  #43 = Utf8               java/nio/charset/StandardCharsets\n-  #44 = Utf8               UTF_8\n-  #45 = Utf8               Ljava/nio/charset/Charset;\n-  #46 = Utf8               java/lang/String\n-  #47 = Utf8               getBytes\n-  #48 = Utf8               (Ljava/nio/charset/Charset;)[B\n-  #49 = Utf8               ([B)V\n-  #50 = Utf8               dev/langchain4j/data/document/DocumentLoaderTest\n+  #13 = Fieldref           #8.#14         // dev/langchain4j/data/document/DocumentLoaderTest$StringSource.metadata:Ldev/langchain4j/data/document/Metadata;\n+  #14 = NameAndType        #15:#16        // metadata:Ldev/langchain4j/data/document/Metadata;\n+  #15 = Utf8               metadata\n+  #16 = Utf8               Ldev/langchain4j/data/document/Metadata;\n+  #17 = Class              #18            // java/io/ByteArrayInputStream\n+  #18 = Utf8               java/io/ByteArrayInputStream\n+  #19 = Fieldref           #20.#21        // java/nio/charset/StandardCharsets.UTF_8:Ljava/nio/charset/Charset;\n+  #20 = Class              #22            // java/nio/charset/StandardCharsets\n+  #21 = NameAndType        #23:#24        // UTF_8:Ljava/nio/charset/Charset;\n+  #22 = Utf8               java/nio/charset/StandardCharsets\n+  #23 = Utf8               UTF_8\n+  #24 = Utf8               Ljava/nio/charset/Charset;\n+  #25 = Methodref          #26.#27        // java/lang/String.getBytes:(Ljava/nio/charset/Charset;)[B\n+  #26 = Class              #28            // java/lang/String\n+  #27 = NameAndType        #29:#30        // getBytes:(Ljava/nio/charset/Charset;)[B\n+  #28 = Utf8               java/lang/String\n+  #29 = Utf8               getBytes\n+  #30 = Utf8               (Ljava/nio/charset/Charset;)[B\n+  #31 = Methodref          #17.#32        // java/io/ByteArrayInputStream.\"<init>\":([B)V\n+  #32 = NameAndType        #5:#33         // \"<init>\":([B)V\n+  #33 = Utf8               ([B)V\n+  #34 = Class              #35            // dev/langchain4j/data/document/DocumentSource\n+  #35 = Utf8               dev/langchain4j/data/document/DocumentSource\n+  #36 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+  #37 = Utf8               Code\n+  #38 = Utf8               LineNumberTable\n+  #39 = Utf8               LocalVariableTable\n+  #40 = Utf8               this\n+  #41 = Utf8               Ldev/langchain4j/data/document/DocumentLoaderTest$StringSource;\n+  #42 = Utf8               inputStream\n+  #43 = Utf8               ()Ljava/io/InputStream;\n+  #44 = Utf8               ()Ldev/langchain4j/data/document/Metadata;\n+  #45 = Utf8               SourceFile\n+  #46 = Utf8               DocumentLoaderTest.java\n+  #47 = Utf8               InnerClasses\n+  #48 = Class              #49            // dev/langchain4j/data/document/DocumentLoaderTest\n+  #49 = Utf8               dev/langchain4j/data/document/DocumentLoaderTest\n+  #50 = Utf8               StringSource\n {\n   private final java.lang.String content;\n     descriptor: Ljava/lang/String;\n     flags: (0x0012) ACC_PRIVATE, ACC_FINAL\n \n   private final dev.langchain4j.data.document.Metadata metadata;\n     descriptor: Ldev/langchain4j/data/document/Metadata;\n@@ -72,18 +72,18 @@\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=3, args_size=3\n          0: aload_0\n          1: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n          4: aload_0\n          5: aload_1\n-         6: putfield      #2                  // Field content:Ljava/lang/String;\n+         6: putfield      #7                  // Field content:Ljava/lang/String;\n          9: aload_0\n         10: aload_2\n-        11: putfield      #3                  // Field metadata:Ldev/langchain4j/data/document/Metadata;\n+        11: putfield      #13                 // Field metadata:Ldev/langchain4j/data/document/Metadata;\n         14: return\n       LineNumberTable:\n         line 15: 0\n         line 16: 4\n         line 17: 9\n         line 18: 14\n       LocalVariableTable:\n@@ -93,38 +93,38 @@\n             0      15     2 metadata   Ldev/langchain4j/data/document/Metadata;\n \n   public java.io.InputStream inputStream();\n     descriptor: ()Ljava/io/InputStream;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=4, locals=1, args_size=1\n-         0: new           #4                  // class java/io/ByteArrayInputStream\n+         0: new           #17                 // class java/io/ByteArrayInputStream\n          3: dup\n          4: aload_0\n-         5: getfield      #2                  // Field content:Ljava/lang/String;\n-         8: getstatic     #5                  // Field java/nio/charset/StandardCharsets.UTF_8:Ljava/nio/charset/Charset;\n-        11: invokevirtual #6                  // Method java/lang/String.getBytes:(Ljava/nio/charset/Charset;)[B\n-        14: invokespecial #7                  // Method java/io/ByteArrayInputStream.\"<init>\":([B)V\n+         5: getfield      #7                  // Field content:Ljava/lang/String;\n+         8: getstatic     #19                 // Field java/nio/charset/StandardCharsets.UTF_8:Ljava/nio/charset/Charset;\n+        11: invokevirtual #25                 // Method java/lang/String.getBytes:(Ljava/nio/charset/Charset;)[B\n+        14: invokespecial #31                 // Method java/io/ByteArrayInputStream.\"<init>\":([B)V\n         17: areturn\n       LineNumberTable:\n         line 22: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      18     0  this   Ldev/langchain4j/data/document/DocumentLoaderTest$StringSource;\n \n   public dev.langchain4j.data.document.Metadata metadata();\n     descriptor: ()Ldev/langchain4j/data/document/Metadata;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n-         1: getfield      #3                  // Field metadata:Ldev/langchain4j/data/document/Metadata;\n+         1: getfield      #13                 // Field metadata:Ldev/langchain4j/data/document/Metadata;\n          4: areturn\n       LineNumberTable:\n         line 27: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       5     0  this   Ldev/langchain4j/data/document/DocumentLoaderTest$StringSource;\n }\n SourceFile: \"DocumentLoaderTest.java\"\n InnerClasses:\n-  public static final #21= #8 of #38;     // StringSource=class dev/langchain4j/data/document/DocumentLoaderTest$StringSource of class dev/langchain4j/data/document/DocumentLoaderTest\n+  public static final #50= #8 of #48;     // StringSource=class dev/langchain4j/data/document/DocumentLoaderTest$StringSource of class dev/langchain4j/data/document/DocumentLoaderTest\n"}]}, {"source1": "dev/langchain4j/data/document/DocumentLoaderTest$TrivialParser.class", "source2": "dev/langchain4j/data/document/DocumentLoaderTest$TrivialParser.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,79 +1,77 @@\n-  SHA-256 checksum cdbe568498fa595bd29cd43287306a57fbfa57f1fea90e53c28ce202774def3c\n+  SHA-256 checksum 70405706aeb72de725845329a215c2fea68846c24ffcc020d06cf01adb3d03de\n   Compiled from \"DocumentLoaderTest.java\"\n public final class dev.langchain4j.data.document.DocumentLoaderTest$TrivialParser implements dev.langchain4j.data.document.DocumentParser\n   minor version: 0\n   major version: 52\n   flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER\n-  this_class: #11                         // dev/langchain4j/data/document/DocumentLoaderTest$TrivialParser\n-  super_class: #12                        // java/lang/Object\n+  this_class: #39                         // dev/langchain4j/data/document/DocumentLoaderTest$TrivialParser\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 2\n Constant pool:\n-   #1 = Methodref          #12.#36        // java/lang/Object.\"<init>\":()V\n-   #2 = Class              #37            // java/lang/String\n-   #3 = Methodref          #38.#39        // dev/langchain4j/data/document/DocumentLoaderTest.readAllBytes:(Ljava/io/InputStream;)[B\n-   #4 = Fieldref           #40.#41        // java/nio/charset/StandardCharsets.UTF_8:Ljava/nio/charset/Charset;\n-   #5 = Methodref          #2.#42         // java/lang/String.\"<init>\":([BLjava/nio/charset/Charset;)V\n-   #6 = Class              #43            // java/io/IOException\n-   #7 = Class              #44            // java/lang/RuntimeException\n-   #8 = String             #45            // Failed to read input stream\n-   #9 = Methodref          #7.#46         // java/lang/RuntimeException.\"<init>\":(Ljava/lang/String;Ljava/lang/Throwable;)V\n-  #10 = Methodref          #47.#48        // dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n-  #11 = Class              #49            // dev/langchain4j/data/document/DocumentLoaderTest$TrivialParser\n-  #12 = Class              #50            // java/lang/Object\n-  #13 = Class              #51            // dev/langchain4j/data/document/DocumentParser\n-  #14 = Utf8               <init>\n-  #15 = Utf8               ()V\n-  #16 = Utf8               Code\n-  #17 = Utf8               LineNumberTable\n-  #18 = Utf8               LocalVariableTable\n-  #19 = Utf8               this\n-  #20 = Utf8               TrivialParser\n-  #21 = Utf8               InnerClasses\n-  #22 = Utf8               Ldev/langchain4j/data/document/DocumentLoaderTest$TrivialParser;\n-  #23 = Utf8               parse\n-  #24 = Utf8               (Ljava/io/InputStream;)Ldev/langchain4j/data/document/Document;\n-  #25 = Utf8               str\n-  #26 = Utf8               Ljava/lang/String;\n-  #27 = Utf8               e\n-  #28 = Utf8               Ljava/io/IOException;\n-  #29 = Utf8               inputStream\n-  #30 = Utf8               Ljava/io/InputStream;\n-  #31 = Utf8               StackMapTable\n-  #32 = Class              #43            // java/io/IOException\n-  #33 = Class              #37            // java/lang/String\n-  #34 = Utf8               SourceFile\n-  #35 = Utf8               DocumentLoaderTest.java\n-  #36 = NameAndType        #14:#15        // \"<init>\":()V\n-  #37 = Utf8               java/lang/String\n-  #38 = Class              #52            // dev/langchain4j/data/document/DocumentLoaderTest\n-  #39 = NameAndType        #53:#54        // readAllBytes:(Ljava/io/InputStream;)[B\n-  #40 = Class              #55            // java/nio/charset/StandardCharsets\n-  #41 = NameAndType        #56:#57        // UTF_8:Ljava/nio/charset/Charset;\n-  #42 = NameAndType        #14:#58        // \"<init>\":([BLjava/nio/charset/Charset;)V\n-  #43 = Utf8               java/io/IOException\n-  #44 = Utf8               java/lang/RuntimeException\n-  #45 = Utf8               Failed to read input stream\n-  #46 = NameAndType        #14:#59        // \"<init>\":(Ljava/lang/String;Ljava/lang/Throwable;)V\n-  #47 = Class              #60            // dev/langchain4j/data/document/Document\n-  #48 = NameAndType        #61:#62        // from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n-  #49 = Utf8               dev/langchain4j/data/document/DocumentLoaderTest$TrivialParser\n-  #50 = Utf8               java/lang/Object\n-  #51 = Utf8               dev/langchain4j/data/document/DocumentParser\n-  #52 = Utf8               dev/langchain4j/data/document/DocumentLoaderTest\n-  #53 = Utf8               readAllBytes\n-  #54 = Utf8               (Ljava/io/InputStream;)[B\n-  #55 = Utf8               java/nio/charset/StandardCharsets\n-  #56 = Utf8               UTF_8\n-  #57 = Utf8               Ljava/nio/charset/Charset;\n-  #58 = Utf8               ([BLjava/nio/charset/Charset;)V\n-  #59 = Utf8               (Ljava/lang/String;Ljava/lang/Throwable;)V\n-  #60 = Utf8               dev/langchain4j/data/document/Document\n-  #61 = Utf8               from\n-  #62 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Class              #8             // java/lang/String\n+   #8 = Utf8               java/lang/String\n+   #9 = Methodref          #10.#11        // dev/langchain4j/data/document/DocumentLoaderTest.readAllBytes:(Ljava/io/InputStream;)[B\n+  #10 = Class              #12            // dev/langchain4j/data/document/DocumentLoaderTest\n+  #11 = NameAndType        #13:#14        // readAllBytes:(Ljava/io/InputStream;)[B\n+  #12 = Utf8               dev/langchain4j/data/document/DocumentLoaderTest\n+  #13 = Utf8               readAllBytes\n+  #14 = Utf8               (Ljava/io/InputStream;)[B\n+  #15 = Fieldref           #16.#17        // java/nio/charset/StandardCharsets.UTF_8:Ljava/nio/charset/Charset;\n+  #16 = Class              #18            // java/nio/charset/StandardCharsets\n+  #17 = NameAndType        #19:#20        // UTF_8:Ljava/nio/charset/Charset;\n+  #18 = Utf8               java/nio/charset/StandardCharsets\n+  #19 = Utf8               UTF_8\n+  #20 = Utf8               Ljava/nio/charset/Charset;\n+  #21 = Methodref          #7.#22         // java/lang/String.\"<init>\":([BLjava/nio/charset/Charset;)V\n+  #22 = NameAndType        #5:#23         // \"<init>\":([BLjava/nio/charset/Charset;)V\n+  #23 = Utf8               ([BLjava/nio/charset/Charset;)V\n+  #24 = Class              #25            // java/io/IOException\n+  #25 = Utf8               java/io/IOException\n+  #26 = Class              #27            // java/lang/RuntimeException\n+  #27 = Utf8               java/lang/RuntimeException\n+  #28 = String             #29            // Failed to read input stream\n+  #29 = Utf8               Failed to read input stream\n+  #30 = Methodref          #26.#31        // java/lang/RuntimeException.\"<init>\":(Ljava/lang/String;Ljava/lang/Throwable;)V\n+  #31 = NameAndType        #5:#32         // \"<init>\":(Ljava/lang/String;Ljava/lang/Throwable;)V\n+  #32 = Utf8               (Ljava/lang/String;Ljava/lang/Throwable;)V\n+  #33 = Methodref          #34.#35        // dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+  #34 = Class              #36            // dev/langchain4j/data/document/Document\n+  #35 = NameAndType        #37:#38        // from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+  #36 = Utf8               dev/langchain4j/data/document/Document\n+  #37 = Utf8               from\n+  #38 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+  #39 = Class              #40            // dev/langchain4j/data/document/DocumentLoaderTest$TrivialParser\n+  #40 = Utf8               dev/langchain4j/data/document/DocumentLoaderTest$TrivialParser\n+  #41 = Class              #42            // dev/langchain4j/data/document/DocumentParser\n+  #42 = Utf8               dev/langchain4j/data/document/DocumentParser\n+  #43 = Utf8               Code\n+  #44 = Utf8               LineNumberTable\n+  #45 = Utf8               LocalVariableTable\n+  #46 = Utf8               this\n+  #47 = Utf8               Ldev/langchain4j/data/document/DocumentLoaderTest$TrivialParser;\n+  #48 = Utf8               parse\n+  #49 = Utf8               (Ljava/io/InputStream;)Ldev/langchain4j/data/document/Document;\n+  #50 = Utf8               str\n+  #51 = Utf8               Ljava/lang/String;\n+  #52 = Utf8               e\n+  #53 = Utf8               Ljava/io/IOException;\n+  #54 = Utf8               inputStream\n+  #55 = Utf8               Ljava/io/InputStream;\n+  #56 = Utf8               StackMapTable\n+  #57 = Utf8               SourceFile\n+  #58 = Utf8               DocumentLoaderTest.java\n+  #59 = Utf8               InnerClasses\n+  #60 = Utf8               TrivialParser\n {\n   public dev.langchain4j.data.document.DocumentLoaderTest$TrivialParser();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -86,31 +84,31 @@\n             0       5     0  this   Ldev/langchain4j/data/document/DocumentLoaderTest$TrivialParser;\n \n   public dev.langchain4j.data.document.Document parse(java.io.InputStream);\n     descriptor: (Ljava/io/InputStream;)Ldev/langchain4j/data/document/Document;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=4, locals=4, args_size=2\n-         0: new           #2                  // class java/lang/String\n+         0: new           #7                  // class java/lang/String\n          3: dup\n          4: aload_1\n-         5: invokestatic  #3                  // Method dev/langchain4j/data/document/DocumentLoaderTest.readAllBytes:(Ljava/io/InputStream;)[B\n-         8: getstatic     #4                  // Field java/nio/charset/StandardCharsets.UTF_8:Ljava/nio/charset/Charset;\n-        11: invokespecial #5                  // Method java/lang/String.\"<init>\":([BLjava/nio/charset/Charset;)V\n+         5: invokestatic  #9                  // Method dev/langchain4j/data/document/DocumentLoaderTest.readAllBytes:(Ljava/io/InputStream;)[B\n+         8: getstatic     #15                 // Field java/nio/charset/StandardCharsets.UTF_8:Ljava/nio/charset/Charset;\n+        11: invokespecial #21                 // Method java/lang/String.\"<init>\":([BLjava/nio/charset/Charset;)V\n         14: astore_2\n         15: goto          30\n         18: astore_3\n-        19: new           #7                  // class java/lang/RuntimeException\n+        19: new           #26                 // class java/lang/RuntimeException\n         22: dup\n-        23: ldc           #8                  // String Failed to read input stream\n+        23: ldc           #28                 // String Failed to read input stream\n         25: aload_3\n-        26: invokespecial #9                  // Method java/lang/RuntimeException.\"<init>\":(Ljava/lang/String;Ljava/lang/Throwable;)V\n+        26: invokespecial #30                 // Method java/lang/RuntimeException.\"<init>\":(Ljava/lang/String;Ljava/lang/Throwable;)V\n         29: athrow\n         30: aload_2\n-        31: invokestatic  #10                 // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+        31: invokestatic  #33                 // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n         34: areturn\n       Exception table:\n          from    to  target type\n              0    15    18   Class java/io/IOException\n       LineNumberTable:\n         line 62: 0\n         line 65: 15\n@@ -129,8 +127,8 @@\n           stack = [ class java/io/IOException ]\n         frame_type = 252 /* append */\n           offset_delta = 11\n           locals = [ class java/lang/String ]\n }\n SourceFile: \"DocumentLoaderTest.java\"\n InnerClasses:\n-  public static final #20= #11 of #38;    // TrivialParser=class dev/langchain4j/data/document/DocumentLoaderTest$TrivialParser of class dev/langchain4j/data/document/DocumentLoaderTest\n+  public static final #60= #39 of #10;    // TrivialParser=class dev/langchain4j/data/document/DocumentLoaderTest$TrivialParser of class dev/langchain4j/data/document/DocumentLoaderTest\n"}]}, {"source1": "dev/langchain4j/data/document/DocumentLoaderTest.class", "source2": "dev/langchain4j/data/document/DocumentLoaderTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,213 +1,209 @@\n-  SHA-256 checksum afd9e78807998653173c50b52f976f130fdf4a6d812381c170085edfff03f2b0\n+  SHA-256 checksum 510c0d41cb88f8e5343df5c8b4522d948a25934a80c267580e68189bbb77d631\n   Compiled from \"DocumentLoaderTest.java\"\n class dev.langchain4j.data.document.DocumentLoaderTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #39                         // dev/langchain4j/data/document/DocumentLoaderTest\n-  super_class: #40                        // java/lang/Object\n+  this_class: #65                         // dev/langchain4j/data/document/DocumentLoaderTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 6, attributes: 3\n Constant pool:\n-    #1 = Methodref          #40.#87       // java/lang/Object.\"<init>\":()V\n-    #2 = Class              #88           // java/io/ByteArrayOutputStream\n-    #3 = Methodref          #2.#87        // java/io/ByteArrayOutputStream.\"<init>\":()V\n-    #4 = Methodref          #89.#90       // java/io/InputStream.read:([BII)I\n-    #5 = Methodref          #2.#91        // java/io/ByteArrayOutputStream.write:([BII)V\n-    #6 = Methodref          #2.#92        // java/io/ByteArrayOutputStream.toByteArray:()[B\n-    #7 = Methodref          #2.#93        // java/io/ByteArrayOutputStream.close:()V\n-    #8 = Class              #94           // java/lang/Throwable\n-    #9 = Methodref          #8.#95        // java/lang/Throwable.addSuppressed:(Ljava/lang/Throwable;)V\n-   #10 = Methodref          #89.#93       // java/io/InputStream.close:()V\n-   #11 = Class              #96           // java/io/IOException\n-   #12 = Methodref          #11.#95       // java/io/IOException.addSuppressed:(Ljava/lang/Throwable;)V\n-   #13 = Class              #97           // dev/langchain4j/data/document/DocumentLoaderTest$StringSource\n-   #14 = String             #98           // Hello, world!\n-   #15 = Class              #99           // dev/langchain4j/data/document/Metadata\n-   #16 = Methodref          #15.#87       // dev/langchain4j/data/document/Metadata.\"<init>\":()V\n-   #17 = String             #100          // foo\n-   #18 = String             #101          // bar\n-   #19 = Methodref          #15.#102      // dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-   #20 = Methodref          #13.#103      // dev/langchain4j/data/document/DocumentLoaderTest$StringSource.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n-   #21 = Class              #104          // dev/langchain4j/data/document/DocumentLoaderTest$TrivialParser\n-   #22 = Methodref          #21.#87       // dev/langchain4j/data/document/DocumentLoaderTest$TrivialParser.\"<init>\":()V\n-   #23 = Methodref          #105.#106     // dev/langchain4j/data/document/DocumentLoader.load:(Ldev/langchain4j/data/document/DocumentSource;Ldev/langchain4j/data/document/DocumentParser;)Ldev/langchain4j/data/document/Document;\n-   #24 = Methodref          #39.#107      // dev/langchain4j/data/document/DocumentLoaderTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #25 = Methodref          #108.#109     // dev/langchain4j/data/document/Document.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n-   #26 = Methodref          #110.#111     // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #27 = Class              #112          // java/lang/RuntimeException\n-   #28 = Methodref          #39.#113      // dev/langchain4j/data/document/DocumentLoaderTest.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-   #29 = InvokeDynamic      #0:#118       // #0:call:(Ldev/langchain4j/data/document/DocumentLoaderTest;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #30 = Methodref          #119.#120     // org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #31 = String             #121          // Failed to load document\n-   #32 = Methodref          #122.#123     // org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #33 = InvokeDynamic      #1:#125       // #1:call:(Ldev/langchain4j/data/document/DocumentLoaderTest$StringSource;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #34 = InvokeDynamic      #2:#128       // #2:parse:()Ldev/langchain4j/data/document/DocumentParser;\n-   #35 = String             #129          // Failed to parse document\n-   #36 = Methodref          #27.#130      // java/lang/RuntimeException.\"<init>\":(Ljava/lang/String;)V\n-   #37 = Class              #131          // dev/langchain4j/data/document/DocumentLoaderTest$1\n-   #38 = Methodref          #37.#132      // dev/langchain4j/data/document/DocumentLoaderTest$1.\"<init>\":(Ldev/langchain4j/data/document/DocumentLoaderTest;)V\n-   #39 = Class              #133          // dev/langchain4j/data/document/DocumentLoaderTest\n-   #40 = Class              #134          // java/lang/Object\n-   #41 = Class              #135          // org/assertj/core/api/WithAssertions\n-   #42 = Utf8               TrivialParser\n-   #43 = Utf8               InnerClasses\n-   #44 = Utf8               StringSource\n-   #45 = Utf8               <init>\n-   #46 = Utf8               ()V\n-   #47 = Utf8               Code\n-   #48 = Utf8               LineNumberTable\n-   #49 = Utf8               LocalVariableTable\n-   #50 = Utf8               this\n-   #51 = Utf8               Ldev/langchain4j/data/document/DocumentLoaderTest;\n-   #52 = Utf8               readAllBytes\n-   #53 = Utf8               (Ljava/io/InputStream;)[B\n-   #54 = Utf8               e\n-   #55 = Utf8               Ljava/io/IOException;\n-   #56 = Utf8               readLen\n-   #57 = Utf8               I\n-   #58 = Utf8               outputStream\n-   #59 = Utf8               Ljava/io/ByteArrayOutputStream;\n-   #60 = Utf8               inputStream\n-   #61 = Utf8               Ljava/io/InputStream;\n-   #62 = Utf8               bufLen\n-   #63 = Utf8               buf\n-   #64 = Utf8               [B\n-   #65 = Utf8               exception\n-   #66 = Utf8               StackMapTable\n-   #67 = Class              #136          // java/io/InputStream\n-   #68 = Class              #64           // \"[B\"\n-   #69 = Class              #96           // java/io/IOException\n-   #70 = Class              #88           // java/io/ByteArrayOutputStream\n-   #71 = Class              #94           // java/lang/Throwable\n-   #72 = Utf8               Exceptions\n-   #73 = Utf8               test_load\n-   #74 = Utf8               source\n-   #75 = Utf8               Ldev/langchain4j/data/document/DocumentLoaderTest$StringSource;\n-   #76 = Utf8               document\n-   #77 = Utf8               Ldev/langchain4j/data/document/Document;\n-   #78 = Utf8               RuntimeVisibleAnnotations\n-   #79 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #80 = Utf8               lambda$test_load$2\n-   #81 = Utf8               (Ldev/langchain4j/data/document/DocumentLoaderTest$StringSource;)V\n-   #82 = Utf8               lambda$null$1\n-   #83 = Utf8               (Ljava/io/InputStream;)Ldev/langchain4j/data/document/Document;\n-   #84 = Utf8               lambda$test_load$0\n-   #85 = Utf8               SourceFile\n-   #86 = Utf8               DocumentLoaderTest.java\n-   #87 = NameAndType        #45:#46       // \"<init>\":()V\n-   #88 = Utf8               java/io/ByteArrayOutputStream\n-   #89 = Class              #136          // java/io/InputStream\n-   #90 = NameAndType        #137:#138     // read:([BII)I\n-   #91 = NameAndType        #139:#140     // write:([BII)V\n-   #92 = NameAndType        #141:#142     // toByteArray:()[B\n-   #93 = NameAndType        #143:#46      // close:()V\n-   #94 = Utf8               java/lang/Throwable\n-   #95 = NameAndType        #144:#145     // addSuppressed:(Ljava/lang/Throwable;)V\n-   #96 = Utf8               java/io/IOException\n-   #97 = Utf8               dev/langchain4j/data/document/DocumentLoaderTest$StringSource\n-   #98 = Utf8               Hello, world!\n-   #99 = Utf8               dev/langchain4j/data/document/Metadata\n-  #100 = Utf8               foo\n-  #101 = Utf8               bar\n-  #102 = NameAndType        #146:#147     // add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-  #103 = NameAndType        #45:#148      // \"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n-  #104 = Utf8               dev/langchain4j/data/document/DocumentLoaderTest$TrivialParser\n-  #105 = Class              #149          // dev/langchain4j/data/document/DocumentLoader\n-  #106 = NameAndType        #150:#151     // load:(Ldev/langchain4j/data/document/DocumentSource;Ldev/langchain4j/data/document/DocumentParser;)Ldev/langchain4j/data/document/Document;\n-  #107 = NameAndType        #152:#153     // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #108 = Class              #154          // dev/langchain4j/data/document/Document\n-  #109 = NameAndType        #155:#156     // from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n-  #110 = Class              #157          // org/assertj/core/api/ObjectAssert\n-  #111 = NameAndType        #158:#159     // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #112 = Utf8               java/lang/RuntimeException\n-  #113 = NameAndType        #160:#161     // assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-  #114 = Utf8               BootstrapMethods\n-  #115 = MethodHandle       6:#162        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #116 = MethodType         #46           //  ()V\n-  #117 = MethodHandle       7:#163        // REF_invokeSpecial dev/langchain4j/data/document/DocumentLoaderTest.lambda$test_load$0:()V\n-  #118 = NameAndType        #164:#167     // call:(Ldev/langchain4j/data/document/DocumentLoaderTest;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-  #119 = Class              #168          // org/assertj/core/api/ThrowableTypeAssert\n-  #120 = NameAndType        #169:#170     // isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #121 = Utf8               Failed to load document\n-  #122 = Class              #171          // org/assertj/core/api/ThrowableAssertAlternative\n-  #123 = NameAndType        #172:#173     // withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #124 = MethodHandle       6:#174        // REF_invokeStatic dev/langchain4j/data/document/DocumentLoaderTest.lambda$test_load$2:(Ldev/langchain4j/data/document/DocumentLoaderTest$StringSource;)V\n-  #125 = NameAndType        #164:#175     // call:(Ldev/langchain4j/data/document/DocumentLoaderTest$StringSource;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-  #126 = MethodType         #83           //  (Ljava/io/InputStream;)Ldev/langchain4j/data/document/Document;\n-  #127 = MethodHandle       6:#176        // REF_invokeStatic dev/langchain4j/data/document/DocumentLoaderTest.lambda$null$1:(Ljava/io/InputStream;)Ldev/langchain4j/data/document/Document;\n-  #128 = NameAndType        #177:#178     // parse:()Ldev/langchain4j/data/document/DocumentParser;\n-  #129 = Utf8               Failed to parse document\n-  #130 = NameAndType        #45:#179      // \"<init>\":(Ljava/lang/String;)V\n-  #131 = Utf8               dev/langchain4j/data/document/DocumentLoaderTest$1\n-  #132 = NameAndType        #45:#180      // \"<init>\":(Ldev/langchain4j/data/document/DocumentLoaderTest;)V\n-  #133 = Utf8               dev/langchain4j/data/document/DocumentLoaderTest\n-  #134 = Utf8               java/lang/Object\n-  #135 = Utf8               org/assertj/core/api/WithAssertions\n-  #136 = Utf8               java/io/InputStream\n-  #137 = Utf8               read\n-  #138 = Utf8               ([BII)I\n-  #139 = Utf8               write\n-  #140 = Utf8               ([BII)V\n-  #141 = Utf8               toByteArray\n-  #142 = Utf8               ()[B\n-  #143 = Utf8               close\n-  #144 = Utf8               addSuppressed\n-  #145 = Utf8               (Ljava/lang/Throwable;)V\n-  #146 = Utf8               add\n-  #147 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-  #148 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n-  #149 = Utf8               dev/langchain4j/data/document/DocumentLoader\n-  #150 = Utf8               load\n-  #151 = Utf8               (Ldev/langchain4j/data/document/DocumentSource;Ldev/langchain4j/data/document/DocumentParser;)Ldev/langchain4j/data/document/Document;\n-  #152 = Utf8               assertThat\n-  #153 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #154 = Utf8               dev/langchain4j/data/document/Document\n-  #155 = Utf8               from\n-  #156 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n-  #157 = Utf8               org/assertj/core/api/ObjectAssert\n-  #158 = Utf8               isEqualTo\n-  #159 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #160 = Utf8               assertThatExceptionOfType\n-  #161 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-  #162 = Methodref          #181.#182     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #163 = Methodref          #39.#183      // dev/langchain4j/data/document/DocumentLoaderTest.lambda$test_load$0:()V\n-  #164 = Utf8               call\n-  #165 = Class              #185          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #166 = Utf8               ThrowingCallable\n-  #167 = Utf8               (Ldev/langchain4j/data/document/DocumentLoaderTest;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-  #168 = Utf8               org/assertj/core/api/ThrowableTypeAssert\n-  #169 = Utf8               isThrownBy\n-  #170 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #171 = Utf8               org/assertj/core/api/ThrowableAssertAlternative\n-  #172 = Utf8               withMessageContaining\n-  #173 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #174 = Methodref          #39.#186      // dev/langchain4j/data/document/DocumentLoaderTest.lambda$test_load$2:(Ldev/langchain4j/data/document/DocumentLoaderTest$StringSource;)V\n-  #175 = Utf8               (Ldev/langchain4j/data/document/DocumentLoaderTest$StringSource;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-  #176 = Methodref          #39.#187      // dev/langchain4j/data/document/DocumentLoaderTest.lambda$null$1:(Ljava/io/InputStream;)Ldev/langchain4j/data/document/Document;\n-  #177 = Utf8               parse\n-  #178 = Utf8               ()Ldev/langchain4j/data/document/DocumentParser;\n-  #179 = Utf8               (Ljava/lang/String;)V\n-  #180 = Utf8               (Ldev/langchain4j/data/document/DocumentLoaderTest;)V\n-  #181 = Class              #188          // java/lang/invoke/LambdaMetafactory\n-  #182 = NameAndType        #189:#192     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #183 = NameAndType        #84:#46       // lambda$test_load$0:()V\n-  #184 = Class              #193          // org/assertj/core/api/ThrowableAssert\n-  #185 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #186 = NameAndType        #80:#81       // lambda$test_load$2:(Ldev/langchain4j/data/document/DocumentLoaderTest$StringSource;)V\n-  #187 = NameAndType        #82:#83       // lambda$null$1:(Ljava/io/InputStream;)Ldev/langchain4j/data/document/Document;\n-  #188 = Utf8               java/lang/invoke/LambdaMetafactory\n-  #189 = Utf8               metafactory\n-  #190 = Class              #195          // java/lang/invoke/MethodHandles$Lookup\n-  #191 = Utf8               Lookup\n-  #192 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #193 = Utf8               org/assertj/core/api/ThrowableAssert\n-  #194 = Class              #196          // java/lang/invoke/MethodHandles\n-  #195 = Utf8               java/lang/invoke/MethodHandles$Lookup\n-  #196 = Utf8               java/lang/invoke/MethodHandles\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Class              #8            // java/io/ByteArrayOutputStream\n+    #8 = Utf8               java/io/ByteArrayOutputStream\n+    #9 = Methodref          #7.#3         // java/io/ByteArrayOutputStream.\"<init>\":()V\n+   #10 = Methodref          #11.#12       // java/io/InputStream.read:([BII)I\n+   #11 = Class              #13           // java/io/InputStream\n+   #12 = NameAndType        #14:#15       // read:([BII)I\n+   #13 = Utf8               java/io/InputStream\n+   #14 = Utf8               read\n+   #15 = Utf8               ([BII)I\n+   #16 = Methodref          #7.#17        // java/io/ByteArrayOutputStream.write:([BII)V\n+   #17 = NameAndType        #18:#19       // write:([BII)V\n+   #18 = Utf8               write\n+   #19 = Utf8               ([BII)V\n+   #20 = Methodref          #7.#21        // java/io/ByteArrayOutputStream.toByteArray:()[B\n+   #21 = NameAndType        #22:#23       // toByteArray:()[B\n+   #22 = Utf8               toByteArray\n+   #23 = Utf8               ()[B\n+   #24 = Methodref          #7.#25        // java/io/ByteArrayOutputStream.close:()V\n+   #25 = NameAndType        #26:#6        // close:()V\n+   #26 = Utf8               close\n+   #27 = Methodref          #11.#25       // java/io/InputStream.close:()V\n+   #28 = Class              #29           // java/io/IOException\n+   #29 = Utf8               java/io/IOException\n+   #30 = Methodref          #28.#31       // java/io/IOException.addSuppressed:(Ljava/lang/Throwable;)V\n+   #31 = NameAndType        #32:#33       // addSuppressed:(Ljava/lang/Throwable;)V\n+   #32 = Utf8               addSuppressed\n+   #33 = Utf8               (Ljava/lang/Throwable;)V\n+   #34 = Class              #35           // java/lang/Throwable\n+   #35 = Utf8               java/lang/Throwable\n+   #36 = Methodref          #34.#31       // java/lang/Throwable.addSuppressed:(Ljava/lang/Throwable;)V\n+   #37 = Class              #38           // dev/langchain4j/data/document/DocumentLoaderTest$StringSource\n+   #38 = Utf8               dev/langchain4j/data/document/DocumentLoaderTest$StringSource\n+   #39 = String             #40           // Hello, world!\n+   #40 = Utf8               Hello, world!\n+   #41 = Class              #42           // dev/langchain4j/data/document/Metadata\n+   #42 = Utf8               dev/langchain4j/data/document/Metadata\n+   #43 = Methodref          #41.#3        // dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+   #44 = String             #45           // foo\n+   #45 = Utf8               foo\n+   #46 = String             #47           // bar\n+   #47 = Utf8               bar\n+   #48 = Methodref          #41.#49       // dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+   #49 = NameAndType        #50:#51       // add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+   #50 = Utf8               add\n+   #51 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+   #52 = Methodref          #37.#53       // dev/langchain4j/data/document/DocumentLoaderTest$StringSource.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+   #53 = NameAndType        #5:#54        // \"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+   #54 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+   #55 = Class              #56           // dev/langchain4j/data/document/DocumentLoaderTest$TrivialParser\n+   #56 = Utf8               dev/langchain4j/data/document/DocumentLoaderTest$TrivialParser\n+   #57 = Methodref          #55.#3        // dev/langchain4j/data/document/DocumentLoaderTest$TrivialParser.\"<init>\":()V\n+   #58 = Methodref          #59.#60       // dev/langchain4j/data/document/DocumentLoader.load:(Ldev/langchain4j/data/document/DocumentSource;Ldev/langchain4j/data/document/DocumentParser;)Ldev/langchain4j/data/document/Document;\n+   #59 = Class              #61           // dev/langchain4j/data/document/DocumentLoader\n+   #60 = NameAndType        #62:#63       // load:(Ldev/langchain4j/data/document/DocumentSource;Ldev/langchain4j/data/document/DocumentParser;)Ldev/langchain4j/data/document/Document;\n+   #61 = Utf8               dev/langchain4j/data/document/DocumentLoader\n+   #62 = Utf8               load\n+   #63 = Utf8               (Ldev/langchain4j/data/document/DocumentSource;Ldev/langchain4j/data/document/DocumentParser;)Ldev/langchain4j/data/document/Document;\n+   #64 = Methodref          #65.#66       // dev/langchain4j/data/document/DocumentLoaderTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #65 = Class              #67           // dev/langchain4j/data/document/DocumentLoaderTest\n+   #66 = NameAndType        #68:#69       // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #67 = Utf8               dev/langchain4j/data/document/DocumentLoaderTest\n+   #68 = Utf8               assertThat\n+   #69 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #70 = Methodref          #71.#72       // dev/langchain4j/data/document/Document.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n+   #71 = Class              #73           // dev/langchain4j/data/document/Document\n+   #72 = NameAndType        #74:#75       // from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n+   #73 = Utf8               dev/langchain4j/data/document/Document\n+   #74 = Utf8               from\n+   #75 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n+   #76 = Methodref          #77.#78       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #77 = Class              #79           // org/assertj/core/api/ObjectAssert\n+   #78 = NameAndType        #80:#81       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #79 = Utf8               org/assertj/core/api/ObjectAssert\n+   #80 = Utf8               isEqualTo\n+   #81 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #82 = Class              #83           // java/lang/RuntimeException\n+   #83 = Utf8               java/lang/RuntimeException\n+   #84 = Methodref          #65.#85       // dev/langchain4j/data/document/DocumentLoaderTest.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #85 = NameAndType        #86:#87       // assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #86 = Utf8               assertThatExceptionOfType\n+   #87 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #88 = InvokeDynamic      #0:#89        // #0:call:(Ldev/langchain4j/data/document/DocumentLoaderTest;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #89 = NameAndType        #90:#91       // call:(Ldev/langchain4j/data/document/DocumentLoaderTest;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #90 = Utf8               call\n+   #91 = Utf8               (Ldev/langchain4j/data/document/DocumentLoaderTest;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #92 = Methodref          #93.#94       // org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #93 = Class              #95           // org/assertj/core/api/ThrowableTypeAssert\n+   #94 = NameAndType        #96:#97       // isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #95 = Utf8               org/assertj/core/api/ThrowableTypeAssert\n+   #96 = Utf8               isThrownBy\n+   #97 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #98 = String             #99           // Failed to load document\n+   #99 = Utf8               Failed to load document\n+  #100 = Methodref          #101.#102     // org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+  #101 = Class              #103          // org/assertj/core/api/ThrowableAssertAlternative\n+  #102 = NameAndType        #104:#105     // withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+  #103 = Utf8               org/assertj/core/api/ThrowableAssertAlternative\n+  #104 = Utf8               withMessageContaining\n+  #105 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+  #106 = InvokeDynamic      #1:#107       // #1:call:(Ldev/langchain4j/data/document/DocumentLoaderTest$StringSource;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+  #107 = NameAndType        #90:#108      // call:(Ldev/langchain4j/data/document/DocumentLoaderTest$StringSource;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+  #108 = Utf8               (Ldev/langchain4j/data/document/DocumentLoaderTest$StringSource;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+  #109 = InvokeDynamic      #2:#110       // #2:parse:()Ldev/langchain4j/data/document/DocumentParser;\n+  #110 = NameAndType        #111:#112     // parse:()Ldev/langchain4j/data/document/DocumentParser;\n+  #111 = Utf8               parse\n+  #112 = Utf8               ()Ldev/langchain4j/data/document/DocumentParser;\n+  #113 = String             #114          // Failed to parse document\n+  #114 = Utf8               Failed to parse document\n+  #115 = Methodref          #82.#116      // java/lang/RuntimeException.\"<init>\":(Ljava/lang/String;)V\n+  #116 = NameAndType        #5:#117       // \"<init>\":(Ljava/lang/String;)V\n+  #117 = Utf8               (Ljava/lang/String;)V\n+  #118 = Class              #119          // dev/langchain4j/data/document/DocumentLoaderTest$1\n+  #119 = Utf8               dev/langchain4j/data/document/DocumentLoaderTest$1\n+  #120 = Methodref          #118.#121     // dev/langchain4j/data/document/DocumentLoaderTest$1.\"<init>\":(Ldev/langchain4j/data/document/DocumentLoaderTest;)V\n+  #121 = NameAndType        #5:#122       // \"<init>\":(Ldev/langchain4j/data/document/DocumentLoaderTest;)V\n+  #122 = Utf8               (Ldev/langchain4j/data/document/DocumentLoaderTest;)V\n+  #123 = Class              #124          // org/assertj/core/api/WithAssertions\n+  #124 = Utf8               org/assertj/core/api/WithAssertions\n+  #125 = Utf8               Code\n+  #126 = Utf8               LineNumberTable\n+  #127 = Utf8               LocalVariableTable\n+  #128 = Utf8               this\n+  #129 = Utf8               Ldev/langchain4j/data/document/DocumentLoaderTest;\n+  #130 = Utf8               readAllBytes\n+  #131 = Utf8               (Ljava/io/InputStream;)[B\n+  #132 = Utf8               e\n+  #133 = Utf8               Ljava/io/IOException;\n+  #134 = Utf8               readLen\n+  #135 = Utf8               I\n+  #136 = Utf8               outputStream\n+  #137 = Utf8               Ljava/io/ByteArrayOutputStream;\n+  #138 = Utf8               inputStream\n+  #139 = Utf8               Ljava/io/InputStream;\n+  #140 = Utf8               bufLen\n+  #141 = Utf8               buf\n+  #142 = Utf8               [B\n+  #143 = Utf8               exception\n+  #144 = Utf8               StackMapTable\n+  #145 = Class              #142          // \"[B\"\n+  #146 = Utf8               Exceptions\n+  #147 = Utf8               test_load\n+  #148 = Utf8               source\n+  #149 = Utf8               Ldev/langchain4j/data/document/DocumentLoaderTest$StringSource;\n+  #150 = Utf8               document\n+  #151 = Utf8               Ldev/langchain4j/data/document/Document;\n+  #152 = Utf8               RuntimeVisibleAnnotations\n+  #153 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #154 = Utf8               lambda$test_load$2\n+  #155 = Utf8               (Ldev/langchain4j/data/document/DocumentLoaderTest$StringSource;)V\n+  #156 = Utf8               lambda$test_load$1\n+  #157 = Utf8               (Ljava/io/InputStream;)Ldev/langchain4j/data/document/Document;\n+  #158 = Utf8               lambda$test_load$0\n+  #159 = Utf8               SourceFile\n+  #160 = Utf8               DocumentLoaderTest.java\n+  #161 = Utf8               BootstrapMethods\n+  #162 = MethodHandle       6:#163        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #163 = Methodref          #164.#165     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #164 = Class              #166          // java/lang/invoke/LambdaMetafactory\n+  #165 = NameAndType        #167:#168     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #166 = Utf8               java/lang/invoke/LambdaMetafactory\n+  #167 = Utf8               metafactory\n+  #168 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #169 = MethodType         #6            //  ()V\n+  #170 = MethodHandle       7:#171        // REF_invokeSpecial dev/langchain4j/data/document/DocumentLoaderTest.lambda$test_load$0:()V\n+  #171 = Methodref          #65.#172      // dev/langchain4j/data/document/DocumentLoaderTest.lambda$test_load$0:()V\n+  #172 = NameAndType        #158:#6       // lambda$test_load$0:()V\n+  #173 = MethodHandle       6:#174        // REF_invokeStatic dev/langchain4j/data/document/DocumentLoaderTest.lambda$test_load$2:(Ldev/langchain4j/data/document/DocumentLoaderTest$StringSource;)V\n+  #174 = Methodref          #65.#175      // dev/langchain4j/data/document/DocumentLoaderTest.lambda$test_load$2:(Ldev/langchain4j/data/document/DocumentLoaderTest$StringSource;)V\n+  #175 = NameAndType        #154:#155     // lambda$test_load$2:(Ldev/langchain4j/data/document/DocumentLoaderTest$StringSource;)V\n+  #176 = MethodType         #157          //  (Ljava/io/InputStream;)Ldev/langchain4j/data/document/Document;\n+  #177 = MethodHandle       6:#178        // REF_invokeStatic dev/langchain4j/data/document/DocumentLoaderTest.lambda$test_load$1:(Ljava/io/InputStream;)Ldev/langchain4j/data/document/Document;\n+  #178 = Methodref          #65.#179      // dev/langchain4j/data/document/DocumentLoaderTest.lambda$test_load$1:(Ljava/io/InputStream;)Ldev/langchain4j/data/document/Document;\n+  #179 = NameAndType        #156:#157     // lambda$test_load$1:(Ljava/io/InputStream;)Ldev/langchain4j/data/document/Document;\n+  #180 = Utf8               InnerClasses\n+  #181 = Utf8               StringSource\n+  #182 = Utf8               TrivialParser\n+  #183 = Class              #184          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n+  #184 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n+  #185 = Class              #186          // org/assertj/core/api/ThrowableAssert\n+  #186 = Utf8               org/assertj/core/api/ThrowableAssert\n+  #187 = Utf8               ThrowingCallable\n+  #188 = Class              #189          // java/lang/invoke/MethodHandles$Lookup\n+  #189 = Utf8               java/lang/invoke/MethodHandles$Lookup\n+  #190 = Class              #191          // java/lang/invoke/MethodHandles\n+  #191 = Utf8               java/lang/invoke/MethodHandles\n+  #192 = Utf8               Lookup\n {\n   dev.langchain4j.data.document.DocumentLoaderTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -219,265 +215,228 @@\n         Start  Length  Slot  Name   Signature\n             0       5     0  this   Ldev/langchain4j/data/document/DocumentLoaderTest;\n \n   public static byte[] readAllBytes(java.io.InputStream) throws java.io.IOException;\n     descriptor: (Ljava/io/InputStream;)[B\n     flags: (0x0009) ACC_PUBLIC, ACC_STATIC\n     Code:\n-      stack=4, locals=13, args_size=1\n+      stack=4, locals=10, args_size=1\n          0: sipush        4096\n          3: istore_1\n          4: sipush        4096\n          7: newarray       byte\n          9: astore_2\n         10: aconst_null\n         11: astore        4\n-        13: new           #2                  // class java/io/ByteArrayOutputStream\n+        13: new           #7                  // class java/io/ByteArrayOutputStream\n         16: dup\n-        17: invokespecial #3                  // Method java/io/ByteArrayOutputStream.\"<init>\":()V\n+        17: invokespecial #9                  // Method java/io/ByteArrayOutputStream.\"<init>\":()V\n         20: astore        5\n-        22: aconst_null\n-        23: astore        6\n-        25: aload_0\n-        26: aload_2\n-        27: iconst_0\n-        28: sipush        4096\n-        31: invokevirtual #4                  // Method java/io/InputStream.read:([BII)I\n-        34: dup\n-        35: istore_3\n-        36: iconst_m1\n-        37: if_icmpeq     51\n-        40: aload         5\n-        42: aload_2\n-        43: iconst_0\n-        44: iload_3\n-        45: invokevirtual #5                  // Method java/io/ByteArrayOutputStream.write:([BII)V\n-        48: goto          25\n-        51: aload         5\n-        53: invokevirtual #6                  // Method java/io/ByteArrayOutputStream.toByteArray:()[B\n-        56: astore        7\n-        58: aload         5\n-        60: ifnull        93\n-        63: aload         6\n-        65: ifnull        88\n-        68: aload         5\n-        70: invokevirtual #7                  // Method java/io/ByteArrayOutputStream.close:()V\n-        73: goto          93\n-        76: astore        8\n-        78: aload         6\n-        80: aload         8\n-        82: invokevirtual #9                  // Method java/lang/Throwable.addSuppressed:(Ljava/lang/Throwable;)V\n-        85: goto          93\n-        88: aload         5\n-        90: invokevirtual #7                  // Method java/io/ByteArrayOutputStream.close:()V\n-        93: aload         4\n-        95: ifnonnull     105\n-        98: aload_0\n-        99: invokevirtual #10                 // Method java/io/InputStream.close:()V\n-       102: goto          121\n-       105: aload_0\n-       106: invokevirtual #10                 // Method java/io/InputStream.close:()V\n-       109: goto          121\n-       112: astore        8\n-       114: aload         4\n-       116: aload         8\n-       118: invokevirtual #12                 // Method java/io/IOException.addSuppressed:(Ljava/lang/Throwable;)V\n-       121: aload         7\n-       123: areturn\n-       124: astore        7\n-       126: aload         7\n-       128: astore        6\n-       130: aload         7\n-       132: athrow\n-       133: astore        9\n-       135: aload         5\n-       137: ifnull        170\n-       140: aload         6\n-       142: ifnull        165\n-       145: aload         5\n-       147: invokevirtual #7                  // Method java/io/ByteArrayOutputStream.close:()V\n-       150: goto          170\n-       153: astore        10\n-       155: aload         6\n-       157: aload         10\n-       159: invokevirtual #9                  // Method java/lang/Throwable.addSuppressed:(Ljava/lang/Throwable;)V\n-       162: goto          170\n-       165: aload         5\n-       167: invokevirtual #7                  // Method java/io/ByteArrayOutputStream.close:()V\n-       170: aload         9\n-       172: athrow\n-       173: astore        5\n-       175: aload         5\n-       177: astore        4\n-       179: aload         5\n-       181: athrow\n-       182: astore        11\n-       184: aload         4\n-       186: ifnonnull     196\n-       189: aload_0\n-       190: invokevirtual #10                 // Method java/io/InputStream.close:()V\n-       193: goto          212\n-       196: aload_0\n-       197: invokevirtual #10                 // Method java/io/InputStream.close:()V\n-       200: goto          212\n-       203: astore        12\n-       205: aload         4\n-       207: aload         12\n-       209: invokevirtual #12                 // Method java/io/IOException.addSuppressed:(Ljava/lang/Throwable;)V\n-       212: aload         11\n-       214: athrow\n+        22: aload_0\n+        23: aload_2\n+        24: iconst_0\n+        25: sipush        4096\n+        28: invokevirtual #10                 // Method java/io/InputStream.read:([BII)I\n+        31: dup\n+        32: istore_3\n+        33: iconst_m1\n+        34: if_icmpeq     48\n+        37: aload         5\n+        39: aload_2\n+        40: iconst_0\n+        41: iload_3\n+        42: invokevirtual #16                 // Method java/io/ByteArrayOutputStream.write:([BII)V\n+        45: goto          22\n+        48: aload         5\n+        50: invokevirtual #20                 // Method java/io/ByteArrayOutputStream.toByteArray:()[B\n+        53: astore        6\n+        55: aload         5\n+        57: invokevirtual #24                 // Method java/io/ByteArrayOutputStream.close:()V\n+        60: aload         4\n+        62: ifnonnull     72\n+        65: aload_0\n+        66: invokevirtual #27                 // Method java/io/InputStream.close:()V\n+        69: goto          88\n+        72: aload_0\n+        73: invokevirtual #27                 // Method java/io/InputStream.close:()V\n+        76: goto          88\n+        79: astore        7\n+        81: aload         4\n+        83: aload         7\n+        85: invokevirtual #30                 // Method java/io/IOException.addSuppressed:(Ljava/lang/Throwable;)V\n+        88: aload         6\n+        90: areturn\n+        91: astore        6\n+        93: aload         5\n+        95: invokevirtual #24                 // Method java/io/ByteArrayOutputStream.close:()V\n+        98: goto          110\n+       101: astore        7\n+       103: aload         6\n+       105: aload         7\n+       107: invokevirtual #36                 // Method java/lang/Throwable.addSuppressed:(Ljava/lang/Throwable;)V\n+       110: aload         6\n+       112: athrow\n+       113: astore        5\n+       115: aload         5\n+       117: astore        4\n+       119: aload         5\n+       121: athrow\n+       122: astore        8\n+       124: aload         4\n+       126: ifnonnull     136\n+       129: aload_0\n+       130: invokevirtual #27                 // Method java/io/InputStream.close:()V\n+       133: goto          152\n+       136: aload_0\n+       137: invokevirtual #27                 // Method java/io/InputStream.close:()V\n+       140: goto          152\n+       143: astore        9\n+       145: aload         4\n+       147: aload         9\n+       149: invokevirtual #30                 // Method java/io/IOException.addSuppressed:(Ljava/lang/Throwable;)V\n+       152: aload         8\n+       154: athrow\n       Exception table:\n          from    to  target type\n-            68    73    76   Class java/lang/Throwable\n-           105   109   112   Class java/io/IOException\n-            25    58   124   Class java/lang/Throwable\n-            25    58   133   any\n-           145   150   153   Class java/lang/Throwable\n-           124   135   133   any\n-            13    93   173   Class java/io/IOException\n-           124   173   173   Class java/io/IOException\n-            13    93   182   any\n-           196   200   203   Class java/io/IOException\n-           124   184   182   any\n+            72    76    79   Class java/io/IOException\n+            22    55    91   Class java/lang/Throwable\n+            93    98   101   Class java/lang/Throwable\n+            13    60   113   Class java/io/IOException\n+            91   113   113   Class java/io/IOException\n+            13    60   122   any\n+           136   140   143   Class java/io/IOException\n+            91   124   122   any\n       LineNumberTable:\n         line 32: 0\n         line 33: 4\n         line 35: 10\n         line 38: 13\n-        line 39: 25\n-        line 40: 40\n-        line 42: 51\n-        line 43: 58\n-        line 48: 93\n-        line 50: 105\n-        line 53: 109\n-        line 51: 112\n-        line 52: 114\n-        line 42: 121\n-        line 38: 124\n-        line 43: 133\n-        line 44: 173\n-        line 45: 175\n-        line 46: 179\n-        line 48: 182\n-        line 50: 196\n-        line 53: 200\n-        line 51: 203\n-        line 52: 205\n-        line 54: 212\n+        line 39: 22\n+        line 40: 37\n+        line 42: 48\n+        line 43: 55\n+        line 48: 60\n+        line 50: 72\n+        line 53: 76\n+        line 51: 79\n+        line 52: 81\n+        line 42: 88\n+        line 38: 91\n+        line 44: 113\n+        line 45: 115\n+        line 46: 119\n+        line 48: 122\n+        line 50: 136\n+        line 53: 140\n+        line 51: 143\n+        line 52: 145\n+        line 54: 152\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n-          114       7     8     e   Ljava/io/IOException;\n-           36      88     3 readLen   I\n-           22     151     5 outputStream   Ljava/io/ByteArrayOutputStream;\n-          175       7     5     e   Ljava/io/IOException;\n-          205       7    12     e   Ljava/io/IOException;\n-            0     215     0 inputStream   Ljava/io/InputStream;\n-            4     211     1 bufLen   I\n-           10     205     2   buf   [B\n-           13     202     4 exception   Ljava/io/IOException;\n-      StackMapTable: number_of_entries = 18\n+           81       7     7     e   Ljava/io/IOException;\n+           33      58     3 readLen   I\n+           22      91     5 outputStream   Ljava/io/ByteArrayOutputStream;\n+          115       7     5     e   Ljava/io/IOException;\n+          145       7     9     e   Ljava/io/IOException;\n+            0     155     0 inputStream   Ljava/io/InputStream;\n+            4     151     1 bufLen   I\n+           10     145     2   buf   [B\n+           13     142     4 exception   Ljava/io/IOException;\n+      StackMapTable: number_of_entries = 13\n         frame_type = 255 /* full_frame */\n-          offset_delta = 25\n-          locals = [ class java/io/InputStream, int, class \"[B\", top, class java/io/IOException, class java/io/ByteArrayOutputStream, class java/lang/Throwable ]\n+          offset_delta = 22\n+          locals = [ class java/io/InputStream, int, class \"[B\", top, class java/io/IOException, class java/io/ByteArrayOutputStream ]\n           stack = []\n         frame_type = 255 /* full_frame */\n           offset_delta = 25\n-          locals = [ class java/io/InputStream, int, class \"[B\", int, class java/io/IOException, class java/io/ByteArrayOutputStream, class java/lang/Throwable ]\n+          locals = [ class java/io/InputStream, int, class \"[B\", int, class java/io/IOException, class java/io/ByteArrayOutputStream ]\n           stack = []\n-        frame_type = 255 /* full_frame */\n-          offset_delta = 24\n-          locals = [ class java/io/InputStream, int, class \"[B\", int, class java/io/IOException, class java/io/ByteArrayOutputStream, class java/lang/Throwable, class \"[B\" ]\n-          stack = [ class java/lang/Throwable ]\n-        frame_type = 11 /* same */\n-        frame_type = 4 /* same */\n-        frame_type = 11 /* same */\n+        frame_type = 252 /* append */\n+          offset_delta = 23\n+          locals = [ class \"[B\" ]\n         frame_type = 70 /* same_locals_1_stack_item */\n           stack = [ class java/io/IOException ]\n         frame_type = 8 /* same */\n         frame_type = 255 /* full_frame */\n           offset_delta = 2\n-          locals = [ class java/io/InputStream, int, class \"[B\", top, class java/io/IOException, class java/io/ByteArrayOutputStream, class java/lang/Throwable ]\n-          stack = [ class java/lang/Throwable ]\n-        frame_type = 72 /* same_locals_1_stack_item */\n+          locals = [ class java/io/InputStream, int, class \"[B\", top, class java/io/IOException, class java/io/ByteArrayOutputStream ]\n           stack = [ class java/lang/Throwable ]\n         frame_type = 255 /* full_frame */\n-          offset_delta = 19\n-          locals = [ class java/io/InputStream, int, class \"[B\", top, class java/io/IOException, class java/io/ByteArrayOutputStream, class java/lang/Throwable, top, top, class java/lang/Throwable ]\n+          offset_delta = 9\n+          locals = [ class java/io/InputStream, int, class \"[B\", top, class java/io/IOException, class java/io/ByteArrayOutputStream, class java/lang/Throwable ]\n           stack = [ class java/lang/Throwable ]\n-        frame_type = 11 /* same */\n-        frame_type = 4 /* same */\n+        frame_type = 8 /* same */\n         frame_type = 255 /* full_frame */\n           offset_delta = 2\n           locals = [ class java/io/InputStream, int, class \"[B\", top, class java/io/IOException ]\n           stack = [ class java/io/IOException ]\n         frame_type = 72 /* same_locals_1_stack_item */\n           stack = [ class java/lang/Throwable ]\n         frame_type = 255 /* full_frame */\n           offset_delta = 13\n-          locals = [ class java/io/InputStream, int, class \"[B\", top, class java/io/IOException, top, top, top, top, top, top, class java/lang/Throwable ]\n+          locals = [ class java/io/InputStream, int, class \"[B\", top, class java/io/IOException, top, top, top, class java/lang/Throwable ]\n           stack = []\n         frame_type = 70 /* same_locals_1_stack_item */\n           stack = [ class java/io/IOException ]\n         frame_type = 8 /* same */\n     Exceptions:\n       throws java.io.IOException\n \n   public void test_load();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=6, locals=3, args_size=1\n-         0: new           #13                 // class dev/langchain4j/data/document/DocumentLoaderTest$StringSource\n+         0: new           #37                 // class dev/langchain4j/data/document/DocumentLoaderTest$StringSource\n          3: dup\n-         4: ldc           #14                 // String Hello, world!\n-         6: new           #15                 // class dev/langchain4j/data/document/Metadata\n+         4: ldc           #39                 // String Hello, world!\n+         6: new           #41                 // class dev/langchain4j/data/document/Metadata\n          9: dup\n-        10: invokespecial #16                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n-        13: ldc           #17                 // String foo\n-        15: ldc           #18                 // String bar\n-        17: invokevirtual #19                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-        20: invokespecial #20                 // Method dev/langchain4j/data/document/DocumentLoaderTest$StringSource.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+        10: invokespecial #43                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+        13: ldc           #44                 // String foo\n+        15: ldc           #46                 // String bar\n+        17: invokevirtual #48                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        20: invokespecial #52                 // Method dev/langchain4j/data/document/DocumentLoaderTest$StringSource.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n         23: astore_1\n         24: aload_1\n-        25: new           #21                 // class dev/langchain4j/data/document/DocumentLoaderTest$TrivialParser\n+        25: new           #55                 // class dev/langchain4j/data/document/DocumentLoaderTest$TrivialParser\n         28: dup\n-        29: invokespecial #22                 // Method dev/langchain4j/data/document/DocumentLoaderTest$TrivialParser.\"<init>\":()V\n-        32: invokestatic  #23                 // Method dev/langchain4j/data/document/DocumentLoader.load:(Ldev/langchain4j/data/document/DocumentSource;Ldev/langchain4j/data/document/DocumentParser;)Ldev/langchain4j/data/document/Document;\n+        29: invokespecial #57                 // Method dev/langchain4j/data/document/DocumentLoaderTest$TrivialParser.\"<init>\":()V\n+        32: invokestatic  #58                 // Method dev/langchain4j/data/document/DocumentLoader.load:(Ldev/langchain4j/data/document/DocumentSource;Ldev/langchain4j/data/document/DocumentParser;)Ldev/langchain4j/data/document/Document;\n         35: astore_2\n         36: aload_0\n         37: aload_2\n-        38: invokevirtual #24                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        41: ldc           #14                 // String Hello, world!\n-        43: new           #15                 // class dev/langchain4j/data/document/Metadata\n+        38: invokevirtual #64                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        41: ldc           #39                 // String Hello, world!\n+        43: new           #41                 // class dev/langchain4j/data/document/Metadata\n         46: dup\n-        47: invokespecial #16                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n-        50: ldc           #17                 // String foo\n-        52: ldc           #18                 // String bar\n-        54: invokevirtual #19                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-        57: invokestatic  #25                 // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n-        60: invokevirtual #26                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        47: invokespecial #43                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+        50: ldc           #44                 // String foo\n+        52: ldc           #46                 // String bar\n+        54: invokevirtual #48                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        57: invokestatic  #70                 // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n+        60: invokevirtual #76                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         63: pop\n         64: aload_0\n-        65: ldc           #27                 // class java/lang/RuntimeException\n-        67: invokevirtual #28                 // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+        65: ldc           #82                 // class java/lang/RuntimeException\n+        67: invokevirtual #84                 // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n         70: aload_0\n-        71: invokedynamic #29,  0             // InvokeDynamic #0:call:(Ldev/langchain4j/data/document/DocumentLoaderTest;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-        76: invokevirtual #30                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-        79: ldc           #31                 // String Failed to load document\n-        81: invokevirtual #32                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        71: invokedynamic #88,  0             // InvokeDynamic #0:call:(Ldev/langchain4j/data/document/DocumentLoaderTest;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+        76: invokevirtual #92                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        79: ldc           #98                 // String Failed to load document\n+        81: invokevirtual #100                // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n         84: pop\n         85: aload_0\n-        86: ldc           #27                 // class java/lang/RuntimeException\n-        88: invokevirtual #28                 // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+        86: ldc           #82                 // class java/lang/RuntimeException\n+        88: invokevirtual #84                 // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n         91: aload_1\n-        92: invokedynamic #33,  0             // InvokeDynamic #1:call:(Ldev/langchain4j/data/document/DocumentLoaderTest$StringSource;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-        97: invokevirtual #30                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-       100: ldc           #31                 // String Failed to load document\n-       102: invokevirtual #32                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        92: invokedynamic #106,  0            // InvokeDynamic #1:call:(Ldev/langchain4j/data/document/DocumentLoaderTest$StringSource;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+        97: invokevirtual #92                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+       100: ldc           #98                 // String Failed to load document\n+       102: invokevirtual #100                // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n        105: pop\n        106: return\n       LineNumberTable:\n         line 73: 0\n         line 74: 24\n         line 75: 36\n         line 77: 64\n@@ -489,90 +448,90 @@\n         line 100: 106\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     107     0  this   Ldev/langchain4j/data/document/DocumentLoaderTest;\n            24      83     1 source   Ldev/langchain4j/data/document/DocumentLoaderTest$StringSource;\n            36      71     2 document   Ldev/langchain4j/data/document/Document;\n     RuntimeVisibleAnnotations:\n-      0: #79()\n+      0: #153()\n         org.junit.jupiter.api.Test\n \n   private static void lambda$test_load$2(dev.langchain4j.data.document.DocumentLoaderTest$StringSource) throws java.lang.Throwable;\n     descriptor: (Ldev/langchain4j/data/document/DocumentLoaderTest$StringSource;)V\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=2, locals=1, args_size=1\n          0: aload_0\n-         1: invokedynamic #34,  0             // InvokeDynamic #2:parse:()Ldev/langchain4j/data/document/DocumentParser;\n-         6: invokestatic  #23                 // Method dev/langchain4j/data/document/DocumentLoader.load:(Ldev/langchain4j/data/document/DocumentSource;Ldev/langchain4j/data/document/DocumentParser;)Ldev/langchain4j/data/document/Document;\n+         1: invokedynamic #109,  0            // InvokeDynamic #2:parse:()Ldev/langchain4j/data/document/DocumentParser;\n+         6: invokestatic  #58                 // Method dev/langchain4j/data/document/DocumentLoader.load:(Ldev/langchain4j/data/document/DocumentSource;Ldev/langchain4j/data/document/DocumentParser;)Ldev/langchain4j/data/document/Document;\n          9: pop\n         10: return\n       LineNumberTable:\n         line 92: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      11     0 source   Ldev/langchain4j/data/document/DocumentLoaderTest$StringSource;\n     Exceptions:\n       throws java.lang.Throwable\n \n-  private static dev.langchain4j.data.document.Document lambda$null$1(java.io.InputStream);\n+  private static dev.langchain4j.data.document.Document lambda$test_load$1(java.io.InputStream);\n     descriptor: (Ljava/io/InputStream;)Ldev/langchain4j/data/document/Document;\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=3, locals=1, args_size=1\n-         0: new           #27                 // class java/lang/RuntimeException\n+         0: new           #82                 // class java/lang/RuntimeException\n          3: dup\n-         4: ldc           #35                 // String Failed to parse document\n-         6: invokespecial #36                 // Method java/lang/RuntimeException.\"<init>\":(Ljava/lang/String;)V\n+         4: ldc           #113                // String Failed to parse document\n+         6: invokespecial #115                // Method java/lang/RuntimeException.\"<init>\":(Ljava/lang/String;)V\n          9: athrow\n       LineNumberTable:\n         line 95: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      10     0 inputStream   Ljava/io/InputStream;\n \n   private void lambda$test_load$0() throws java.lang.Throwable;\n     descriptor: ()V\n     flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC\n     Code:\n       stack=3, locals=1, args_size=1\n-         0: new           #37                 // class dev/langchain4j/data/document/DocumentLoaderTest$1\n+         0: new           #118                // class dev/langchain4j/data/document/DocumentLoaderTest$1\n          3: dup\n          4: aload_0\n-         5: invokespecial #38                 // Method dev/langchain4j/data/document/DocumentLoaderTest$1.\"<init>\":(Ldev/langchain4j/data/document/DocumentLoaderTest;)V\n-         8: new           #21                 // class dev/langchain4j/data/document/DocumentLoaderTest$TrivialParser\n+         5: invokespecial #120                // Method dev/langchain4j/data/document/DocumentLoaderTest$1.\"<init>\":(Ldev/langchain4j/data/document/DocumentLoaderTest;)V\n+         8: new           #55                 // class dev/langchain4j/data/document/DocumentLoaderTest$TrivialParser\n         11: dup\n-        12: invokespecial #22                 // Method dev/langchain4j/data/document/DocumentLoaderTest$TrivialParser.\"<init>\":()V\n-        15: invokestatic  #23                 // Method dev/langchain4j/data/document/DocumentLoader.load:(Ldev/langchain4j/data/document/DocumentSource;Ldev/langchain4j/data/document/DocumentParser;)Ldev/langchain4j/data/document/Document;\n+        12: invokespecial #57                 // Method dev/langchain4j/data/document/DocumentLoaderTest$TrivialParser.\"<init>\":()V\n+        15: invokestatic  #58                 // Method dev/langchain4j/data/document/DocumentLoader.load:(Ldev/langchain4j/data/document/DocumentSource;Ldev/langchain4j/data/document/DocumentParser;)Ldev/langchain4j/data/document/Document;\n         18: pop\n         19: return\n       LineNumberTable:\n         line 78: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      20     0  this   Ldev/langchain4j/data/document/DocumentLoaderTest;\n     Exceptions:\n       throws java.lang.Throwable\n }\n SourceFile: \"DocumentLoaderTest.java\"\n-InnerClasses:\n-  public static final #42= #21 of #39;    // TrivialParser=class dev/langchain4j/data/document/DocumentLoaderTest$TrivialParser of class dev/langchain4j/data/document/DocumentLoaderTest\n-  public static final #44= #13 of #39;    // StringSource=class dev/langchain4j/data/document/DocumentLoaderTest$StringSource of class dev/langchain4j/data/document/DocumentLoaderTest\n-  #37;                                    // class dev/langchain4j/data/document/DocumentLoaderTest$1\n-  public static #166= #165 of #184;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n-  public static final #191= #190 of #194; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n BootstrapMethods:\n-  0: #115 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  0: #162 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #116 ()V\n-      #117 REF_invokeSpecial dev/langchain4j/data/document/DocumentLoaderTest.lambda$test_load$0:()V\n-      #116 ()V\n-  1: #115 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #169 ()V\n+      #170 REF_invokeSpecial dev/langchain4j/data/document/DocumentLoaderTest.lambda$test_load$0:()V\n+      #169 ()V\n+  1: #162 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #116 ()V\n-      #124 REF_invokeStatic dev/langchain4j/data/document/DocumentLoaderTest.lambda$test_load$2:(Ldev/langchain4j/data/document/DocumentLoaderTest$StringSource;)V\n-      #116 ()V\n-  2: #115 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #169 ()V\n+      #173 REF_invokeStatic dev/langchain4j/data/document/DocumentLoaderTest.lambda$test_load$2:(Ldev/langchain4j/data/document/DocumentLoaderTest$StringSource;)V\n+      #169 ()V\n+  2: #162 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #126 (Ljava/io/InputStream;)Ldev/langchain4j/data/document/Document;\n-      #127 REF_invokeStatic dev/langchain4j/data/document/DocumentLoaderTest.lambda$null$1:(Ljava/io/InputStream;)Ldev/langchain4j/data/document/Document;\n-      #126 (Ljava/io/InputStream;)Ldev/langchain4j/data/document/Document;\n+      #176 (Ljava/io/InputStream;)Ldev/langchain4j/data/document/Document;\n+      #177 REF_invokeStatic dev/langchain4j/data/document/DocumentLoaderTest.lambda$test_load$1:(Ljava/io/InputStream;)Ldev/langchain4j/data/document/Document;\n+      #176 (Ljava/io/InputStream;)Ldev/langchain4j/data/document/Document;\n+InnerClasses:\n+  public static final #181= #37 of #65;   // StringSource=class dev/langchain4j/data/document/DocumentLoaderTest$StringSource of class dev/langchain4j/data/document/DocumentLoaderTest\n+  public static final #182= #55 of #65;   // TrivialParser=class dev/langchain4j/data/document/DocumentLoaderTest$TrivialParser of class dev/langchain4j/data/document/DocumentLoaderTest\n+  public static #187= #183 of #185;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n+  #118;                                   // class dev/langchain4j/data/document/DocumentLoaderTest$1\n+  public static final #192= #188 of #190; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n"}]}, {"source1": "dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter.class", "source2": "dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,145 +1,145 @@\n-  SHA-256 checksum 1560a64d8b35a487007841de1e1d575872dbe0b4da3a3608c5ba98e9afb32a9a\n+  SHA-256 checksum 10ca241b15e2bd35138222005fd1b5ab48baabcdc14a57d844a37548259d191f\n   Compiled from \"DocumentSplitterTest.java\"\n public final class dev.langchain4j.data.document.DocumentSplitterTest$WhitespaceSplitter implements dev.langchain4j.data.document.DocumentSplitter\n   minor version: 0\n   major version: 52\n   flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER\n-  this_class: #18                         // dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter\n-  super_class: #19                        // java/lang/Object\n+  this_class: #75                         // dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 4, attributes: 3\n Constant pool:\n-    #1 = Methodref          #19.#47       // java/lang/Object.\"<init>\":()V\n-    #2 = Methodref          #48.#49       // dev/langchain4j/data/document/Document.metadata:()Ldev/langchain4j/data/document/Metadata;\n-    #3 = Methodref          #48.#50       // dev/langchain4j/data/document/Document.text:()Ljava/lang/String;\n-    #4 = String             #51           // \\\\s+\n-    #5 = Methodref          #52.#53       // java/lang/String.split:(Ljava/lang/String;)[Ljava/lang/String;\n-    #6 = Methodref          #54.#55       // java/util/Arrays.stream:([Ljava/lang/Object;)Ljava/util/stream/Stream;\n-    #7 = InvokeDynamic      #0:#61        // #0:test:()Ljava/util/function/Predicate;\n-    #8 = InterfaceMethodref #62.#63       // java/util/stream/Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;\n-    #9 = InvokeDynamic      #1:#67        // #1:apply:(Ldev/langchain4j/data/document/Metadata;)Ljava/util/function/Function;\n-   #10 = InterfaceMethodref #62.#68       // java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n-   #11 = Methodref          #69.#70       // java/util/stream/Collectors.toList:()Ljava/util/stream/Collector;\n-   #12 = InterfaceMethodref #62.#71       // java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n-   #13 = Class              #72           // java/util/List\n-   #14 = Class              #73           // dev/langchain4j/data/segment/TextSegment\n-   #15 = Methodref          #74.#75       // dev/langchain4j/data/document/Metadata.copy:()Ldev/langchain4j/data/document/Metadata;\n-   #16 = Methodref          #14.#76       // dev/langchain4j/data/segment/TextSegment.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n-   #17 = Methodref          #52.#77       // java/lang/String.isEmpty:()Z\n-   #18 = Class              #79           // dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter\n-   #19 = Class              #80           // java/lang/Object\n-   #20 = Class              #81           // dev/langchain4j/data/document/DocumentSplitter\n-   #21 = Utf8               <init>\n-   #22 = Utf8               ()V\n-   #23 = Utf8               Code\n-   #24 = Utf8               LineNumberTable\n-   #25 = Utf8               LocalVariableTable\n-   #26 = Utf8               this\n-   #27 = Utf8               WhitespaceSplitter\n-   #28 = Utf8               InnerClasses\n-   #29 = Utf8               Ldev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter;\n-   #30 = Utf8               split\n-   #31 = Utf8               (Ldev/langchain4j/data/document/Document;)Ljava/util/List;\n-   #32 = Utf8               document\n-   #33 = Utf8               Ldev/langchain4j/data/document/Document;\n-   #34 = Utf8               metadata\n-   #35 = Utf8               Ldev/langchain4j/data/document/Metadata;\n-   #36 = Utf8               Signature\n-   #37 = Utf8               (Ldev/langchain4j/data/document/Document;)Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;\n-   #38 = Utf8               lambda$split$1\n-   #39 = Utf8               (Ldev/langchain4j/data/document/Metadata;Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-   #40 = Utf8               s\n-   #41 = Utf8               Ljava/lang/String;\n-   #42 = Utf8               lambda$split$0\n-   #43 = Utf8               (Ljava/lang/String;)Z\n-   #44 = Utf8               StackMapTable\n-   #45 = Utf8               SourceFile\n-   #46 = Utf8               DocumentSplitterTest.java\n-   #47 = NameAndType        #21:#22       // \"<init>\":()V\n-   #48 = Class              #82           // dev/langchain4j/data/document/Document\n-   #49 = NameAndType        #34:#83       // metadata:()Ldev/langchain4j/data/document/Metadata;\n-   #50 = NameAndType        #84:#85       // text:()Ljava/lang/String;\n-   #51 = Utf8               \\\\s+\n-   #52 = Class              #86           // java/lang/String\n-   #53 = NameAndType        #30:#87       // split:(Ljava/lang/String;)[Ljava/lang/String;\n-   #54 = Class              #88           // java/util/Arrays\n-   #55 = NameAndType        #89:#90       // stream:([Ljava/lang/Object;)Ljava/util/stream/Stream;\n-   #56 = Utf8               BootstrapMethods\n-   #57 = MethodHandle       6:#91         // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-   #58 = MethodType         #92           //  (Ljava/lang/Object;)Z\n-   #59 = MethodHandle       6:#93         // REF_invokeStatic dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter.lambda$split$0:(Ljava/lang/String;)Z\n-   #60 = MethodType         #43           //  (Ljava/lang/String;)Z\n-   #61 = NameAndType        #94:#95       // test:()Ljava/util/function/Predicate;\n-   #62 = Class              #96           // java/util/stream/Stream\n-   #63 = NameAndType        #97:#98       // filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;\n-   #64 = MethodType         #99           //  (Ljava/lang/Object;)Ljava/lang/Object;\n-   #65 = MethodHandle       6:#100        // REF_invokeStatic dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter.lambda$split$1:(Ldev/langchain4j/data/document/Metadata;Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-   #66 = MethodType         #101          //  (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-   #67 = NameAndType        #102:#103     // apply:(Ldev/langchain4j/data/document/Metadata;)Ljava/util/function/Function;\n-   #68 = NameAndType        #104:#105     // map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n-   #69 = Class              #106          // java/util/stream/Collectors\n-   #70 = NameAndType        #107:#108     // toList:()Ljava/util/stream/Collector;\n-   #71 = NameAndType        #109:#110     // collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n-   #72 = Utf8               java/util/List\n-   #73 = Utf8               dev/langchain4j/data/segment/TextSegment\n-   #74 = Class              #111          // dev/langchain4j/data/document/Metadata\n-   #75 = NameAndType        #112:#83      // copy:()Ldev/langchain4j/data/document/Metadata;\n-   #76 = NameAndType        #21:#113      // \"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n-   #77 = NameAndType        #114:#115     // isEmpty:()Z\n-   #78 = Class              #116          // dev/langchain4j/data/document/DocumentSplitterTest\n-   #79 = Utf8               dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter\n-   #80 = Utf8               java/lang/Object\n-   #81 = Utf8               dev/langchain4j/data/document/DocumentSplitter\n-   #82 = Utf8               dev/langchain4j/data/document/Document\n-   #83 = Utf8               ()Ldev/langchain4j/data/document/Metadata;\n-   #84 = Utf8               text\n-   #85 = Utf8               ()Ljava/lang/String;\n-   #86 = Utf8               java/lang/String\n-   #87 = Utf8               (Ljava/lang/String;)[Ljava/lang/String;\n-   #88 = Utf8               java/util/Arrays\n-   #89 = Utf8               stream\n-   #90 = Utf8               ([Ljava/lang/Object;)Ljava/util/stream/Stream;\n-   #91 = Methodref          #117.#118     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-   #92 = Utf8               (Ljava/lang/Object;)Z\n-   #93 = Methodref          #18.#119      // dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter.lambda$split$0:(Ljava/lang/String;)Z\n-   #94 = Utf8               test\n-   #95 = Utf8               ()Ljava/util/function/Predicate;\n-   #96 = Utf8               java/util/stream/Stream\n-   #97 = Utf8               filter\n-   #98 = Utf8               (Ljava/util/function/Predicate;)Ljava/util/stream/Stream;\n-   #99 = Utf8               (Ljava/lang/Object;)Ljava/lang/Object;\n-  #100 = Methodref          #18.#120      // dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter.lambda$split$1:(Ldev/langchain4j/data/document/Metadata;Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #101 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #102 = Utf8               apply\n-  #103 = Utf8               (Ldev/langchain4j/data/document/Metadata;)Ljava/util/function/Function;\n-  #104 = Utf8               map\n-  #105 = Utf8               (Ljava/util/function/Function;)Ljava/util/stream/Stream;\n-  #106 = Utf8               java/util/stream/Collectors\n-  #107 = Utf8               toList\n-  #108 = Utf8               ()Ljava/util/stream/Collector;\n-  #109 = Utf8               collect\n-  #110 = Utf8               (Ljava/util/stream/Collector;)Ljava/lang/Object;\n-  #111 = Utf8               dev/langchain4j/data/document/Metadata\n-  #112 = Utf8               copy\n-  #113 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n-  #114 = Utf8               isEmpty\n-  #115 = Utf8               ()Z\n-  #116 = Utf8               dev/langchain4j/data/document/DocumentSplitterTest\n-  #117 = Class              #121          // java/lang/invoke/LambdaMetafactory\n-  #118 = NameAndType        #122:#125     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #119 = NameAndType        #42:#43       // lambda$split$0:(Ljava/lang/String;)Z\n-  #120 = NameAndType        #38:#39       // lambda$split$1:(Ldev/langchain4j/data/document/Metadata;Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #121 = Utf8               java/lang/invoke/LambdaMetafactory\n-  #122 = Utf8               metafactory\n-  #123 = Class              #127          // java/lang/invoke/MethodHandles$Lookup\n-  #124 = Utf8               Lookup\n-  #125 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #126 = Class              #128          // java/lang/invoke/MethodHandles\n-  #127 = Utf8               java/lang/invoke/MethodHandles$Lookup\n-  #128 = Utf8               java/lang/invoke/MethodHandles\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Methodref          #8.#9         // dev/langchain4j/data/document/Document.metadata:()Ldev/langchain4j/data/document/Metadata;\n+    #8 = Class              #10           // dev/langchain4j/data/document/Document\n+    #9 = NameAndType        #11:#12       // metadata:()Ldev/langchain4j/data/document/Metadata;\n+   #10 = Utf8               dev/langchain4j/data/document/Document\n+   #11 = Utf8               metadata\n+   #12 = Utf8               ()Ldev/langchain4j/data/document/Metadata;\n+   #13 = Methodref          #8.#14        // dev/langchain4j/data/document/Document.text:()Ljava/lang/String;\n+   #14 = NameAndType        #15:#16       // text:()Ljava/lang/String;\n+   #15 = Utf8               text\n+   #16 = Utf8               ()Ljava/lang/String;\n+   #17 = String             #18           // \\\\s+\n+   #18 = Utf8               \\\\s+\n+   #19 = Methodref          #20.#21       // java/lang/String.split:(Ljava/lang/String;)[Ljava/lang/String;\n+   #20 = Class              #22           // java/lang/String\n+   #21 = NameAndType        #23:#24       // split:(Ljava/lang/String;)[Ljava/lang/String;\n+   #22 = Utf8               java/lang/String\n+   #23 = Utf8               split\n+   #24 = Utf8               (Ljava/lang/String;)[Ljava/lang/String;\n+   #25 = Methodref          #26.#27       // java/util/Arrays.stream:([Ljava/lang/Object;)Ljava/util/stream/Stream;\n+   #26 = Class              #28           // java/util/Arrays\n+   #27 = NameAndType        #29:#30       // stream:([Ljava/lang/Object;)Ljava/util/stream/Stream;\n+   #28 = Utf8               java/util/Arrays\n+   #29 = Utf8               stream\n+   #30 = Utf8               ([Ljava/lang/Object;)Ljava/util/stream/Stream;\n+   #31 = InvokeDynamic      #0:#32        // #0:test:()Ljava/util/function/Predicate;\n+   #32 = NameAndType        #33:#34       // test:()Ljava/util/function/Predicate;\n+   #33 = Utf8               test\n+   #34 = Utf8               ()Ljava/util/function/Predicate;\n+   #35 = InterfaceMethodref #36.#37       // java/util/stream/Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;\n+   #36 = Class              #38           // java/util/stream/Stream\n+   #37 = NameAndType        #39:#40       // filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;\n+   #38 = Utf8               java/util/stream/Stream\n+   #39 = Utf8               filter\n+   #40 = Utf8               (Ljava/util/function/Predicate;)Ljava/util/stream/Stream;\n+   #41 = InvokeDynamic      #1:#42        // #1:apply:(Ldev/langchain4j/data/document/Metadata;)Ljava/util/function/Function;\n+   #42 = NameAndType        #43:#44       // apply:(Ldev/langchain4j/data/document/Metadata;)Ljava/util/function/Function;\n+   #43 = Utf8               apply\n+   #44 = Utf8               (Ldev/langchain4j/data/document/Metadata;)Ljava/util/function/Function;\n+   #45 = InterfaceMethodref #36.#46       // java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n+   #46 = NameAndType        #47:#48       // map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n+   #47 = Utf8               map\n+   #48 = Utf8               (Ljava/util/function/Function;)Ljava/util/stream/Stream;\n+   #49 = Methodref          #50.#51       // java/util/stream/Collectors.toList:()Ljava/util/stream/Collector;\n+   #50 = Class              #52           // java/util/stream/Collectors\n+   #51 = NameAndType        #53:#54       // toList:()Ljava/util/stream/Collector;\n+   #52 = Utf8               java/util/stream/Collectors\n+   #53 = Utf8               toList\n+   #54 = Utf8               ()Ljava/util/stream/Collector;\n+   #55 = InterfaceMethodref #36.#56       // java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n+   #56 = NameAndType        #57:#58       // collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n+   #57 = Utf8               collect\n+   #58 = Utf8               (Ljava/util/stream/Collector;)Ljava/lang/Object;\n+   #59 = Class              #60           // java/util/List\n+   #60 = Utf8               java/util/List\n+   #61 = Class              #62           // dev/langchain4j/data/segment/TextSegment\n+   #62 = Utf8               dev/langchain4j/data/segment/TextSegment\n+   #63 = Methodref          #64.#65       // dev/langchain4j/data/document/Metadata.copy:()Ldev/langchain4j/data/document/Metadata;\n+   #64 = Class              #66           // dev/langchain4j/data/document/Metadata\n+   #65 = NameAndType        #67:#12       // copy:()Ldev/langchain4j/data/document/Metadata;\n+   #66 = Utf8               dev/langchain4j/data/document/Metadata\n+   #67 = Utf8               copy\n+   #68 = Methodref          #61.#69       // dev/langchain4j/data/segment/TextSegment.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+   #69 = NameAndType        #5:#70        // \"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+   #70 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+   #71 = Methodref          #20.#72       // java/lang/String.isEmpty:()Z\n+   #72 = NameAndType        #73:#74       // isEmpty:()Z\n+   #73 = Utf8               isEmpty\n+   #74 = Utf8               ()Z\n+   #75 = Class              #76           // dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter\n+   #76 = Utf8               dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter\n+   #77 = Class              #78           // dev/langchain4j/data/document/DocumentSplitter\n+   #78 = Utf8               dev/langchain4j/data/document/DocumentSplitter\n+   #79 = Utf8               Code\n+   #80 = Utf8               LineNumberTable\n+   #81 = Utf8               LocalVariableTable\n+   #82 = Utf8               this\n+   #83 = Utf8               Ldev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter;\n+   #84 = Utf8               (Ldev/langchain4j/data/document/Document;)Ljava/util/List;\n+   #85 = Utf8               document\n+   #86 = Utf8               Ldev/langchain4j/data/document/Document;\n+   #87 = Utf8               Ldev/langchain4j/data/document/Metadata;\n+   #88 = Utf8               Signature\n+   #89 = Utf8               (Ldev/langchain4j/data/document/Document;)Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;\n+   #90 = Utf8               lambda$split$1\n+   #91 = Utf8               (Ldev/langchain4j/data/document/Metadata;Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+   #92 = Utf8               s\n+   #93 = Utf8               Ljava/lang/String;\n+   #94 = Utf8               lambda$split$0\n+   #95 = Utf8               (Ljava/lang/String;)Z\n+   #96 = Utf8               StackMapTable\n+   #97 = Utf8               SourceFile\n+   #98 = Utf8               DocumentSplitterTest.java\n+   #99 = Utf8               BootstrapMethods\n+  #100 = MethodHandle       6:#101        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #101 = Methodref          #102.#103     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #102 = Class              #104          // java/lang/invoke/LambdaMetafactory\n+  #103 = NameAndType        #105:#106     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #104 = Utf8               java/lang/invoke/LambdaMetafactory\n+  #105 = Utf8               metafactory\n+  #106 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #107 = MethodType         #108          //  (Ljava/lang/Object;)Z\n+  #108 = Utf8               (Ljava/lang/Object;)Z\n+  #109 = MethodHandle       6:#110        // REF_invokeStatic dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter.lambda$split$0:(Ljava/lang/String;)Z\n+  #110 = Methodref          #75.#111      // dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter.lambda$split$0:(Ljava/lang/String;)Z\n+  #111 = NameAndType        #94:#95       // lambda$split$0:(Ljava/lang/String;)Z\n+  #112 = MethodType         #95           //  (Ljava/lang/String;)Z\n+  #113 = MethodType         #114          //  (Ljava/lang/Object;)Ljava/lang/Object;\n+  #114 = Utf8               (Ljava/lang/Object;)Ljava/lang/Object;\n+  #115 = MethodHandle       6:#116        // REF_invokeStatic dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter.lambda$split$1:(Ldev/langchain4j/data/document/Metadata;Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #116 = Methodref          #75.#117      // dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter.lambda$split$1:(Ldev/langchain4j/data/document/Metadata;Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #117 = NameAndType        #90:#91       // lambda$split$1:(Ldev/langchain4j/data/document/Metadata;Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #118 = MethodType         #119          //  (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #119 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #120 = Utf8               InnerClasses\n+  #121 = Class              #122          // dev/langchain4j/data/document/DocumentSplitterTest\n+  #122 = Utf8               dev/langchain4j/data/document/DocumentSplitterTest\n+  #123 = Utf8               WhitespaceSplitter\n+  #124 = Class              #125          // java/lang/invoke/MethodHandles$Lookup\n+  #125 = Utf8               java/lang/invoke/MethodHandles$Lookup\n+  #126 = Class              #127          // java/lang/invoke/MethodHandles\n+  #127 = Utf8               java/lang/invoke/MethodHandles\n+  #128 = Utf8               Lookup\n {\n   public dev.langchain4j.data.document.DocumentSplitterTest$WhitespaceSplitter();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -153,70 +153,70 @@\n \n   public java.util.List<dev.langchain4j.data.segment.TextSegment> split(dev.langchain4j.data.document.Document);\n     descriptor: (Ldev/langchain4j/data/document/Document;)Ljava/util/List;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=3, args_size=2\n          0: aload_1\n-         1: invokevirtual #2                  // Method dev/langchain4j/data/document/Document.metadata:()Ldev/langchain4j/data/document/Metadata;\n+         1: invokevirtual #7                  // Method dev/langchain4j/data/document/Document.metadata:()Ldev/langchain4j/data/document/Metadata;\n          4: astore_2\n          5: aload_1\n-         6: invokevirtual #3                  // Method dev/langchain4j/data/document/Document.text:()Ljava/lang/String;\n-         9: ldc           #4                  // String \\\\s+\n-        11: invokevirtual #5                  // Method java/lang/String.split:(Ljava/lang/String;)[Ljava/lang/String;\n-        14: invokestatic  #6                  // Method java/util/Arrays.stream:([Ljava/lang/Object;)Ljava/util/stream/Stream;\n-        17: invokedynamic #7,  0              // InvokeDynamic #0:test:()Ljava/util/function/Predicate;\n-        22: invokeinterface #8,  2            // InterfaceMethod java/util/stream/Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;\n+         6: invokevirtual #13                 // Method dev/langchain4j/data/document/Document.text:()Ljava/lang/String;\n+         9: ldc           #17                 // String \\\\s+\n+        11: invokevirtual #19                 // Method java/lang/String.split:(Ljava/lang/String;)[Ljava/lang/String;\n+        14: invokestatic  #25                 // Method java/util/Arrays.stream:([Ljava/lang/Object;)Ljava/util/stream/Stream;\n+        17: invokedynamic #31,  0             // InvokeDynamic #0:test:()Ljava/util/function/Predicate;\n+        22: invokeinterface #35,  2           // InterfaceMethod java/util/stream/Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;\n         27: aload_2\n-        28: invokedynamic #9,  0              // InvokeDynamic #1:apply:(Ldev/langchain4j/data/document/Metadata;)Ljava/util/function/Function;\n-        33: invokeinterface #10,  2           // InterfaceMethod java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n-        38: invokestatic  #11                 // Method java/util/stream/Collectors.toList:()Ljava/util/stream/Collector;\n-        41: invokeinterface #12,  2           // InterfaceMethod java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n-        46: checkcast     #13                 // class java/util/List\n+        28: invokedynamic #41,  0             // InvokeDynamic #1:apply:(Ldev/langchain4j/data/document/Metadata;)Ljava/util/function/Function;\n+        33: invokeinterface #45,  2           // InterfaceMethod java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n+        38: invokestatic  #49                 // Method java/util/stream/Collectors.toList:()Ljava/util/stream/Collector;\n+        41: invokeinterface #55,  2           // InterfaceMethod java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n+        46: checkcast     #59                 // class java/util/List\n         49: areturn\n       LineNumberTable:\n         line 17: 0\n         line 18: 5\n         line 19: 6\n         line 20: 33\n         line 21: 38\n         line 18: 49\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      50     0  this   Ldev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter;\n             0      50     1 document   Ldev/langchain4j/data/document/Document;\n             5      45     2 metadata   Ldev/langchain4j/data/document/Metadata;\n-    Signature: #37                          // (Ldev/langchain4j/data/document/Document;)Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;\n+    Signature: #89                          // (Ldev/langchain4j/data/document/Document;)Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;\n \n   private static dev.langchain4j.data.segment.TextSegment lambda$split$1(dev.langchain4j.data.document.Metadata, java.lang.String);\n     descriptor: (Ldev/langchain4j/data/document/Metadata;Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=4, locals=2, args_size=2\n-         0: new           #14                 // class dev/langchain4j/data/segment/TextSegment\n+         0: new           #61                 // class dev/langchain4j/data/segment/TextSegment\n          3: dup\n          4: aload_1\n          5: aload_0\n-         6: invokevirtual #15                 // Method dev/langchain4j/data/document/Metadata.copy:()Ldev/langchain4j/data/document/Metadata;\n-         9: invokespecial #16                 // Method dev/langchain4j/data/segment/TextSegment.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+         6: invokevirtual #63                 // Method dev/langchain4j/data/document/Metadata.copy:()Ldev/langchain4j/data/document/Metadata;\n+         9: invokespecial #68                 // Method dev/langchain4j/data/segment/TextSegment.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n         12: areturn\n       LineNumberTable:\n         line 20: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      13     0 metadata   Ldev/langchain4j/data/document/Metadata;\n             0      13     1     s   Ljava/lang/String;\n \n   private static boolean lambda$split$0(java.lang.String);\n     descriptor: (Ljava/lang/String;)Z\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n-         1: invokevirtual #17                 // Method java/lang/String.isEmpty:()Z\n+         1: invokevirtual #71                 // Method java/lang/String.isEmpty:()Z\n          4: ifne          11\n          7: iconst_1\n          8: goto          12\n         11: iconst_0\n         12: ireturn\n       LineNumberTable:\n         line 19: 0\n@@ -225,21 +225,21 @@\n             0      13     0     s   Ljava/lang/String;\n       StackMapTable: number_of_entries = 2\n         frame_type = 11 /* same */\n         frame_type = 64 /* same_locals_1_stack_item */\n           stack = [ int ]\n }\n SourceFile: \"DocumentSplitterTest.java\"\n-InnerClasses:\n-  public static final #27= #18 of #78;    // WhitespaceSplitter=class dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter of class dev/langchain4j/data/document/DocumentSplitterTest\n-  public static final #124= #123 of #126; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n BootstrapMethods:\n-  0: #57 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  0: #100 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #58 (Ljava/lang/Object;)Z\n-      #59 REF_invokeStatic dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter.lambda$split$0:(Ljava/lang/String;)Z\n-      #60 (Ljava/lang/String;)Z\n-  1: #57 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #107 (Ljava/lang/Object;)Z\n+      #109 REF_invokeStatic dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter.lambda$split$0:(Ljava/lang/String;)Z\n+      #112 (Ljava/lang/String;)Z\n+  1: #100 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #64 (Ljava/lang/Object;)Ljava/lang/Object;\n-      #65 REF_invokeStatic dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter.lambda$split$1:(Ldev/langchain4j/data/document/Metadata;Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-      #66 (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+      #113 (Ljava/lang/Object;)Ljava/lang/Object;\n+      #115 REF_invokeStatic dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter.lambda$split$1:(Ldev/langchain4j/data/document/Metadata;Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+      #118 (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+InnerClasses:\n+  public static final #123= #75 of #121;  // WhitespaceSplitter=class dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter of class dev/langchain4j/data/document/DocumentSplitterTest\n+  public static final #128= #124 of #126; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n"}]}, {"source1": "dev/langchain4j/data/document/DocumentSplitterTest.class", "source2": "dev/langchain4j/data/document/DocumentSplitterTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,102 +1,102 @@\n-  SHA-256 checksum a78875223e3dc24b3d754fa91d1e9523d63ab1df0403b49e59f2a1ecab3dbcfa\n+  SHA-256 checksum a998281794477049dfde356fa0995ab8634ed3e500d98e6a8b9f5043c41217a6\n   Compiled from \"DocumentSplitterTest.java\"\n class dev.langchain4j.data.document.DocumentSplitterTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #22                         // dev/langchain4j/data/document/DocumentSplitterTest\n-  super_class: #23                        // java/lang/Object\n+  this_class: #45                         // dev/langchain4j/data/document/DocumentSplitterTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 2\n Constant pool:\n-   #1 = Methodref          #23.#45        // java/lang/Object.\"<init>\":()V\n-   #2 = Class              #46            // java/util/ArrayList\n-   #3 = Methodref          #2.#45         // java/util/ArrayList.\"<init>\":()V\n-   #4 = String             #47            // abc def\n-   #5 = Methodref          #48.#49        // dev/langchain4j/data/document/Document.document:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n-   #6 = InterfaceMethodref #50.#51        // java/util/List.add:(Ljava/lang/Object;)Z\n-   #7 = String             #52            // foo\n-   #8 = String             #53            // bar\n-   #9 = Methodref          #17.#54        // dev/langchain4j/data/document/Metadata.metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-  #10 = Methodref          #48.#55        // dev/langchain4j/data/document/Document.document:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n-  #11 = Class              #56            // dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter\n-  #12 = Methodref          #11.#45        // dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter.\"<init>\":()V\n-  #13 = Methodref          #11.#57        // dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter.splitAll:(Ljava/util/List;)Ljava/util/List;\n-  #14 = Methodref          #22.#58        // dev/langchain4j/data/document/DocumentSplitterTest.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #15 = Class              #59            // dev/langchain4j/data/segment/TextSegment\n-  #16 = String             #60            // abc\n-  #17 = Class              #61            // dev/langchain4j/data/document/Metadata\n-  #18 = Methodref          #17.#45        // dev/langchain4j/data/document/Metadata.\"<init>\":()V\n-  #19 = Methodref          #15.#62        // dev/langchain4j/data/segment/TextSegment.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n-  #20 = String             #63            // def\n-  #21 = Methodref          #64.#65        // org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #22 = Class              #66            // dev/langchain4j/data/document/DocumentSplitterTest\n-  #23 = Class              #67            // java/lang/Object\n-  #24 = Class              #68            // org/assertj/core/api/WithAssertions\n-  #25 = Utf8               WhitespaceSplitter\n-  #26 = Utf8               InnerClasses\n-  #27 = Utf8               <init>\n-  #28 = Utf8               ()V\n-  #29 = Utf8               Code\n-  #30 = Utf8               LineNumberTable\n-  #31 = Utf8               LocalVariableTable\n-  #32 = Utf8               this\n-  #33 = Utf8               Ldev/langchain4j/data/document/DocumentSplitterTest;\n-  #34 = Utf8               test_splitAll\n-  #35 = Utf8               docs\n-  #36 = Utf8               Ljava/util/List;\n-  #37 = Utf8               splitter\n-  #38 = Utf8               Ldev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter;\n-  #39 = Utf8               LocalVariableTypeTable\n-  #40 = Utf8               Ljava/util/List<Ldev/langchain4j/data/document/Document;>;\n-  #41 = Utf8               RuntimeVisibleAnnotations\n-  #42 = Utf8               Lorg/junit/jupiter/api/Test;\n-  #43 = Utf8               SourceFile\n-  #44 = Utf8               DocumentSplitterTest.java\n-  #45 = NameAndType        #27:#28        // \"<init>\":()V\n-  #46 = Utf8               java/util/ArrayList\n-  #47 = Utf8               abc def\n-  #48 = Class              #69            // dev/langchain4j/data/document/Document\n-  #49 = NameAndType        #70:#71        // document:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n-  #50 = Class              #72            // java/util/List\n-  #51 = NameAndType        #73:#74        // add:(Ljava/lang/Object;)Z\n-  #52 = Utf8               foo\n-  #53 = Utf8               bar\n-  #54 = NameAndType        #75:#76        // metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-  #55 = NameAndType        #70:#77        // document:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n-  #56 = Utf8               dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter\n-  #57 = NameAndType        #78:#79        // splitAll:(Ljava/util/List;)Ljava/util/List;\n-  #58 = NameAndType        #80:#81        // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #59 = Utf8               dev/langchain4j/data/segment/TextSegment\n-  #60 = Utf8               abc\n-  #61 = Utf8               dev/langchain4j/data/document/Metadata\n-  #62 = NameAndType        #27:#82        // \"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n-  #63 = Utf8               def\n-  #64 = Class              #83            // org/assertj/core/api/ListAssert\n-  #65 = NameAndType        #84:#85        // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #66 = Utf8               dev/langchain4j/data/document/DocumentSplitterTest\n-  #67 = Utf8               java/lang/Object\n-  #68 = Utf8               org/assertj/core/api/WithAssertions\n-  #69 = Utf8               dev/langchain4j/data/document/Document\n-  #70 = Utf8               document\n-  #71 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n-  #72 = Utf8               java/util/List\n-  #73 = Utf8               add\n-  #74 = Utf8               (Ljava/lang/Object;)Z\n-  #75 = Utf8               metadata\n-  #76 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-  #77 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n-  #78 = Utf8               splitAll\n-  #79 = Utf8               (Ljava/util/List;)Ljava/util/List;\n-  #80 = Utf8               assertThat\n-  #81 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #82 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n-  #83 = Utf8               org/assertj/core/api/ListAssert\n-  #84 = Utf8               containsExactly\n-  #85 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Class              #8             // java/util/ArrayList\n+   #8 = Utf8               java/util/ArrayList\n+   #9 = Methodref          #7.#3          // java/util/ArrayList.\"<init>\":()V\n+  #10 = String             #11            // abc def\n+  #11 = Utf8               abc def\n+  #12 = Methodref          #13.#14        // dev/langchain4j/data/document/Document.document:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+  #13 = Class              #15            // dev/langchain4j/data/document/Document\n+  #14 = NameAndType        #16:#17        // document:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+  #15 = Utf8               dev/langchain4j/data/document/Document\n+  #16 = Utf8               document\n+  #17 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+  #18 = InterfaceMethodref #19.#20        // java/util/List.add:(Ljava/lang/Object;)Z\n+  #19 = Class              #21            // java/util/List\n+  #20 = NameAndType        #22:#23        // add:(Ljava/lang/Object;)Z\n+  #21 = Utf8               java/util/List\n+  #22 = Utf8               add\n+  #23 = Utf8               (Ljava/lang/Object;)Z\n+  #24 = String             #25            // foo\n+  #25 = Utf8               foo\n+  #26 = String             #27            // bar\n+  #27 = Utf8               bar\n+  #28 = Methodref          #29.#30        // dev/langchain4j/data/document/Metadata.metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+  #29 = Class              #31            // dev/langchain4j/data/document/Metadata\n+  #30 = NameAndType        #32:#33        // metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+  #31 = Utf8               dev/langchain4j/data/document/Metadata\n+  #32 = Utf8               metadata\n+  #33 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+  #34 = Methodref          #13.#35        // dev/langchain4j/data/document/Document.document:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n+  #35 = NameAndType        #16:#36        // document:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n+  #36 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n+  #37 = Class              #38            // dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter\n+  #38 = Utf8               dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter\n+  #39 = Methodref          #37.#3         // dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter.\"<init>\":()V\n+  #40 = Methodref          #37.#41        // dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter.splitAll:(Ljava/util/List;)Ljava/util/List;\n+  #41 = NameAndType        #42:#43        // splitAll:(Ljava/util/List;)Ljava/util/List;\n+  #42 = Utf8               splitAll\n+  #43 = Utf8               (Ljava/util/List;)Ljava/util/List;\n+  #44 = Methodref          #45.#46        // dev/langchain4j/data/document/DocumentSplitterTest.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #45 = Class              #47            // dev/langchain4j/data/document/DocumentSplitterTest\n+  #46 = NameAndType        #48:#49        // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #47 = Utf8               dev/langchain4j/data/document/DocumentSplitterTest\n+  #48 = Utf8               assertThat\n+  #49 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #50 = Class              #51            // dev/langchain4j/data/segment/TextSegment\n+  #51 = Utf8               dev/langchain4j/data/segment/TextSegment\n+  #52 = String             #53            // abc\n+  #53 = Utf8               abc\n+  #54 = Methodref          #29.#3         // dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+  #55 = Methodref          #50.#56        // dev/langchain4j/data/segment/TextSegment.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+  #56 = NameAndType        #5:#57         // \"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+  #57 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+  #58 = String             #59            // def\n+  #59 = Utf8               def\n+  #60 = Methodref          #61.#62        // org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #61 = Class              #63            // org/assertj/core/api/ListAssert\n+  #62 = NameAndType        #64:#65        // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #63 = Utf8               org/assertj/core/api/ListAssert\n+  #64 = Utf8               containsExactly\n+  #65 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #66 = Class              #67            // org/assertj/core/api/WithAssertions\n+  #67 = Utf8               org/assertj/core/api/WithAssertions\n+  #68 = Utf8               Code\n+  #69 = Utf8               LineNumberTable\n+  #70 = Utf8               LocalVariableTable\n+  #71 = Utf8               this\n+  #72 = Utf8               Ldev/langchain4j/data/document/DocumentSplitterTest;\n+  #73 = Utf8               test_splitAll\n+  #74 = Utf8               docs\n+  #75 = Utf8               Ljava/util/List;\n+  #76 = Utf8               splitter\n+  #77 = Utf8               Ldev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter;\n+  #78 = Utf8               LocalVariableTypeTable\n+  #79 = Utf8               Ljava/util/List<Ldev/langchain4j/data/document/Document;>;\n+  #80 = Utf8               RuntimeVisibleAnnotations\n+  #81 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #82 = Utf8               SourceFile\n+  #83 = Utf8               DocumentSplitterTest.java\n+  #84 = Utf8               InnerClasses\n+  #85 = Utf8               WhitespaceSplitter\n {\n   dev.langchain4j.data.document.DocumentSplitterTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -109,83 +109,83 @@\n             0       5     0  this   Ldev/langchain4j/data/document/DocumentSplitterTest;\n \n   public void test_splitAll();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=9, locals=3, args_size=1\n-         0: new           #2                  // class java/util/ArrayList\n+         0: new           #7                  // class java/util/ArrayList\n          3: dup\n-         4: invokespecial #3                  // Method java/util/ArrayList.\"<init>\":()V\n+         4: invokespecial #9                  // Method java/util/ArrayList.\"<init>\":()V\n          7: astore_1\n          8: aload_1\n-         9: ldc           #4                  // String abc def\n-        11: invokestatic  #5                  // Method dev/langchain4j/data/document/Document.document:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n-        14: invokeinterface #6,  2            // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n+         9: ldc           #10                 // String abc def\n+        11: invokestatic  #12                 // Method dev/langchain4j/data/document/Document.document:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+        14: invokeinterface #18,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n         19: pop\n         20: aload_1\n-        21: ldc           #4                  // String abc def\n-        23: ldc           #7                  // String foo\n-        25: ldc           #8                  // String bar\n-        27: invokestatic  #9                  // Method dev/langchain4j/data/document/Metadata.metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-        30: invokestatic  #10                 // Method dev/langchain4j/data/document/Document.document:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n-        33: invokeinterface #6,  2            // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n+        21: ldc           #10                 // String abc def\n+        23: ldc           #24                 // String foo\n+        25: ldc           #26                 // String bar\n+        27: invokestatic  #28                 // Method dev/langchain4j/data/document/Metadata.metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        30: invokestatic  #34                 // Method dev/langchain4j/data/document/Document.document:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n+        33: invokeinterface #18,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n         38: pop\n-        39: new           #11                 // class dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter\n+        39: new           #37                 // class dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter\n         42: dup\n-        43: invokespecial #12                 // Method dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter.\"<init>\":()V\n+        43: invokespecial #39                 // Method dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter.\"<init>\":()V\n         46: astore_2\n         47: aload_0\n         48: aload_2\n         49: aload_1\n-        50: invokevirtual #13                 // Method dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter.splitAll:(Ljava/util/List;)Ljava/util/List;\n-        53: invokevirtual #14                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+        50: invokevirtual #40                 // Method dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter.splitAll:(Ljava/util/List;)Ljava/util/List;\n+        53: invokevirtual #44                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n         56: iconst_4\n-        57: anewarray     #15                 // class dev/langchain4j/data/segment/TextSegment\n+        57: anewarray     #50                 // class dev/langchain4j/data/segment/TextSegment\n         60: dup\n         61: iconst_0\n-        62: new           #15                 // class dev/langchain4j/data/segment/TextSegment\n+        62: new           #50                 // class dev/langchain4j/data/segment/TextSegment\n         65: dup\n-        66: ldc           #16                 // String abc\n-        68: new           #17                 // class dev/langchain4j/data/document/Metadata\n+        66: ldc           #52                 // String abc\n+        68: new           #29                 // class dev/langchain4j/data/document/Metadata\n         71: dup\n-        72: invokespecial #18                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n-        75: invokespecial #19                 // Method dev/langchain4j/data/segment/TextSegment.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+        72: invokespecial #54                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+        75: invokespecial #55                 // Method dev/langchain4j/data/segment/TextSegment.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n         78: aastore\n         79: dup\n         80: iconst_1\n-        81: new           #15                 // class dev/langchain4j/data/segment/TextSegment\n+        81: new           #50                 // class dev/langchain4j/data/segment/TextSegment\n         84: dup\n-        85: ldc           #20                 // String def\n-        87: new           #17                 // class dev/langchain4j/data/document/Metadata\n+        85: ldc           #58                 // String def\n+        87: new           #29                 // class dev/langchain4j/data/document/Metadata\n         90: dup\n-        91: invokespecial #18                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n-        94: invokespecial #19                 // Method dev/langchain4j/data/segment/TextSegment.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+        91: invokespecial #54                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+        94: invokespecial #55                 // Method dev/langchain4j/data/segment/TextSegment.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n         97: aastore\n         98: dup\n         99: iconst_2\n-       100: new           #15                 // class dev/langchain4j/data/segment/TextSegment\n+       100: new           #50                 // class dev/langchain4j/data/segment/TextSegment\n        103: dup\n-       104: ldc           #16                 // String abc\n-       106: ldc           #7                  // String foo\n-       108: ldc           #8                  // String bar\n-       110: invokestatic  #9                  // Method dev/langchain4j/data/document/Metadata.metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-       113: invokespecial #19                 // Method dev/langchain4j/data/segment/TextSegment.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+       104: ldc           #52                 // String abc\n+       106: ldc           #24                 // String foo\n+       108: ldc           #26                 // String bar\n+       110: invokestatic  #28                 // Method dev/langchain4j/data/document/Metadata.metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+       113: invokespecial #55                 // Method dev/langchain4j/data/segment/TextSegment.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n        116: aastore\n        117: dup\n        118: iconst_3\n-       119: new           #15                 // class dev/langchain4j/data/segment/TextSegment\n+       119: new           #50                 // class dev/langchain4j/data/segment/TextSegment\n        122: dup\n-       123: ldc           #20                 // String def\n-       125: ldc           #7                  // String foo\n-       127: ldc           #8                  // String bar\n-       129: invokestatic  #9                  // Method dev/langchain4j/data/document/Metadata.metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-       132: invokespecial #19                 // Method dev/langchain4j/data/segment/TextSegment.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+       123: ldc           #58                 // String def\n+       125: ldc           #24                 // String foo\n+       127: ldc           #26                 // String bar\n+       129: invokestatic  #28                 // Method dev/langchain4j/data/document/Metadata.metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+       132: invokespecial #55                 // Method dev/langchain4j/data/segment/TextSegment.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n        135: aastore\n-       136: invokevirtual #21                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+       136: invokevirtual #60                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n        139: pop\n        140: return\n       LineNumberTable:\n         line 27: 0\n         line 28: 8\n         line 29: 20\n         line 31: 39\n@@ -199,13 +199,13 @@\n             0     141     0  this   Ldev/langchain4j/data/document/DocumentSplitterTest;\n             8     133     1  docs   Ljava/util/List;\n            47      94     2 splitter   Ldev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             8     133     1  docs   Ljava/util/List<Ldev/langchain4j/data/document/Document;>;\n     RuntimeVisibleAnnotations:\n-      0: #42()\n+      0: #81()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"DocumentSplitterTest.java\"\n InnerClasses:\n-  public static final #25= #11 of #22;    // WhitespaceSplitter=class dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter of class dev/langchain4j/data/document/DocumentSplitterTest\n+  public static final #85= #37 of #45;    // WhitespaceSplitter=class dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter of class dev/langchain4j/data/document/DocumentSplitterTest\n"}]}, {"source1": "dev/langchain4j/data/document/DocumentTest.class", "source2": "dev/langchain4j/data/document/DocumentTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,172 +1,172 @@\n-  SHA-256 checksum 3c45d81d70a0bce0a9648d5a4b9b64089ad2f4d26f85bb7b9d8ee312641fd0aa\n+  SHA-256 checksum a107045d1e8c8284379aa03f21cfd53961fd23fbe7f6820e05351d50dd087d21\n   Compiled from \"DocumentTest.java\"\n class dev.langchain4j.data.document.DocumentTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #43                         // dev/langchain4j/data/document/DocumentTest\n-  super_class: #44                        // java/lang/Object\n+  this_class: #28                         // dev/langchain4j/data/document/DocumentTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 5, attributes: 1\n Constant pool:\n-    #1 = Methodref          #44.#71       // java/lang/Object.\"<init>\":()V\n-    #2 = String             #72           // foo bar\n-    #3 = Methodref          #38.#73       // dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n-    #4 = String             #74           // foo\n-    #5 = String             #75           // bar\n-    #6 = Methodref          #31.#76       // dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-    #7 = Methodref          #38.#77       // dev/langchain4j/data/document/Document.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n-    #8 = Methodref          #43.#78       // dev/langchain4j/data/document/DocumentTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-    #9 = Methodref          #10.#79       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #10 = Class              #80           // org/assertj/core/api/ObjectAssert\n-   #11 = Methodref          #10.#81       // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #12 = Methodref          #10.#82       // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #13 = Methodref          #10.#83       // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #14 = Methodref          #38.#84       // dev/langchain4j/data/document/Document.text:()Ljava/lang/String;\n-   #15 = Methodref          #43.#85       // dev/langchain4j/data/document/DocumentTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #16 = Methodref          #86.#87       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #17 = Methodref          #38.#88       // dev/langchain4j/data/document/Document.metadata:()Ldev/langchain4j/data/document/Metadata;\n-   #18 = Methodref          #31.#89       // dev/langchain4j/data/document/Metadata.asMap:()Ljava/util/Map;\n-   #19 = InterfaceMethodref #90.#91       // java/util/Map.isEmpty:()Z\n-   #20 = Methodref          #43.#92       // dev/langchain4j/data/document/DocumentTest.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-   #21 = Methodref          #93.#94       // org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n-   #22 = String             #95           // Document { text = \\\"foo bar\\\" metadata = {} }\n-   #23 = Methodref          #10.#96       // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-   #24 = Class              #97           // java/util/HashMap\n-   #25 = Methodref          #24.#71       // java/util/HashMap.\"<init>\":()V\n-   #26 = String             #98           // index\n-   #27 = String             #99           // 0\n-   #28 = InterfaceMethodref #90.#100      // java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-   #29 = Methodref          #38.#101      // dev/langchain4j/data/document/Document.toTextSegment:()Ldev/langchain4j/data/segment/TextSegment;\n-   #30 = Class              #102          // dev/langchain4j/data/segment/TextSegment\n-   #31 = Class              #103          // dev/langchain4j/data/document/Metadata\n-   #32 = Methodref          #31.#104      // dev/langchain4j/data/document/Metadata.\"<init>\":(Ljava/util/Map;)V\n-   #33 = Methodref          #30.#105      // dev/langchain4j/data/segment/TextSegment.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n-   #34 = Methodref          #43.#106      // dev/langchain4j/data/document/DocumentTest.assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n-   #35 = Methodref          #107.#108     // org/assertj/core/api/MapAssert.hasSize:(I)Lorg/assertj/core/api/AbstractMapAssert;\n-   #36 = Methodref          #38.#109      // dev/langchain4j/data/document/Document.metadata:(Ljava/lang/String;)Ljava/lang/String;\n-   #37 = String             #110          // Document { text = \\\"foo bar\\\" metadata = {foo=bar} }\n-   #38 = Class              #111          // dev/langchain4j/data/document/Document\n-   #39 = Methodref          #31.#71       // dev/langchain4j/data/document/Metadata.\"<init>\":()V\n-   #40 = Methodref          #38.#105      // dev/langchain4j/data/document/Document.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n-   #41 = Methodref          #38.#112      // dev/langchain4j/data/document/Document.document:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n-   #42 = Methodref          #38.#113      // dev/langchain4j/data/document/Document.document:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n-   #43 = Class              #114          // dev/langchain4j/data/document/DocumentTest\n-   #44 = Class              #115          // java/lang/Object\n-   #45 = Class              #116          // org/assertj/core/api/WithAssertions\n-   #46 = Utf8               <init>\n-   #47 = Utf8               ()V\n-   #48 = Utf8               Code\n-   #49 = Utf8               LineNumberTable\n-   #50 = Utf8               LocalVariableTable\n-   #51 = Utf8               this\n-   #52 = Utf8               Ldev/langchain4j/data/document/DocumentTest;\n-   #53 = Utf8               test_equals_hashCode\n-   #54 = Utf8               document1\n-   #55 = Utf8               Ldev/langchain4j/data/document/Document;\n-   #56 = Utf8               document2\n-   #57 = Utf8               document3\n-   #58 = Utf8               document4\n-   #59 = Utf8               RuntimeVisibleAnnotations\n-   #60 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #61 = Utf8               test_noMetadata\n-   #62 = Utf8               document\n-   #63 = Utf8               expectedMetadata\n-   #64 = Utf8               Ljava/util/Map;\n-   #65 = Utf8               LocalVariableTypeTable\n-   #66 = Utf8               Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;\n-   #67 = Utf8               test_withMetadata\n-   #68 = Utf8               test_from\n-   #69 = Utf8               SourceFile\n-   #70 = Utf8               DocumentTest.java\n-   #71 = NameAndType        #46:#47       // \"<init>\":()V\n-   #72 = Utf8               foo bar\n-   #73 = NameAndType        #117:#118     // from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n-   #74 = Utf8               foo\n-   #75 = Utf8               bar\n-   #76 = NameAndType        #117:#119     // from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-   #77 = NameAndType        #117:#120     // from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n-   #78 = NameAndType        #121:#122     // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #79 = NameAndType        #123:#124     // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #80 = Utf8               org/assertj/core/api/ObjectAssert\n-   #81 = NameAndType        #125:#124     // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #82 = NameAndType        #126:#124     // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #83 = NameAndType        #127:#124     // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #84 = NameAndType        #128:#129     // text:()Ljava/lang/String;\n-   #85 = NameAndType        #121:#130     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #86 = Class              #131          // org/assertj/core/api/AbstractStringAssert\n-   #87 = NameAndType        #123:#130     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #88 = NameAndType        #132:#133     // metadata:()Ldev/langchain4j/data/document/Metadata;\n-   #89 = NameAndType        #134:#135     // asMap:()Ljava/util/Map;\n-   #90 = Class              #136          // java/util/Map\n-   #91 = NameAndType        #137:#138     // isEmpty:()Z\n-   #92 = NameAndType        #121:#139     // assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-   #93 = Class              #140          // org/assertj/core/api/AbstractBooleanAssert\n-   #94 = NameAndType        #141:#142     // isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n-   #95 = Utf8               Document { text = \\\"foo bar\\\" metadata = {} }\n-   #96 = NameAndType        #143:#144     // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-   #97 = Utf8               java/util/HashMap\n-   #98 = Utf8               index\n-   #99 = Utf8               0\n-  #100 = NameAndType        #145:#146     // put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-  #101 = NameAndType        #147:#148     // toTextSegment:()Ldev/langchain4j/data/segment/TextSegment;\n-  #102 = Utf8               dev/langchain4j/data/segment/TextSegment\n-  #103 = Utf8               dev/langchain4j/data/document/Metadata\n-  #104 = NameAndType        #46:#149      // \"<init>\":(Ljava/util/Map;)V\n-  #105 = NameAndType        #46:#150      // \"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n-  #106 = NameAndType        #121:#151     // assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n-  #107 = Class              #152          // org/assertj/core/api/MapAssert\n-  #108 = NameAndType        #153:#154     // hasSize:(I)Lorg/assertj/core/api/AbstractMapAssert;\n-  #109 = NameAndType        #132:#155     // metadata:(Ljava/lang/String;)Ljava/lang/String;\n-  #110 = Utf8               Document { text = \\\"foo bar\\\" metadata = {foo=bar} }\n-  #111 = Utf8               dev/langchain4j/data/document/Document\n-  #112 = NameAndType        #62:#118      // document:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n-  #113 = NameAndType        #62:#120      // document:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n-  #114 = Utf8               dev/langchain4j/data/document/DocumentTest\n-  #115 = Utf8               java/lang/Object\n-  #116 = Utf8               org/assertj/core/api/WithAssertions\n-  #117 = Utf8               from\n-  #118 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n-  #119 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-  #120 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n-  #121 = Utf8               assertThat\n-  #122 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #123 = Utf8               isEqualTo\n-  #124 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #125 = Utf8               hasSameHashCodeAs\n-  #126 = Utf8               isNotEqualTo\n-  #127 = Utf8               doesNotHaveSameHashCodeAs\n-  #128 = Utf8               text\n-  #129 = Utf8               ()Ljava/lang/String;\n-  #130 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #131 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #132 = Utf8               metadata\n-  #133 = Utf8               ()Ldev/langchain4j/data/document/Metadata;\n-  #134 = Utf8               asMap\n-  #135 = Utf8               ()Ljava/util/Map;\n-  #136 = Utf8               java/util/Map\n-  #137 = Utf8               isEmpty\n-  #138 = Utf8               ()Z\n-  #139 = Utf8               (Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-  #140 = Utf8               org/assertj/core/api/AbstractBooleanAssert\n-  #141 = Utf8               isTrue\n-  #142 = Utf8               ()Lorg/assertj/core/api/AbstractBooleanAssert;\n-  #143 = Utf8               hasToString\n-  #144 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-  #145 = Utf8               put\n-  #146 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-  #147 = Utf8               toTextSegment\n-  #148 = Utf8               ()Ldev/langchain4j/data/segment/TextSegment;\n-  #149 = Utf8               (Ljava/util/Map;)V\n-  #150 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n-  #151 = Utf8               (Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n-  #152 = Utf8               org/assertj/core/api/MapAssert\n-  #153 = Utf8               hasSize\n-  #154 = Utf8               (I)Lorg/assertj/core/api/AbstractMapAssert;\n-  #155 = Utf8               (Ljava/lang/String;)Ljava/lang/String;\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = String             #8            // foo bar\n+    #8 = Utf8               foo bar\n+    #9 = Methodref          #10.#11       // dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+   #10 = Class              #12           // dev/langchain4j/data/document/Document\n+   #11 = NameAndType        #13:#14       // from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+   #12 = Utf8               dev/langchain4j/data/document/Document\n+   #13 = Utf8               from\n+   #14 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+   #15 = String             #16           // foo\n+   #16 = Utf8               foo\n+   #17 = String             #18           // bar\n+   #18 = Utf8               bar\n+   #19 = Methodref          #20.#21       // dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+   #20 = Class              #22           // dev/langchain4j/data/document/Metadata\n+   #21 = NameAndType        #13:#23       // from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+   #22 = Utf8               dev/langchain4j/data/document/Metadata\n+   #23 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+   #24 = Methodref          #10.#25       // dev/langchain4j/data/document/Document.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n+   #25 = NameAndType        #13:#26       // from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n+   #26 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n+   #27 = Methodref          #28.#29       // dev/langchain4j/data/document/DocumentTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #28 = Class              #30           // dev/langchain4j/data/document/DocumentTest\n+   #29 = NameAndType        #31:#32       // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #30 = Utf8               dev/langchain4j/data/document/DocumentTest\n+   #31 = Utf8               assertThat\n+   #32 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #33 = Methodref          #34.#35       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #34 = Class              #36           // org/assertj/core/api/ObjectAssert\n+   #35 = NameAndType        #37:#38       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #36 = Utf8               org/assertj/core/api/ObjectAssert\n+   #37 = Utf8               isEqualTo\n+   #38 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #39 = Methodref          #34.#40       // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #40 = NameAndType        #41:#38       // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #41 = Utf8               hasSameHashCodeAs\n+   #42 = Methodref          #34.#43       // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #43 = NameAndType        #44:#38       // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #44 = Utf8               isNotEqualTo\n+   #45 = Methodref          #34.#46       // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #46 = NameAndType        #47:#38       // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #47 = Utf8               doesNotHaveSameHashCodeAs\n+   #48 = Methodref          #10.#49       // dev/langchain4j/data/document/Document.text:()Ljava/lang/String;\n+   #49 = NameAndType        #50:#51       // text:()Ljava/lang/String;\n+   #50 = Utf8               text\n+   #51 = Utf8               ()Ljava/lang/String;\n+   #52 = Methodref          #28.#53       // dev/langchain4j/data/document/DocumentTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #53 = NameAndType        #31:#54       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #54 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #55 = Methodref          #56.#57       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #56 = Class              #58           // org/assertj/core/api/AbstractStringAssert\n+   #57 = NameAndType        #37:#54       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #58 = Utf8               org/assertj/core/api/AbstractStringAssert\n+   #59 = Methodref          #10.#60       // dev/langchain4j/data/document/Document.metadata:()Ldev/langchain4j/data/document/Metadata;\n+   #60 = NameAndType        #61:#62       // metadata:()Ldev/langchain4j/data/document/Metadata;\n+   #61 = Utf8               metadata\n+   #62 = Utf8               ()Ldev/langchain4j/data/document/Metadata;\n+   #63 = Methodref          #20.#64       // dev/langchain4j/data/document/Metadata.asMap:()Ljava/util/Map;\n+   #64 = NameAndType        #65:#66       // asMap:()Ljava/util/Map;\n+   #65 = Utf8               asMap\n+   #66 = Utf8               ()Ljava/util/Map;\n+   #67 = InterfaceMethodref #68.#69       // java/util/Map.isEmpty:()Z\n+   #68 = Class              #70           // java/util/Map\n+   #69 = NameAndType        #71:#72       // isEmpty:()Z\n+   #70 = Utf8               java/util/Map\n+   #71 = Utf8               isEmpty\n+   #72 = Utf8               ()Z\n+   #73 = Methodref          #28.#74       // dev/langchain4j/data/document/DocumentTest.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+   #74 = NameAndType        #31:#75       // assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+   #75 = Utf8               (Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+   #76 = Methodref          #77.#78       // org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+   #77 = Class              #79           // org/assertj/core/api/AbstractBooleanAssert\n+   #78 = NameAndType        #80:#81       // isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+   #79 = Utf8               org/assertj/core/api/AbstractBooleanAssert\n+   #80 = Utf8               isTrue\n+   #81 = Utf8               ()Lorg/assertj/core/api/AbstractBooleanAssert;\n+   #82 = String             #83           // Document { text = \\\"foo bar\\\" metadata = {} }\n+   #83 = Utf8               Document { text = \\\"foo bar\\\" metadata = {} }\n+   #84 = Methodref          #34.#85       // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #85 = NameAndType        #86:#87       // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #86 = Utf8               hasToString\n+   #87 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #88 = Class              #89           // java/util/HashMap\n+   #89 = Utf8               java/util/HashMap\n+   #90 = Methodref          #88.#3        // java/util/HashMap.\"<init>\":()V\n+   #91 = String             #92           // index\n+   #92 = Utf8               index\n+   #93 = String             #94           // 0\n+   #94 = Utf8               0\n+   #95 = InterfaceMethodref #68.#96       // java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+   #96 = NameAndType        #97:#98       // put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+   #97 = Utf8               put\n+   #98 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+   #99 = Methodref          #10.#100      // dev/langchain4j/data/document/Document.toTextSegment:()Ldev/langchain4j/data/segment/TextSegment;\n+  #100 = NameAndType        #101:#102     // toTextSegment:()Ldev/langchain4j/data/segment/TextSegment;\n+  #101 = Utf8               toTextSegment\n+  #102 = Utf8               ()Ldev/langchain4j/data/segment/TextSegment;\n+  #103 = Class              #104          // dev/langchain4j/data/segment/TextSegment\n+  #104 = Utf8               dev/langchain4j/data/segment/TextSegment\n+  #105 = Methodref          #20.#106      // dev/langchain4j/data/document/Metadata.\"<init>\":(Ljava/util/Map;)V\n+  #106 = NameAndType        #5:#107       // \"<init>\":(Ljava/util/Map;)V\n+  #107 = Utf8               (Ljava/util/Map;)V\n+  #108 = Methodref          #103.#109     // dev/langchain4j/data/segment/TextSegment.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+  #109 = NameAndType        #5:#110       // \"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+  #110 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+  #111 = Methodref          #28.#112      // dev/langchain4j/data/document/DocumentTest.assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n+  #112 = NameAndType        #31:#113      // assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n+  #113 = Utf8               (Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n+  #114 = Methodref          #115.#116     // org/assertj/core/api/MapAssert.hasSize:(I)Lorg/assertj/core/api/AbstractMapAssert;\n+  #115 = Class              #117          // org/assertj/core/api/MapAssert\n+  #116 = NameAndType        #118:#119     // hasSize:(I)Lorg/assertj/core/api/AbstractMapAssert;\n+  #117 = Utf8               org/assertj/core/api/MapAssert\n+  #118 = Utf8               hasSize\n+  #119 = Utf8               (I)Lorg/assertj/core/api/AbstractMapAssert;\n+  #120 = Methodref          #10.#121      // dev/langchain4j/data/document/Document.metadata:(Ljava/lang/String;)Ljava/lang/String;\n+  #121 = NameAndType        #61:#122      // metadata:(Ljava/lang/String;)Ljava/lang/String;\n+  #122 = Utf8               (Ljava/lang/String;)Ljava/lang/String;\n+  #123 = String             #124          // Document { text = \\\"foo bar\\\" metadata = {foo=bar} }\n+  #124 = Utf8               Document { text = \\\"foo bar\\\" metadata = {foo=bar} }\n+  #125 = Methodref          #20.#3        // dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+  #126 = Methodref          #10.#109      // dev/langchain4j/data/document/Document.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+  #127 = Methodref          #10.#128      // dev/langchain4j/data/document/Document.document:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+  #128 = NameAndType        #129:#14      // document:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+  #129 = Utf8               document\n+  #130 = Methodref          #10.#131      // dev/langchain4j/data/document/Document.document:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n+  #131 = NameAndType        #129:#26      // document:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n+  #132 = Class              #133          // org/assertj/core/api/WithAssertions\n+  #133 = Utf8               org/assertj/core/api/WithAssertions\n+  #134 = Utf8               Code\n+  #135 = Utf8               LineNumberTable\n+  #136 = Utf8               LocalVariableTable\n+  #137 = Utf8               this\n+  #138 = Utf8               Ldev/langchain4j/data/document/DocumentTest;\n+  #139 = Utf8               test_equals_hashCode\n+  #140 = Utf8               document1\n+  #141 = Utf8               Ldev/langchain4j/data/document/Document;\n+  #142 = Utf8               document2\n+  #143 = Utf8               document3\n+  #144 = Utf8               document4\n+  #145 = Utf8               RuntimeVisibleAnnotations\n+  #146 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #147 = Utf8               test_noMetadata\n+  #148 = Utf8               expectedMetadata\n+  #149 = Utf8               Ljava/util/Map;\n+  #150 = Utf8               LocalVariableTypeTable\n+  #151 = Utf8               Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;\n+  #152 = Utf8               test_withMetadata\n+  #153 = Utf8               test_from\n+  #154 = Utf8               SourceFile\n+  #155 = Utf8               DocumentTest.java\n {\n   dev.langchain4j.data.document.DocumentTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -179,58 +179,58 @@\n             0       5     0  this   Ldev/langchain4j/data/document/DocumentTest;\n \n   public void test_equals_hashCode();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=5, args_size=1\n-         0: ldc           #2                  // String foo bar\n-         2: invokestatic  #3                  // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+         0: ldc           #7                  // String foo bar\n+         2: invokestatic  #9                  // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n          5: astore_1\n-         6: ldc           #2                  // String foo bar\n-         8: invokestatic  #3                  // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+         6: ldc           #7                  // String foo bar\n+         8: invokestatic  #9                  // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n         11: astore_2\n-        12: ldc           #2                  // String foo bar\n-        14: ldc           #4                  // String foo\n-        16: ldc           #5                  // String bar\n-        18: invokestatic  #6                  // Method dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-        21: invokestatic  #7                  // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n+        12: ldc           #7                  // String foo bar\n+        14: ldc           #15                 // String foo\n+        16: ldc           #17                 // String bar\n+        18: invokestatic  #19                 // Method dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        21: invokestatic  #24                 // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n         24: astore_3\n-        25: ldc           #2                  // String foo bar\n-        27: ldc           #4                  // String foo\n-        29: ldc           #5                  // String bar\n-        31: invokestatic  #6                  // Method dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-        34: invokestatic  #7                  // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n+        25: ldc           #7                  // String foo bar\n+        27: ldc           #15                 // String foo\n+        29: ldc           #17                 // String bar\n+        31: invokestatic  #19                 // Method dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        34: invokestatic  #24                 // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n         37: astore        4\n         39: aload_0\n         40: aload_1\n-        41: invokevirtual #8                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        41: invokevirtual #27                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         44: aload_2\n-        45: invokevirtual #9                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        48: checkcast     #10                 // class org/assertj/core/api/ObjectAssert\n+        45: invokevirtual #33                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        48: checkcast     #34                 // class org/assertj/core/api/ObjectAssert\n         51: aload_2\n-        52: invokevirtual #11                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        52: invokevirtual #39                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         55: pop\n         56: aload_0\n         57: aload_1\n-        58: invokevirtual #8                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        58: invokevirtual #27                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         61: aload_3\n-        62: invokevirtual #12                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        65: checkcast     #10                 // class org/assertj/core/api/ObjectAssert\n+        62: invokevirtual #42                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        65: checkcast     #34                 // class org/assertj/core/api/ObjectAssert\n         68: aload_3\n-        69: invokevirtual #13                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        69: invokevirtual #45                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         72: pop\n         73: aload_0\n         74: aload_3\n-        75: invokevirtual #8                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        75: invokevirtual #27                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         78: aload         4\n-        80: invokevirtual #9                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        83: checkcast     #10                 // class org/assertj/core/api/ObjectAssert\n+        80: invokevirtual #33                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        83: checkcast     #34                 // class org/assertj/core/api/ObjectAssert\n         86: aload         4\n-        88: invokevirtual #11                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        88: invokevirtual #39                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         91: pop\n         92: return\n       LineNumberTable:\n         line 13: 0\n         line 14: 6\n         line 15: 12\n         line 16: 25\n@@ -248,68 +248,68 @@\n         Start  Length  Slot  Name   Signature\n             0      93     0  this   Ldev/langchain4j/data/document/DocumentTest;\n             6      87     1 document1   Ldev/langchain4j/data/document/Document;\n            12      81     2 document2   Ldev/langchain4j/data/document/Document;\n            25      68     3 document3   Ldev/langchain4j/data/document/Document;\n            39      54     4 document4   Ldev/langchain4j/data/document/Document;\n     RuntimeVisibleAnnotations:\n-      0: #60()\n+      0: #146()\n         org.junit.jupiter.api.Test\n \n   public void test_noMetadata();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=7, locals=3, args_size=1\n-         0: ldc           #2                  // String foo bar\n-         2: invokestatic  #3                  // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+         0: ldc           #7                  // String foo bar\n+         2: invokestatic  #9                  // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n          5: astore_1\n          6: aload_0\n          7: aload_1\n-         8: invokevirtual #14                 // Method dev/langchain4j/data/document/Document.text:()Ljava/lang/String;\n-        11: invokevirtual #15                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        14: ldc           #2                  // String foo bar\n-        16: invokevirtual #16                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+         8: invokevirtual #48                 // Method dev/langchain4j/data/document/Document.text:()Ljava/lang/String;\n+        11: invokevirtual #52                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        14: ldc           #7                  // String foo bar\n+        16: invokevirtual #55                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         19: pop\n         20: aload_0\n         21: aload_1\n-        22: invokevirtual #17                 // Method dev/langchain4j/data/document/Document.metadata:()Ldev/langchain4j/data/document/Metadata;\n-        25: invokevirtual #18                 // Method dev/langchain4j/data/document/Metadata.asMap:()Ljava/util/Map;\n-        28: invokeinterface #19,  1           // InterfaceMethod java/util/Map.isEmpty:()Z\n-        33: invokevirtual #20                 // Method assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-        36: invokevirtual #21                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+        22: invokevirtual #59                 // Method dev/langchain4j/data/document/Document.metadata:()Ldev/langchain4j/data/document/Metadata;\n+        25: invokevirtual #63                 // Method dev/langchain4j/data/document/Metadata.asMap:()Ljava/util/Map;\n+        28: invokeinterface #67,  1           // InterfaceMethod java/util/Map.isEmpty:()Z\n+        33: invokevirtual #73                 // Method assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+        36: invokevirtual #76                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n         39: pop\n         40: aload_0\n         41: aload_1\n-        42: invokevirtual #8                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        45: ldc           #22                 // String Document { text = \\\"foo bar\\\" metadata = {} }\n-        47: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+        42: invokevirtual #27                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        45: ldc           #82                 // String Document { text = \\\"foo bar\\\" metadata = {} }\n+        47: invokevirtual #84                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n         50: pop\n-        51: new           #24                 // class java/util/HashMap\n+        51: new           #88                 // class java/util/HashMap\n         54: dup\n-        55: invokespecial #25                 // Method java/util/HashMap.\"<init>\":()V\n+        55: invokespecial #90                 // Method java/util/HashMap.\"<init>\":()V\n         58: astore_2\n         59: aload_2\n-        60: ldc           #26                 // String index\n-        62: ldc           #27                 // String 0\n-        64: invokeinterface #28,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+        60: ldc           #91                 // String index\n+        62: ldc           #93                 // String 0\n+        64: invokeinterface #95,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n         69: pop\n         70: aload_0\n         71: aload_1\n-        72: invokevirtual #29                 // Method dev/langchain4j/data/document/Document.toTextSegment:()Ldev/langchain4j/data/segment/TextSegment;\n-        75: invokevirtual #8                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        78: new           #30                 // class dev/langchain4j/data/segment/TextSegment\n+        72: invokevirtual #99                 // Method dev/langchain4j/data/document/Document.toTextSegment:()Ldev/langchain4j/data/segment/TextSegment;\n+        75: invokevirtual #27                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        78: new           #103                // class dev/langchain4j/data/segment/TextSegment\n         81: dup\n-        82: ldc           #2                  // String foo bar\n-        84: new           #31                 // class dev/langchain4j/data/document/Metadata\n+        82: ldc           #7                  // String foo bar\n+        84: new           #20                 // class dev/langchain4j/data/document/Metadata\n         87: dup\n         88: aload_2\n-        89: invokespecial #32                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":(Ljava/util/Map;)V\n-        92: invokespecial #33                 // Method dev/langchain4j/data/segment/TextSegment.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n-        95: invokevirtual #9                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        89: invokespecial #105                // Method dev/langchain4j/data/document/Metadata.\"<init>\":(Ljava/util/Map;)V\n+        92: invokespecial #108                // Method dev/langchain4j/data/segment/TextSegment.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+        95: invokevirtual #33                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         98: pop\n         99: return\n       LineNumberTable:\n         line 33: 0\n         line 34: 6\n         line 35: 20\n         line 37: 40\n@@ -323,84 +323,84 @@\n             0     100     0  this   Ldev/langchain4j/data/document/DocumentTest;\n             6      94     1 document   Ldev/langchain4j/data/document/Document;\n            59      41     2 expectedMetadata   Ljava/util/Map;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            59      41     2 expectedMetadata   Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;\n     RuntimeVisibleAnnotations:\n-      0: #60()\n+      0: #146()\n         org.junit.jupiter.api.Test\n \n   public void test_withMetadata();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=7, locals=3, args_size=1\n-         0: ldc           #2                  // String foo bar\n-         2: ldc           #4                  // String foo\n-         4: ldc           #5                  // String bar\n-         6: invokestatic  #6                  // Method dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-         9: invokestatic  #7                  // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n+         0: ldc           #7                  // String foo bar\n+         2: ldc           #15                 // String foo\n+         4: ldc           #17                 // String bar\n+         6: invokestatic  #19                 // Method dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+         9: invokestatic  #24                 // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n         12: astore_1\n         13: aload_0\n         14: aload_1\n-        15: invokevirtual #14                 // Method dev/langchain4j/data/document/Document.text:()Ljava/lang/String;\n-        18: invokevirtual #15                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        21: ldc           #2                  // String foo bar\n-        23: invokevirtual #16                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        15: invokevirtual #48                 // Method dev/langchain4j/data/document/Document.text:()Ljava/lang/String;\n+        18: invokevirtual #52                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        21: ldc           #7                  // String foo bar\n+        23: invokevirtual #55                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         26: pop\n         27: aload_0\n         28: aload_1\n-        29: invokevirtual #17                 // Method dev/langchain4j/data/document/Document.metadata:()Ldev/langchain4j/data/document/Metadata;\n-        32: invokevirtual #18                 // Method dev/langchain4j/data/document/Metadata.asMap:()Ljava/util/Map;\n-        35: invokevirtual #34                 // Method assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n+        29: invokevirtual #59                 // Method dev/langchain4j/data/document/Document.metadata:()Ldev/langchain4j/data/document/Metadata;\n+        32: invokevirtual #63                 // Method dev/langchain4j/data/document/Metadata.asMap:()Ljava/util/Map;\n+        35: invokevirtual #111                // Method assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n         38: iconst_1\n-        39: invokevirtual #35                 // Method org/assertj/core/api/MapAssert.hasSize:(I)Lorg/assertj/core/api/AbstractMapAssert;\n+        39: invokevirtual #114                // Method org/assertj/core/api/MapAssert.hasSize:(I)Lorg/assertj/core/api/AbstractMapAssert;\n         42: pop\n         43: aload_0\n         44: aload_1\n-        45: ldc           #4                  // String foo\n-        47: invokevirtual #36                 // Method dev/langchain4j/data/document/Document.metadata:(Ljava/lang/String;)Ljava/lang/String;\n-        50: invokevirtual #15                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        53: ldc           #5                  // String bar\n-        55: invokevirtual #16                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        45: ldc           #15                 // String foo\n+        47: invokevirtual #120                // Method dev/langchain4j/data/document/Document.metadata:(Ljava/lang/String;)Ljava/lang/String;\n+        50: invokevirtual #52                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        53: ldc           #17                 // String bar\n+        55: invokevirtual #55                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         58: pop\n         59: aload_0\n         60: aload_1\n-        61: invokevirtual #8                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        64: ldc           #37                 // String Document { text = \\\"foo bar\\\" metadata = {foo=bar} }\n-        66: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+        61: invokevirtual #27                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        64: ldc           #123                // String Document { text = \\\"foo bar\\\" metadata = {foo=bar} }\n+        66: invokevirtual #84                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n         69: pop\n-        70: new           #24                 // class java/util/HashMap\n+        70: new           #88                 // class java/util/HashMap\n         73: dup\n-        74: invokespecial #25                 // Method java/util/HashMap.\"<init>\":()V\n+        74: invokespecial #90                 // Method java/util/HashMap.\"<init>\":()V\n         77: astore_2\n         78: aload_2\n-        79: ldc           #26                 // String index\n-        81: ldc           #27                 // String 0\n-        83: invokeinterface #28,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+        79: ldc           #91                 // String index\n+        81: ldc           #93                 // String 0\n+        83: invokeinterface #95,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n         88: pop\n         89: aload_2\n-        90: ldc           #4                  // String foo\n-        92: ldc           #5                  // String bar\n-        94: invokeinterface #28,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+        90: ldc           #15                 // String foo\n+        92: ldc           #17                 // String bar\n+        94: invokeinterface #95,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n         99: pop\n        100: aload_0\n        101: aload_1\n-       102: invokevirtual #29                 // Method dev/langchain4j/data/document/Document.toTextSegment:()Ldev/langchain4j/data/segment/TextSegment;\n-       105: invokevirtual #8                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-       108: new           #30                 // class dev/langchain4j/data/segment/TextSegment\n+       102: invokevirtual #99                 // Method dev/langchain4j/data/document/Document.toTextSegment:()Ldev/langchain4j/data/segment/TextSegment;\n+       105: invokevirtual #27                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       108: new           #103                // class dev/langchain4j/data/segment/TextSegment\n        111: dup\n-       112: ldc           #2                  // String foo bar\n-       114: new           #31                 // class dev/langchain4j/data/document/Metadata\n+       112: ldc           #7                  // String foo bar\n+       114: new           #20                 // class dev/langchain4j/data/document/Metadata\n        117: dup\n        118: aload_2\n-       119: invokespecial #32                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":(Ljava/util/Map;)V\n-       122: invokespecial #33                 // Method dev/langchain4j/data/segment/TextSegment.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n-       125: invokevirtual #9                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       119: invokespecial #105                // Method dev/langchain4j/data/document/Metadata.\"<init>\":(Ljava/util/Map;)V\n+       122: invokespecial #108                // Method dev/langchain4j/data/segment/TextSegment.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+       125: invokevirtual #33                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        128: pop\n        129: return\n       LineNumberTable:\n         line 47: 0\n         line 48: 13\n         line 50: 27\n         line 51: 43\n@@ -416,79 +416,79 @@\n             0     130     0  this   Ldev/langchain4j/data/document/DocumentTest;\n            13     117     1 document   Ldev/langchain4j/data/document/Document;\n            78      52     2 expectedMetadata   Ljava/util/Map;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            78      52     2 expectedMetadata   Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;\n     RuntimeVisibleAnnotations:\n-      0: #60()\n+      0: #146()\n         org.junit.jupiter.api.Test\n \n   public void test_from();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=6, locals=1, args_size=1\n          0: aload_0\n-         1: ldc           #2                  // String foo bar\n-         3: invokestatic  #3                  // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n-         6: invokevirtual #8                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-         9: new           #38                 // class dev/langchain4j/data/document/Document\n+         1: ldc           #7                  // String foo bar\n+         3: invokestatic  #9                  // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+         6: invokevirtual #27                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+         9: new           #10                 // class dev/langchain4j/data/document/Document\n         12: dup\n-        13: ldc           #2                  // String foo bar\n-        15: new           #31                 // class dev/langchain4j/data/document/Metadata\n+        13: ldc           #7                  // String foo bar\n+        15: new           #20                 // class dev/langchain4j/data/document/Metadata\n         18: dup\n-        19: invokespecial #39                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n-        22: invokespecial #40                 // Method dev/langchain4j/data/document/Document.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n-        25: invokevirtual #9                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        19: invokespecial #125                // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+        22: invokespecial #126                // Method dev/langchain4j/data/document/Document.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+        25: invokevirtual #33                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         28: pop\n         29: aload_0\n-        30: ldc           #2                  // String foo bar\n-        32: ldc           #4                  // String foo\n-        34: ldc           #5                  // String bar\n-        36: invokestatic  #6                  // Method dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-        39: invokestatic  #7                  // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n-        42: invokevirtual #8                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        45: new           #38                 // class dev/langchain4j/data/document/Document\n+        30: ldc           #7                  // String foo bar\n+        32: ldc           #15                 // String foo\n+        34: ldc           #17                 // String bar\n+        36: invokestatic  #19                 // Method dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        39: invokestatic  #24                 // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n+        42: invokevirtual #27                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        45: new           #10                 // class dev/langchain4j/data/document/Document\n         48: dup\n-        49: ldc           #2                  // String foo bar\n-        51: ldc           #4                  // String foo\n-        53: ldc           #5                  // String bar\n-        55: invokestatic  #6                  // Method dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-        58: invokespecial #40                 // Method dev/langchain4j/data/document/Document.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n-        61: invokevirtual #9                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        49: ldc           #7                  // String foo bar\n+        51: ldc           #15                 // String foo\n+        53: ldc           #17                 // String bar\n+        55: invokestatic  #19                 // Method dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        58: invokespecial #126                // Method dev/langchain4j/data/document/Document.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+        61: invokevirtual #33                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         64: pop\n         65: aload_0\n-        66: ldc           #2                  // String foo bar\n-        68: invokestatic  #41                 // Method dev/langchain4j/data/document/Document.document:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n-        71: invokevirtual #8                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        74: new           #38                 // class dev/langchain4j/data/document/Document\n+        66: ldc           #7                  // String foo bar\n+        68: invokestatic  #127                // Method dev/langchain4j/data/document/Document.document:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+        71: invokevirtual #27                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        74: new           #10                 // class dev/langchain4j/data/document/Document\n         77: dup\n-        78: ldc           #2                  // String foo bar\n-        80: new           #31                 // class dev/langchain4j/data/document/Metadata\n+        78: ldc           #7                  // String foo bar\n+        80: new           #20                 // class dev/langchain4j/data/document/Metadata\n         83: dup\n-        84: invokespecial #39                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n-        87: invokespecial #40                 // Method dev/langchain4j/data/document/Document.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n-        90: invokevirtual #9                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        84: invokespecial #125                // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+        87: invokespecial #126                // Method dev/langchain4j/data/document/Document.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+        90: invokevirtual #33                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         93: pop\n         94: aload_0\n-        95: ldc           #2                  // String foo bar\n-        97: ldc           #4                  // String foo\n-        99: ldc           #5                  // String bar\n-       101: invokestatic  #6                  // Method dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-       104: invokestatic  #42                 // Method dev/langchain4j/data/document/Document.document:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n-       107: invokevirtual #8                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-       110: new           #38                 // class dev/langchain4j/data/document/Document\n+        95: ldc           #7                  // String foo bar\n+        97: ldc           #15                 // String foo\n+        99: ldc           #17                 // String bar\n+       101: invokestatic  #19                 // Method dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+       104: invokestatic  #130                // Method dev/langchain4j/data/document/Document.document:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n+       107: invokevirtual #27                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       110: new           #10                 // class dev/langchain4j/data/document/Document\n        113: dup\n-       114: ldc           #2                  // String foo bar\n-       116: ldc           #4                  // String foo\n-       118: ldc           #5                  // String bar\n-       120: invokestatic  #6                  // Method dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-       123: invokespecial #40                 // Method dev/langchain4j/data/document/Document.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n-       126: invokevirtual #9                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       114: ldc           #7                  // String foo bar\n+       116: ldc           #15                 // String foo\n+       118: ldc           #17                 // String bar\n+       120: invokestatic  #19                 // Method dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+       123: invokespecial #126                // Method dev/langchain4j/data/document/Document.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+       126: invokevirtual #33                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        129: pop\n        130: return\n       LineNumberTable:\n         line 64: 0\n         line 65: 25\n         line 67: 29\n         line 68: 55\n@@ -497,11 +497,11 @@\n         line 72: 94\n         line 73: 120\n         line 74: 130\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     131     0  this   Ldev/langchain4j/data/document/DocumentTest;\n     RuntimeVisibleAnnotations:\n-      0: #60()\n+      0: #146()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"DocumentTest.java\"\n"}]}, {"source1": "dev/langchain4j/data/document/DocumentTransformerTest.class", "source2": "dev/langchain4j/data/document/DocumentTransformerTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,147 +1,147 @@\n-  SHA-256 checksum 54d9726eaede1bf00efb5af95f28df8a8ee5bc7b3286c1ab2f993f9547499627\n+  SHA-256 checksum bf0ba212617603c550b4805e215625bb37fe0f5d905d1302b47c5601c6cc3c1d\n   Compiled from \"DocumentTransformerTest.java\"\n class dev.langchain4j.data.document.DocumentTransformerTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #26                         // dev/langchain4j/data/document/DocumentTransformerTest\n-  super_class: #27                        // java/lang/Object\n+  this_class: #51                         // dev/langchain4j/data/document/DocumentTransformerTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 3, attributes: 3\n Constant pool:\n-    #1 = Methodref          #27.#51       // java/lang/Object.\"<init>\":()V\n-    #2 = Class              #52           // java/util/ArrayList\n-    #3 = Methodref          #2.#51        // java/util/ArrayList.\"<init>\":()V\n-    #4 = String             #53           // abc xyz\n-    #5 = String             #54           // lang\n-    #6 = String             #55           // en\n-    #7 = Methodref          #56.#57       // dev/langchain4j/data/document/Metadata.metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-    #8 = Methodref          #16.#58       // dev/langchain4j/data/document/Document.document:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n-    #9 = InterfaceMethodref #59.#60       // java/util/List.add:(Ljava/lang/Object;)Z\n-   #10 = String             #61           // jkl 123\n-   #11 = String             #62           // mno qrs\n-   #12 = String             #63           // fr\n-   #13 = InvokeDynamic      #0:#68        // #0:transform:()Ldev/langchain4j/data/document/DocumentTransformer;\n-   #14 = InterfaceMethodref #69.#70       // dev/langchain4j/data/document/DocumentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n-   #15 = Methodref          #26.#71       // dev/langchain4j/data/document/DocumentTransformerTest.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-   #16 = Class              #72           // dev/langchain4j/data/document/Document\n-   #17 = String             #73           // ABC XYZ\n-   #18 = String             #74           // JKL 123\n-   #19 = Methodref          #75.#76       // org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-   #20 = Methodref          #16.#77       // dev/langchain4j/data/document/Document.metadata:()Ldev/langchain4j/data/document/Metadata;\n-   #21 = Methodref          #56.#78       // dev/langchain4j/data/document/Metadata.get:(Ljava/lang/String;)Ljava/lang/String;\n-   #22 = Methodref          #79.#80       // java/lang/String.equals:(Ljava/lang/Object;)Z\n-   #23 = Methodref          #16.#81       // dev/langchain4j/data/document/Document.text:()Ljava/lang/String;\n-   #24 = Fieldref           #82.#83       // java/util/Locale.ROOT:Ljava/util/Locale;\n-   #25 = Methodref          #79.#84       // java/lang/String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;\n-   #26 = Class              #85           // dev/langchain4j/data/document/DocumentTransformerTest\n-   #27 = Class              #86           // java/lang/Object\n-   #28 = Class              #87           // org/assertj/core/api/WithAssertions\n-   #29 = Utf8               <init>\n-   #30 = Utf8               ()V\n-   #31 = Utf8               Code\n-   #32 = Utf8               LineNumberTable\n-   #33 = Utf8               LocalVariableTable\n-   #34 = Utf8               this\n-   #35 = Utf8               Ldev/langchain4j/data/document/DocumentTransformerTest;\n-   #36 = Utf8               test\n-   #37 = Utf8               docs\n-   #38 = Utf8               Ljava/util/List;\n-   #39 = Utf8               results\n-   #40 = Utf8               LocalVariableTypeTable\n-   #41 = Utf8               Ljava/util/List<Ldev/langchain4j/data/document/Document;>;\n-   #42 = Utf8               RuntimeVisibleAnnotations\n-   #43 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #44 = Utf8               lambda$test$0\n-   #45 = Utf8               (Ldev/langchain4j/data/document/Document;)Ldev/langchain4j/data/document/Document;\n-   #46 = Utf8               document\n-   #47 = Utf8               Ldev/langchain4j/data/document/Document;\n-   #48 = Utf8               StackMapTable\n-   #49 = Utf8               SourceFile\n-   #50 = Utf8               DocumentTransformerTest.java\n-   #51 = NameAndType        #29:#30       // \"<init>\":()V\n-   #52 = Utf8               java/util/ArrayList\n-   #53 = Utf8               abc xyz\n-   #54 = Utf8               lang\n-   #55 = Utf8               en\n-   #56 = Class              #88           // dev/langchain4j/data/document/Metadata\n-   #57 = NameAndType        #89:#90       // metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-   #58 = NameAndType        #46:#91       // document:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n-   #59 = Class              #92           // java/util/List\n-   #60 = NameAndType        #93:#94       // add:(Ljava/lang/Object;)Z\n-   #61 = Utf8               jkl 123\n-   #62 = Utf8               mno qrs\n-   #63 = Utf8               fr\n-   #64 = Utf8               BootstrapMethods\n-   #65 = MethodHandle       6:#95         // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-   #66 = MethodType         #45           //  (Ldev/langchain4j/data/document/Document;)Ldev/langchain4j/data/document/Document;\n-   #67 = MethodHandle       6:#96         // REF_invokeStatic dev/langchain4j/data/document/DocumentTransformerTest.lambda$test$0:(Ldev/langchain4j/data/document/Document;)Ldev/langchain4j/data/document/Document;\n-   #68 = NameAndType        #97:#98       // transform:()Ldev/langchain4j/data/document/DocumentTransformer;\n-   #69 = Class              #99           // dev/langchain4j/data/document/DocumentTransformer\n-   #70 = NameAndType        #100:#101     // transformAll:(Ljava/util/List;)Ljava/util/List;\n-   #71 = NameAndType        #102:#103     // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-   #72 = Utf8               dev/langchain4j/data/document/Document\n-   #73 = Utf8               ABC XYZ\n-   #74 = Utf8               JKL 123\n-   #75 = Class              #104          // org/assertj/core/api/ListAssert\n-   #76 = NameAndType        #105:#106     // containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-   #77 = NameAndType        #89:#107      // metadata:()Ldev/langchain4j/data/document/Metadata;\n-   #78 = NameAndType        #108:#109     // get:(Ljava/lang/String;)Ljava/lang/String;\n-   #79 = Class              #110          // java/lang/String\n-   #80 = NameAndType        #111:#94      // equals:(Ljava/lang/Object;)Z\n-   #81 = NameAndType        #112:#113     // text:()Ljava/lang/String;\n-   #82 = Class              #114          // java/util/Locale\n-   #83 = NameAndType        #115:#116     // ROOT:Ljava/util/Locale;\n-   #84 = NameAndType        #117:#118     // toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;\n-   #85 = Utf8               dev/langchain4j/data/document/DocumentTransformerTest\n-   #86 = Utf8               java/lang/Object\n-   #87 = Utf8               org/assertj/core/api/WithAssertions\n-   #88 = Utf8               dev/langchain4j/data/document/Metadata\n-   #89 = Utf8               metadata\n-   #90 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-   #91 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n-   #92 = Utf8               java/util/List\n-   #93 = Utf8               add\n-   #94 = Utf8               (Ljava/lang/Object;)Z\n-   #95 = Methodref          #119.#120     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-   #96 = Methodref          #26.#121      // dev/langchain4j/data/document/DocumentTransformerTest.lambda$test$0:(Ldev/langchain4j/data/document/Document;)Ldev/langchain4j/data/document/Document;\n-   #97 = Utf8               transform\n-   #98 = Utf8               ()Ldev/langchain4j/data/document/DocumentTransformer;\n-   #99 = Utf8               dev/langchain4j/data/document/DocumentTransformer\n-  #100 = Utf8               transformAll\n-  #101 = Utf8               (Ljava/util/List;)Ljava/util/List;\n-  #102 = Utf8               assertThat\n-  #103 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #104 = Utf8               org/assertj/core/api/ListAssert\n-  #105 = Utf8               containsOnly\n-  #106 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #107 = Utf8               ()Ldev/langchain4j/data/document/Metadata;\n-  #108 = Utf8               get\n-  #109 = Utf8               (Ljava/lang/String;)Ljava/lang/String;\n-  #110 = Utf8               java/lang/String\n-  #111 = Utf8               equals\n-  #112 = Utf8               text\n-  #113 = Utf8               ()Ljava/lang/String;\n-  #114 = Utf8               java/util/Locale\n-  #115 = Utf8               ROOT\n-  #116 = Utf8               Ljava/util/Locale;\n-  #117 = Utf8               toUpperCase\n-  #118 = Utf8               (Ljava/util/Locale;)Ljava/lang/String;\n-  #119 = Class              #122          // java/lang/invoke/LambdaMetafactory\n-  #120 = NameAndType        #123:#127     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #121 = NameAndType        #44:#45       // lambda$test$0:(Ldev/langchain4j/data/document/Document;)Ldev/langchain4j/data/document/Document;\n-  #122 = Utf8               java/lang/invoke/LambdaMetafactory\n-  #123 = Utf8               metafactory\n-  #124 = Class              #129          // java/lang/invoke/MethodHandles$Lookup\n-  #125 = Utf8               Lookup\n-  #126 = Utf8               InnerClasses\n-  #127 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #128 = Class              #130          // java/lang/invoke/MethodHandles\n-  #129 = Utf8               java/lang/invoke/MethodHandles$Lookup\n-  #130 = Utf8               java/lang/invoke/MethodHandles\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Class              #8            // java/util/ArrayList\n+    #8 = Utf8               java/util/ArrayList\n+    #9 = Methodref          #7.#3         // java/util/ArrayList.\"<init>\":()V\n+   #10 = String             #11           // abc xyz\n+   #11 = Utf8               abc xyz\n+   #12 = String             #13           // lang\n+   #13 = Utf8               lang\n+   #14 = String             #15           // en\n+   #15 = Utf8               en\n+   #16 = Methodref          #17.#18       // dev/langchain4j/data/document/Metadata.metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+   #17 = Class              #19           // dev/langchain4j/data/document/Metadata\n+   #18 = NameAndType        #20:#21       // metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+   #19 = Utf8               dev/langchain4j/data/document/Metadata\n+   #20 = Utf8               metadata\n+   #21 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+   #22 = Methodref          #23.#24       // dev/langchain4j/data/document/Document.document:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n+   #23 = Class              #25           // dev/langchain4j/data/document/Document\n+   #24 = NameAndType        #26:#27       // document:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n+   #25 = Utf8               dev/langchain4j/data/document/Document\n+   #26 = Utf8               document\n+   #27 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n+   #28 = InterfaceMethodref #29.#30       // java/util/List.add:(Ljava/lang/Object;)Z\n+   #29 = Class              #31           // java/util/List\n+   #30 = NameAndType        #32:#33       // add:(Ljava/lang/Object;)Z\n+   #31 = Utf8               java/util/List\n+   #32 = Utf8               add\n+   #33 = Utf8               (Ljava/lang/Object;)Z\n+   #34 = String             #35           // jkl 123\n+   #35 = Utf8               jkl 123\n+   #36 = String             #37           // mno qrs\n+   #37 = Utf8               mno qrs\n+   #38 = String             #39           // fr\n+   #39 = Utf8               fr\n+   #40 = InvokeDynamic      #0:#41        // #0:transform:()Ldev/langchain4j/data/document/DocumentTransformer;\n+   #41 = NameAndType        #42:#43       // transform:()Ldev/langchain4j/data/document/DocumentTransformer;\n+   #42 = Utf8               transform\n+   #43 = Utf8               ()Ldev/langchain4j/data/document/DocumentTransformer;\n+   #44 = InterfaceMethodref #45.#46       // dev/langchain4j/data/document/DocumentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n+   #45 = Class              #47           // dev/langchain4j/data/document/DocumentTransformer\n+   #46 = NameAndType        #48:#49       // transformAll:(Ljava/util/List;)Ljava/util/List;\n+   #47 = Utf8               dev/langchain4j/data/document/DocumentTransformer\n+   #48 = Utf8               transformAll\n+   #49 = Utf8               (Ljava/util/List;)Ljava/util/List;\n+   #50 = Methodref          #51.#52       // dev/langchain4j/data/document/DocumentTransformerTest.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+   #51 = Class              #53           // dev/langchain4j/data/document/DocumentTransformerTest\n+   #52 = NameAndType        #54:#55       // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+   #53 = Utf8               dev/langchain4j/data/document/DocumentTransformerTest\n+   #54 = Utf8               assertThat\n+   #55 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+   #56 = String             #57           // ABC XYZ\n+   #57 = Utf8               ABC XYZ\n+   #58 = String             #59           // JKL 123\n+   #59 = Utf8               JKL 123\n+   #60 = Methodref          #61.#62       // org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #61 = Class              #63           // org/assertj/core/api/ListAssert\n+   #62 = NameAndType        #64:#65       // containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #63 = Utf8               org/assertj/core/api/ListAssert\n+   #64 = Utf8               containsOnly\n+   #65 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #66 = Methodref          #23.#67       // dev/langchain4j/data/document/Document.metadata:()Ldev/langchain4j/data/document/Metadata;\n+   #67 = NameAndType        #20:#68       // metadata:()Ldev/langchain4j/data/document/Metadata;\n+   #68 = Utf8               ()Ldev/langchain4j/data/document/Metadata;\n+   #69 = Methodref          #17.#70       // dev/langchain4j/data/document/Metadata.get:(Ljava/lang/String;)Ljava/lang/String;\n+   #70 = NameAndType        #71:#72       // get:(Ljava/lang/String;)Ljava/lang/String;\n+   #71 = Utf8               get\n+   #72 = Utf8               (Ljava/lang/String;)Ljava/lang/String;\n+   #73 = Methodref          #74.#75       // java/lang/String.equals:(Ljava/lang/Object;)Z\n+   #74 = Class              #76           // java/lang/String\n+   #75 = NameAndType        #77:#33       // equals:(Ljava/lang/Object;)Z\n+   #76 = Utf8               java/lang/String\n+   #77 = Utf8               equals\n+   #78 = Methodref          #23.#79       // dev/langchain4j/data/document/Document.text:()Ljava/lang/String;\n+   #79 = NameAndType        #80:#81       // text:()Ljava/lang/String;\n+   #80 = Utf8               text\n+   #81 = Utf8               ()Ljava/lang/String;\n+   #82 = Fieldref           #83.#84       // java/util/Locale.ROOT:Ljava/util/Locale;\n+   #83 = Class              #85           // java/util/Locale\n+   #84 = NameAndType        #86:#87       // ROOT:Ljava/util/Locale;\n+   #85 = Utf8               java/util/Locale\n+   #86 = Utf8               ROOT\n+   #87 = Utf8               Ljava/util/Locale;\n+   #88 = Methodref          #74.#89       // java/lang/String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;\n+   #89 = NameAndType        #90:#91       // toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;\n+   #90 = Utf8               toUpperCase\n+   #91 = Utf8               (Ljava/util/Locale;)Ljava/lang/String;\n+   #92 = Class              #93           // org/assertj/core/api/WithAssertions\n+   #93 = Utf8               org/assertj/core/api/WithAssertions\n+   #94 = Utf8               Code\n+   #95 = Utf8               LineNumberTable\n+   #96 = Utf8               LocalVariableTable\n+   #97 = Utf8               this\n+   #98 = Utf8               Ldev/langchain4j/data/document/DocumentTransformerTest;\n+   #99 = Utf8               test\n+  #100 = Utf8               docs\n+  #101 = Utf8               Ljava/util/List;\n+  #102 = Utf8               results\n+  #103 = Utf8               LocalVariableTypeTable\n+  #104 = Utf8               Ljava/util/List<Ldev/langchain4j/data/document/Document;>;\n+  #105 = Utf8               RuntimeVisibleAnnotations\n+  #106 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #107 = Utf8               lambda$test$0\n+  #108 = Utf8               (Ldev/langchain4j/data/document/Document;)Ldev/langchain4j/data/document/Document;\n+  #109 = Utf8               Ldev/langchain4j/data/document/Document;\n+  #110 = Utf8               StackMapTable\n+  #111 = Utf8               SourceFile\n+  #112 = Utf8               DocumentTransformerTest.java\n+  #113 = Utf8               BootstrapMethods\n+  #114 = MethodHandle       6:#115        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #115 = Methodref          #116.#117     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #116 = Class              #118          // java/lang/invoke/LambdaMetafactory\n+  #117 = NameAndType        #119:#120     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #118 = Utf8               java/lang/invoke/LambdaMetafactory\n+  #119 = Utf8               metafactory\n+  #120 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #121 = MethodType         #108          //  (Ldev/langchain4j/data/document/Document;)Ldev/langchain4j/data/document/Document;\n+  #122 = MethodHandle       6:#123        // REF_invokeStatic dev/langchain4j/data/document/DocumentTransformerTest.lambda$test$0:(Ldev/langchain4j/data/document/Document;)Ldev/langchain4j/data/document/Document;\n+  #123 = Methodref          #51.#124      // dev/langchain4j/data/document/DocumentTransformerTest.lambda$test$0:(Ldev/langchain4j/data/document/Document;)Ldev/langchain4j/data/document/Document;\n+  #124 = NameAndType        #107:#108     // lambda$test$0:(Ldev/langchain4j/data/document/Document;)Ldev/langchain4j/data/document/Document;\n+  #125 = Utf8               InnerClasses\n+  #126 = Class              #127          // java/lang/invoke/MethodHandles$Lookup\n+  #127 = Utf8               java/lang/invoke/MethodHandles$Lookup\n+  #128 = Class              #129          // java/lang/invoke/MethodHandles\n+  #129 = Utf8               java/lang/invoke/MethodHandles\n+  #130 = Utf8               Lookup\n {\n   dev.langchain4j.data.document.DocumentTransformerTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -154,68 +154,68 @@\n             0       5     0  this   Ldev/langchain4j/data/document/DocumentTransformerTest;\n \n   public void test();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=7, locals=3, args_size=1\n-         0: new           #2                  // class java/util/ArrayList\n+         0: new           #7                  // class java/util/ArrayList\n          3: dup\n-         4: invokespecial #3                  // Method java/util/ArrayList.\"<init>\":()V\n+         4: invokespecial #9                  // Method java/util/ArrayList.\"<init>\":()V\n          7: astore_1\n          8: aload_1\n-         9: ldc           #4                  // String abc xyz\n-        11: ldc           #5                  // String lang\n-        13: ldc           #6                  // String en\n-        15: invokestatic  #7                  // Method dev/langchain4j/data/document/Metadata.metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-        18: invokestatic  #8                  // Method dev/langchain4j/data/document/Document.document:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n-        21: invokeinterface #9,  2            // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n+         9: ldc           #10                 // String abc xyz\n+        11: ldc           #12                 // String lang\n+        13: ldc           #14                 // String en\n+        15: invokestatic  #16                 // Method dev/langchain4j/data/document/Metadata.metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        18: invokestatic  #22                 // Method dev/langchain4j/data/document/Document.document:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n+        21: invokeinterface #28,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n         26: pop\n         27: aload_1\n-        28: ldc           #10                 // String jkl 123\n-        30: ldc           #5                  // String lang\n-        32: ldc           #6                  // String en\n-        34: invokestatic  #7                  // Method dev/langchain4j/data/document/Metadata.metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-        37: invokestatic  #8                  // Method dev/langchain4j/data/document/Document.document:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n-        40: invokeinterface #9,  2            // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n+        28: ldc           #34                 // String jkl 123\n+        30: ldc           #12                 // String lang\n+        32: ldc           #14                 // String en\n+        34: invokestatic  #16                 // Method dev/langchain4j/data/document/Metadata.metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        37: invokestatic  #22                 // Method dev/langchain4j/data/document/Document.document:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n+        40: invokeinterface #28,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n         45: pop\n         46: aload_1\n-        47: ldc           #11                 // String mno qrs\n-        49: ldc           #5                  // String lang\n-        51: ldc           #12                 // String fr\n-        53: invokestatic  #7                  // Method dev/langchain4j/data/document/Metadata.metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-        56: invokestatic  #8                  // Method dev/langchain4j/data/document/Document.document:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n-        59: invokeinterface #9,  2            // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n+        47: ldc           #36                 // String mno qrs\n+        49: ldc           #12                 // String lang\n+        51: ldc           #38                 // String fr\n+        53: invokestatic  #16                 // Method dev/langchain4j/data/document/Metadata.metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        56: invokestatic  #22                 // Method dev/langchain4j/data/document/Document.document:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n+        59: invokeinterface #28,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n         64: pop\n-        65: invokedynamic #13,  0             // InvokeDynamic #0:transform:()Ldev/langchain4j/data/document/DocumentTransformer;\n+        65: invokedynamic #40,  0             // InvokeDynamic #0:transform:()Ldev/langchain4j/data/document/DocumentTransformer;\n         70: aload_1\n-        71: invokeinterface #14,  2           // InterfaceMethod dev/langchain4j/data/document/DocumentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n+        71: invokeinterface #44,  2           // InterfaceMethod dev/langchain4j/data/document/DocumentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n         76: astore_2\n         77: aload_0\n         78: aload_2\n-        79: invokevirtual #15                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+        79: invokevirtual #50                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n         82: iconst_2\n-        83: anewarray     #16                 // class dev/langchain4j/data/document/Document\n+        83: anewarray     #23                 // class dev/langchain4j/data/document/Document\n         86: dup\n         87: iconst_0\n-        88: ldc           #17                 // String ABC XYZ\n-        90: ldc           #5                  // String lang\n-        92: ldc           #6                  // String en\n-        94: invokestatic  #7                  // Method dev/langchain4j/data/document/Metadata.metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-        97: invokestatic  #8                  // Method dev/langchain4j/data/document/Document.document:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n+        88: ldc           #56                 // String ABC XYZ\n+        90: ldc           #12                 // String lang\n+        92: ldc           #14                 // String en\n+        94: invokestatic  #16                 // Method dev/langchain4j/data/document/Metadata.metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        97: invokestatic  #22                 // Method dev/langchain4j/data/document/Document.document:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n        100: aastore\n        101: dup\n        102: iconst_1\n-       103: ldc           #18                 // String JKL 123\n-       105: ldc           #5                  // String lang\n-       107: ldc           #6                  // String en\n-       109: invokestatic  #7                  // Method dev/langchain4j/data/document/Metadata.metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-       112: invokestatic  #8                  // Method dev/langchain4j/data/document/Document.document:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n+       103: ldc           #58                 // String JKL 123\n+       105: ldc           #12                 // String lang\n+       107: ldc           #14                 // String en\n+       109: invokestatic  #16                 // Method dev/langchain4j/data/document/Metadata.metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+       112: invokestatic  #22                 // Method dev/langchain4j/data/document/Document.document:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n        115: aastore\n-       116: invokevirtual #19                 // Method org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+       116: invokevirtual #60                 // Method org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n        119: pop\n        120: return\n       LineNumberTable:\n         line 13: 0\n         line 14: 8\n         line 15: 27\n         line 16: 46\n@@ -232,36 +232,36 @@\n             8     113     1  docs   Ljava/util/List;\n            77      44     2 results   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             8     113     1  docs   Ljava/util/List<Ldev/langchain4j/data/document/Document;>;\n            77      44     2 results   Ljava/util/List<Ldev/langchain4j/data/document/Document;>;\n     RuntimeVisibleAnnotations:\n-      0: #43()\n+      0: #106()\n         org.junit.jupiter.api.Test\n \n   private static dev.langchain4j.data.document.Document lambda$test$0(dev.langchain4j.data.document.Document);\n     descriptor: (Ldev/langchain4j/data/document/Document;)Ldev/langchain4j/data/document/Document;\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=2, locals=1, args_size=1\n          0: aload_0\n-         1: invokevirtual #20                 // Method dev/langchain4j/data/document/Document.metadata:()Ldev/langchain4j/data/document/Metadata;\n-         4: ldc           #5                  // String lang\n-         6: invokevirtual #21                 // Method dev/langchain4j/data/document/Metadata.get:(Ljava/lang/String;)Ljava/lang/String;\n-         9: ldc           #6                  // String en\n-        11: invokevirtual #22                 // Method java/lang/String.equals:(Ljava/lang/Object;)Z\n+         1: invokevirtual #66                 // Method dev/langchain4j/data/document/Document.metadata:()Ldev/langchain4j/data/document/Metadata;\n+         4: ldc           #12                 // String lang\n+         6: invokevirtual #69                 // Method dev/langchain4j/data/document/Metadata.get:(Ljava/lang/String;)Ljava/lang/String;\n+         9: ldc           #14                 // String en\n+        11: invokevirtual #73                 // Method java/lang/String.equals:(Ljava/lang/Object;)Z\n         14: ifeq          35\n         17: aload_0\n-        18: invokevirtual #23                 // Method dev/langchain4j/data/document/Document.text:()Ljava/lang/String;\n-        21: getstatic     #24                 // Field java/util/Locale.ROOT:Ljava/util/Locale;\n-        24: invokevirtual #25                 // Method java/lang/String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;\n+        18: invokevirtual #78                 // Method dev/langchain4j/data/document/Document.text:()Ljava/lang/String;\n+        21: getstatic     #82                 // Field java/util/Locale.ROOT:Ljava/util/Locale;\n+        24: invokevirtual #88                 // Method java/lang/String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;\n         27: aload_0\n-        28: invokevirtual #20                 // Method dev/langchain4j/data/document/Document.metadata:()Ldev/langchain4j/data/document/Metadata;\n-        31: invokestatic  #8                  // Method dev/langchain4j/data/document/Document.document:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n+        28: invokevirtual #66                 // Method dev/langchain4j/data/document/Document.metadata:()Ldev/langchain4j/data/document/Metadata;\n+        31: invokestatic  #22                 // Method dev/langchain4j/data/document/Document.document:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n         34: areturn\n         35: aconst_null\n         36: areturn\n       LineNumberTable:\n         line 19: 0\n         line 20: 17\n         line 21: 18\n@@ -271,15 +271,15 @@\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      37     0 document   Ldev/langchain4j/data/document/Document;\n       StackMapTable: number_of_entries = 1\n         frame_type = 35 /* same */\n }\n SourceFile: \"DocumentTransformerTest.java\"\n-InnerClasses:\n-  public static final #125= #124 of #128; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n BootstrapMethods:\n-  0: #65 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  0: #114 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #66 (Ldev/langchain4j/data/document/Document;)Ldev/langchain4j/data/document/Document;\n-      #67 REF_invokeStatic dev/langchain4j/data/document/DocumentTransformerTest.lambda$test$0:(Ldev/langchain4j/data/document/Document;)Ldev/langchain4j/data/document/Document;\n-      #66 (Ldev/langchain4j/data/document/Document;)Ldev/langchain4j/data/document/Document;\n+      #121 (Ldev/langchain4j/data/document/Document;)Ldev/langchain4j/data/document/Document;\n+      #122 REF_invokeStatic dev/langchain4j/data/document/DocumentTransformerTest.lambda$test$0:(Ldev/langchain4j/data/document/Document;)Ldev/langchain4j/data/document/Document;\n+      #121 (Ldev/langchain4j/data/document/Document;)Ldev/langchain4j/data/document/Document;\n+InnerClasses:\n+  public static final #130= #126 of #128; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n"}]}, {"source1": "dev/langchain4j/data/document/MetadataTest.class", "source2": "dev/langchain4j/data/document/MetadataTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,176 +1,176 @@\n-  SHA-256 checksum cc8e3254fc04b56539a64ea12f6ed0b80a63ee40329e23416f625cb93b6cedce\n+  SHA-256 checksum d6c23c1eaac1b8bf3d78aaad90ff33b8e9b5a3ebabaa6dcd23394438fe24e4c4\n   Compiled from \"MetadataTest.java\"\n class dev.langchain4j.data.document.MetadataTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #44                         // dev/langchain4j/data/document/MetadataTest\n-  super_class: #32                        // java/lang/Object\n+  this_class: #17                         // dev/langchain4j/data/document/MetadataTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 8, attributes: 1\n Constant pool:\n-    #1 = Methodref          #32.#77       // java/lang/Object.\"<init>\":()V\n-    #2 = Class              #78           // dev/langchain4j/data/document/Metadata\n-    #3 = Methodref          #2.#77        // dev/langchain4j/data/document/Metadata.\"<init>\":()V\n-    #4 = String             #79           // foo\n-    #5 = Methodref          #2.#80        // dev/langchain4j/data/document/Metadata.get:(Ljava/lang/String;)Ljava/lang/String;\n-    #6 = Methodref          #44.#81       // dev/langchain4j/data/document/MetadataTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-    #7 = Methodref          #82.#83       // org/assertj/core/api/AbstractStringAssert.isNull:()V\n-    #8 = String             #84           // bar\n-    #9 = Methodref          #2.#85        // dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-   #10 = Methodref          #82.#86       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #11 = String             #87           // xyz\n-   #12 = Methodref          #88.#89       // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-   #13 = Methodref          #2.#90        // dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/data/document/Metadata;\n-   #14 = String             #91           // 2\n-   #15 = Class              #92           // java/util/HashMap\n-   #16 = Methodref          #15.#77       // java/util/HashMap.\"<init>\":()V\n-   #17 = InterfaceMethodref #93.#94       // java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-   #18 = Methodref          #2.#95        // dev/langchain4j/data/document/Metadata.\"<init>\":(Ljava/util/Map;)V\n-   #19 = Methodref          #15.#95       // java/util/HashMap.\"<init>\":(Ljava/util/Map;)V\n-   #20 = String             #96           // baz\n-   #21 = String             #97           // qux\n-   #22 = Methodref          #2.#98        // dev/langchain4j/data/document/Metadata.asMap:()Ljava/util/Map;\n-   #23 = Methodref          #44.#99       // dev/langchain4j/data/document/MetadataTest.assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n-   #24 = Methodref          #100.#101     // org/assertj/core/api/MapAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n-   #25 = Methodref          #2.#102       // dev/langchain4j/data/document/Metadata.toString:()Ljava/lang/String;\n-   #26 = String             #103          // Metadata { metadata = {foo=bar, baz=qux} }\n-   #27 = String             #104          // different\n-   #28 = String             #105          // value\n-   #29 = Methodref          #44.#106      // dev/langchain4j/data/document/MetadataTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #30 = Methodref          #31.#107      // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #31 = Class              #108          // org/assertj/core/api/ObjectAssert\n-   #32 = Class              #109          // java/lang/Object\n-   #33 = Methodref          #31.#110      // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #34 = Methodref          #31.#111      // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #35 = Methodref          #31.#112      // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #36 = Methodref          #2.#113       // dev/langchain4j/data/document/Metadata.copy:()Ldev/langchain4j/data/document/Metadata;\n-   #37 = Methodref          #2.#114       // dev/langchain4j/data/document/Metadata.from:(Ljava/util/Map;)Ldev/langchain4j/data/document/Metadata;\n-   #38 = Methodref          #2.#115       // dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-   #39 = Methodref          #2.#116       // dev/langchain4j/data/document/Metadata.metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-   #40 = Methodref          #2.#117       // dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/data/document/Metadata;\n-   #41 = Methodref          #2.#118       // dev/langchain4j/data/document/Metadata.metadata:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/data/document/Metadata;\n-   #42 = Methodref          #2.#119       // dev/langchain4j/data/document/Metadata.remove:(Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-   #43 = Methodref          #31.#120      // org/assertj/core/api/ObjectAssert.isSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #44 = Class              #121          // dev/langchain4j/data/document/MetadataTest\n-   #45 = Class              #122          // org/assertj/core/api/WithAssertions\n-   #46 = Utf8               <init>\n-   #47 = Utf8               ()V\n-   #48 = Utf8               Code\n-   #49 = Utf8               LineNumberTable\n-   #50 = Utf8               LocalVariableTable\n-   #51 = Utf8               this\n-   #52 = Utf8               Ldev/langchain4j/data/document/MetadataTest;\n-   #53 = Utf8               test_add_get_put\n-   #54 = Utf8               m\n-   #55 = Utf8               Ldev/langchain4j/data/document/Metadata;\n-   #56 = Utf8               RuntimeVisibleAnnotations\n-   #57 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #58 = Utf8               test_map_constructor_copies\n-   #59 = Utf8               source\n-   #60 = Utf8               Ljava/util/Map;\n-   #61 = Utf8               sourceCopy\n-   #62 = Utf8               LocalVariableTypeTable\n-   #63 = Utf8               Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;\n-   #64 = Utf8               test_toString\n-   #65 = Utf8               test_equals_hash\n-   #66 = Utf8               m1\n-   #67 = Utf8               m2\n-   #68 = Utf8               m3\n-   #69 = Utf8               m4\n-   #70 = Utf8               test_copy\n-   #71 = Utf8               test_builders\n-   #72 = Utf8               emptyMap\n-   #73 = Utf8               map\n-   #74 = Utf8               test_remove\n-   #75 = Utf8               SourceFile\n-   #76 = Utf8               MetadataTest.java\n-   #77 = NameAndType        #46:#47       // \"<init>\":()V\n-   #78 = Utf8               dev/langchain4j/data/document/Metadata\n-   #79 = Utf8               foo\n-   #80 = NameAndType        #123:#124     // get:(Ljava/lang/String;)Ljava/lang/String;\n-   #81 = NameAndType        #125:#126     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #82 = Class              #127          // org/assertj/core/api/AbstractStringAssert\n-   #83 = NameAndType        #128:#47      // isNull:()V\n-   #84 = Utf8               bar\n-   #85 = NameAndType        #129:#130     // add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-   #86 = NameAndType        #131:#126     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #87 = Utf8               xyz\n-   #88 = Class              #132          // java/lang/Integer\n-   #89 = NameAndType        #133:#134     // valueOf:(I)Ljava/lang/Integer;\n-   #90 = NameAndType        #129:#135     // add:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/data/document/Metadata;\n-   #91 = Utf8               2\n-   #92 = Utf8               java/util/HashMap\n-   #93 = Class              #136          // java/util/Map\n-   #94 = NameAndType        #137:#138     // put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-   #95 = NameAndType        #46:#139      // \"<init>\":(Ljava/util/Map;)V\n-   #96 = Utf8               baz\n-   #97 = Utf8               qux\n-   #98 = NameAndType        #140:#141     // asMap:()Ljava/util/Map;\n-   #99 = NameAndType        #125:#142     // assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n-  #100 = Class              #143          // org/assertj/core/api/MapAssert\n-  #101 = NameAndType        #131:#144     // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n-  #102 = NameAndType        #145:#146     // toString:()Ljava/lang/String;\n-  #103 = Utf8               Metadata { metadata = {foo=bar, baz=qux} }\n-  #104 = Utf8               different\n-  #105 = Utf8               value\n-  #106 = NameAndType        #125:#147     // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #107 = NameAndType        #148:#149     // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #108 = Utf8               org/assertj/core/api/ObjectAssert\n-  #109 = Utf8               java/lang/Object\n-  #110 = NameAndType        #131:#149     // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #111 = NameAndType        #150:#149     // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #112 = NameAndType        #151:#149     // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #113 = NameAndType        #152:#153     // copy:()Ldev/langchain4j/data/document/Metadata;\n-  #114 = NameAndType        #154:#155     // from:(Ljava/util/Map;)Ldev/langchain4j/data/document/Metadata;\n-  #115 = NameAndType        #154:#130     // from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-  #116 = NameAndType        #156:#130     // metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-  #117 = NameAndType        #154:#135     // from:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/data/document/Metadata;\n-  #118 = NameAndType        #156:#135     // metadata:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/data/document/Metadata;\n-  #119 = NameAndType        #157:#158     // remove:(Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-  #120 = NameAndType        #159:#149     // isSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #121 = Utf8               dev/langchain4j/data/document/MetadataTest\n-  #122 = Utf8               org/assertj/core/api/WithAssertions\n-  #123 = Utf8               get\n-  #124 = Utf8               (Ljava/lang/String;)Ljava/lang/String;\n-  #125 = Utf8               assertThat\n-  #126 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #127 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #128 = Utf8               isNull\n-  #129 = Utf8               add\n-  #130 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-  #131 = Utf8               isEqualTo\n-  #132 = Utf8               java/lang/Integer\n-  #133 = Utf8               valueOf\n-  #134 = Utf8               (I)Ljava/lang/Integer;\n-  #135 = Utf8               (Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/data/document/Metadata;\n-  #136 = Utf8               java/util/Map\n-  #137 = Utf8               put\n-  #138 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-  #139 = Utf8               (Ljava/util/Map;)V\n-  #140 = Utf8               asMap\n-  #141 = Utf8               ()Ljava/util/Map;\n-  #142 = Utf8               (Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n-  #143 = Utf8               org/assertj/core/api/MapAssert\n-  #144 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n-  #145 = Utf8               toString\n-  #146 = Utf8               ()Ljava/lang/String;\n-  #147 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #148 = Utf8               isNotEqualTo\n-  #149 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #150 = Utf8               hasSameHashCodeAs\n-  #151 = Utf8               doesNotHaveSameHashCodeAs\n-  #152 = Utf8               copy\n-  #153 = Utf8               ()Ldev/langchain4j/data/document/Metadata;\n-  #154 = Utf8               from\n-  #155 = Utf8               (Ljava/util/Map;)Ldev/langchain4j/data/document/Metadata;\n-  #156 = Utf8               metadata\n-  #157 = Utf8               remove\n-  #158 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-  #159 = Utf8               isSameAs\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Class              #8            // dev/langchain4j/data/document/Metadata\n+    #8 = Utf8               dev/langchain4j/data/document/Metadata\n+    #9 = Methodref          #7.#3         // dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+   #10 = String             #11           // foo\n+   #11 = Utf8               foo\n+   #12 = Methodref          #7.#13        // dev/langchain4j/data/document/Metadata.get:(Ljava/lang/String;)Ljava/lang/String;\n+   #13 = NameAndType        #14:#15       // get:(Ljava/lang/String;)Ljava/lang/String;\n+   #14 = Utf8               get\n+   #15 = Utf8               (Ljava/lang/String;)Ljava/lang/String;\n+   #16 = Methodref          #17.#18       // dev/langchain4j/data/document/MetadataTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #17 = Class              #19           // dev/langchain4j/data/document/MetadataTest\n+   #18 = NameAndType        #20:#21       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #19 = Utf8               dev/langchain4j/data/document/MetadataTest\n+   #20 = Utf8               assertThat\n+   #21 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #22 = Methodref          #23.#24       // org/assertj/core/api/AbstractStringAssert.isNull:()V\n+   #23 = Class              #25           // org/assertj/core/api/AbstractStringAssert\n+   #24 = NameAndType        #26:#6        // isNull:()V\n+   #25 = Utf8               org/assertj/core/api/AbstractStringAssert\n+   #26 = Utf8               isNull\n+   #27 = String             #28           // bar\n+   #28 = Utf8               bar\n+   #29 = Methodref          #7.#30        // dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+   #30 = NameAndType        #31:#32       // add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+   #31 = Utf8               add\n+   #32 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+   #33 = Methodref          #23.#34       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #34 = NameAndType        #35:#21       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #35 = Utf8               isEqualTo\n+   #36 = String             #37           // xyz\n+   #37 = Utf8               xyz\n+   #38 = Methodref          #39.#40       // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+   #39 = Class              #41           // java/lang/Integer\n+   #40 = NameAndType        #42:#43       // valueOf:(I)Ljava/lang/Integer;\n+   #41 = Utf8               java/lang/Integer\n+   #42 = Utf8               valueOf\n+   #43 = Utf8               (I)Ljava/lang/Integer;\n+   #44 = Methodref          #7.#45        // dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/data/document/Metadata;\n+   #45 = NameAndType        #31:#46       // add:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/data/document/Metadata;\n+   #46 = Utf8               (Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/data/document/Metadata;\n+   #47 = String             #48           // 2\n+   #48 = Utf8               2\n+   #49 = Class              #50           // java/util/HashMap\n+   #50 = Utf8               java/util/HashMap\n+   #51 = Methodref          #49.#3        // java/util/HashMap.\"<init>\":()V\n+   #52 = InterfaceMethodref #53.#54       // java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+   #53 = Class              #55           // java/util/Map\n+   #54 = NameAndType        #56:#57       // put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+   #55 = Utf8               java/util/Map\n+   #56 = Utf8               put\n+   #57 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+   #58 = Methodref          #7.#59        // dev/langchain4j/data/document/Metadata.\"<init>\":(Ljava/util/Map;)V\n+   #59 = NameAndType        #5:#60        // \"<init>\":(Ljava/util/Map;)V\n+   #60 = Utf8               (Ljava/util/Map;)V\n+   #61 = Methodref          #49.#59       // java/util/HashMap.\"<init>\":(Ljava/util/Map;)V\n+   #62 = String             #63           // baz\n+   #63 = Utf8               baz\n+   #64 = String             #65           // qux\n+   #65 = Utf8               qux\n+   #66 = Methodref          #7.#67        // dev/langchain4j/data/document/Metadata.asMap:()Ljava/util/Map;\n+   #67 = NameAndType        #68:#69       // asMap:()Ljava/util/Map;\n+   #68 = Utf8               asMap\n+   #69 = Utf8               ()Ljava/util/Map;\n+   #70 = Methodref          #17.#71       // dev/langchain4j/data/document/MetadataTest.assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n+   #71 = NameAndType        #20:#72       // assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n+   #72 = Utf8               (Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n+   #73 = Methodref          #74.#75       // org/assertj/core/api/MapAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n+   #74 = Class              #76           // org/assertj/core/api/MapAssert\n+   #75 = NameAndType        #35:#77       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n+   #76 = Utf8               org/assertj/core/api/MapAssert\n+   #77 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n+   #78 = Methodref          #7.#79        // dev/langchain4j/data/document/Metadata.toString:()Ljava/lang/String;\n+   #79 = NameAndType        #80:#81       // toString:()Ljava/lang/String;\n+   #80 = Utf8               toString\n+   #81 = Utf8               ()Ljava/lang/String;\n+   #82 = String             #83           // Metadata { metadata = {foo=bar, baz=qux} }\n+   #83 = Utf8               Metadata { metadata = {foo=bar, baz=qux} }\n+   #84 = String             #85           // different\n+   #85 = Utf8               different\n+   #86 = String             #87           // value\n+   #87 = Utf8               value\n+   #88 = Methodref          #17.#89       // dev/langchain4j/data/document/MetadataTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #89 = NameAndType        #20:#90       // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #90 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #91 = Methodref          #92.#93       // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #92 = Class              #94           // org/assertj/core/api/ObjectAssert\n+   #93 = NameAndType        #95:#96       // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #94 = Utf8               org/assertj/core/api/ObjectAssert\n+   #95 = Utf8               isNotEqualTo\n+   #96 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #97 = Methodref          #92.#98       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #98 = NameAndType        #35:#96       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #99 = Methodref          #92.#100      // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #100 = NameAndType        #101:#96      // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #101 = Utf8               hasSameHashCodeAs\n+  #102 = Methodref          #92.#103      // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #103 = NameAndType        #104:#96      // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #104 = Utf8               doesNotHaveSameHashCodeAs\n+  #105 = Methodref          #7.#106       // dev/langchain4j/data/document/Metadata.copy:()Ldev/langchain4j/data/document/Metadata;\n+  #106 = NameAndType        #107:#108     // copy:()Ldev/langchain4j/data/document/Metadata;\n+  #107 = Utf8               copy\n+  #108 = Utf8               ()Ldev/langchain4j/data/document/Metadata;\n+  #109 = Methodref          #7.#110       // dev/langchain4j/data/document/Metadata.from:(Ljava/util/Map;)Ldev/langchain4j/data/document/Metadata;\n+  #110 = NameAndType        #111:#112     // from:(Ljava/util/Map;)Ldev/langchain4j/data/document/Metadata;\n+  #111 = Utf8               from\n+  #112 = Utf8               (Ljava/util/Map;)Ldev/langchain4j/data/document/Metadata;\n+  #113 = Methodref          #7.#114       // dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+  #114 = NameAndType        #111:#32      // from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+  #115 = Methodref          #7.#116       // dev/langchain4j/data/document/Metadata.metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+  #116 = NameAndType        #117:#32      // metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+  #117 = Utf8               metadata\n+  #118 = Methodref          #7.#119       // dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/data/document/Metadata;\n+  #119 = NameAndType        #111:#46      // from:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/data/document/Metadata;\n+  #120 = Methodref          #7.#121       // dev/langchain4j/data/document/Metadata.metadata:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/data/document/Metadata;\n+  #121 = NameAndType        #117:#46      // metadata:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/data/document/Metadata;\n+  #122 = Methodref          #7.#123       // dev/langchain4j/data/document/Metadata.remove:(Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+  #123 = NameAndType        #124:#125     // remove:(Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+  #124 = Utf8               remove\n+  #125 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+  #126 = Methodref          #92.#127      // org/assertj/core/api/ObjectAssert.isSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #127 = NameAndType        #128:#96      // isSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #128 = Utf8               isSameAs\n+  #129 = Class              #130          // org/assertj/core/api/WithAssertions\n+  #130 = Utf8               org/assertj/core/api/WithAssertions\n+  #131 = Utf8               Code\n+  #132 = Utf8               LineNumberTable\n+  #133 = Utf8               LocalVariableTable\n+  #134 = Utf8               this\n+  #135 = Utf8               Ldev/langchain4j/data/document/MetadataTest;\n+  #136 = Utf8               test_add_get_put\n+  #137 = Utf8               m\n+  #138 = Utf8               Ldev/langchain4j/data/document/Metadata;\n+  #139 = Utf8               RuntimeVisibleAnnotations\n+  #140 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #141 = Utf8               test_map_constructor_copies\n+  #142 = Utf8               source\n+  #143 = Utf8               Ljava/util/Map;\n+  #144 = Utf8               sourceCopy\n+  #145 = Utf8               LocalVariableTypeTable\n+  #146 = Utf8               Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;\n+  #147 = Utf8               test_toString\n+  #148 = Utf8               test_equals_hash\n+  #149 = Utf8               m1\n+  #150 = Utf8               m2\n+  #151 = Utf8               m3\n+  #152 = Utf8               m4\n+  #153 = Utf8               test_copy\n+  #154 = Utf8               test_builders\n+  #155 = Utf8               emptyMap\n+  #156 = Utf8               map\n+  #157 = Utf8               test_remove\n+  #158 = Utf8               SourceFile\n+  #159 = Utf8               MetadataTest.java\n {\n   dev.langchain4j.data.document.MetadataTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -183,50 +183,50 @@\n             0       5     0  this   Ldev/langchain4j/data/document/MetadataTest;\n \n   public void test_add_get_put();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=2, args_size=1\n-         0: new           #2                  // class dev/langchain4j/data/document/Metadata\n+         0: new           #7                  // class dev/langchain4j/data/document/Metadata\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n          7: astore_1\n          8: aload_0\n          9: aload_1\n-        10: ldc           #4                  // String foo\n-        12: invokevirtual #5                  // Method dev/langchain4j/data/document/Metadata.get:(Ljava/lang/String;)Ljava/lang/String;\n-        15: invokevirtual #6                  // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        18: invokevirtual #7                  // Method org/assertj/core/api/AbstractStringAssert.isNull:()V\n+        10: ldc           #10                 // String foo\n+        12: invokevirtual #12                 // Method dev/langchain4j/data/document/Metadata.get:(Ljava/lang/String;)Ljava/lang/String;\n+        15: invokevirtual #16                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        18: invokevirtual #22                 // Method org/assertj/core/api/AbstractStringAssert.isNull:()V\n         21: aload_1\n-        22: ldc           #4                  // String foo\n-        24: ldc           #8                  // String bar\n-        26: invokevirtual #9                  // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        22: ldc           #10                 // String foo\n+        24: ldc           #27                 // String bar\n+        26: invokevirtual #29                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n         29: pop\n         30: aload_0\n         31: aload_1\n-        32: ldc           #4                  // String foo\n-        34: invokevirtual #5                  // Method dev/langchain4j/data/document/Metadata.get:(Ljava/lang/String;)Ljava/lang/String;\n-        37: invokevirtual #6                  // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        40: ldc           #8                  // String bar\n-        42: invokevirtual #10                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        32: ldc           #10                 // String foo\n+        34: invokevirtual #12                 // Method dev/langchain4j/data/document/Metadata.get:(Ljava/lang/String;)Ljava/lang/String;\n+        37: invokevirtual #16                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        40: ldc           #27                 // String bar\n+        42: invokevirtual #33                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         45: pop\n         46: aload_1\n-        47: ldc           #11                 // String xyz\n+        47: ldc           #36                 // String xyz\n         49: iconst_2\n-        50: invokestatic  #12                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-        53: invokevirtual #13                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/data/document/Metadata;\n+        50: invokestatic  #38                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        53: invokevirtual #44                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/data/document/Metadata;\n         56: pop\n         57: aload_0\n         58: aload_1\n-        59: ldc           #11                 // String xyz\n-        61: invokevirtual #5                  // Method dev/langchain4j/data/document/Metadata.get:(Ljava/lang/String;)Ljava/lang/String;\n-        64: invokevirtual #6                  // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        67: ldc           #14                 // String 2\n-        69: invokevirtual #10                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        59: ldc           #36                 // String xyz\n+        61: invokevirtual #12                 // Method dev/langchain4j/data/document/Metadata.get:(Ljava/lang/String;)Ljava/lang/String;\n+        64: invokevirtual #16                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        67: ldc           #47                 // String 2\n+        69: invokevirtual #33                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         72: pop\n         73: return\n       LineNumberTable:\n         line 12: 0\n         line 14: 8\n         line 15: 21\n         line 16: 30\n@@ -234,52 +234,52 @@\n         line 19: 57\n         line 20: 73\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      74     0  this   Ldev/langchain4j/data/document/MetadataTest;\n             8      66     1     m   Ldev/langchain4j/data/document/Metadata;\n     RuntimeVisibleAnnotations:\n-      0: #57()\n+      0: #140()\n         org.junit.jupiter.api.Test\n \n   public void test_map_constructor_copies();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=4, args_size=1\n-         0: new           #15                 // class java/util/HashMap\n+         0: new           #49                 // class java/util/HashMap\n          3: dup\n-         4: invokespecial #16                 // Method java/util/HashMap.\"<init>\":()V\n+         4: invokespecial #51                 // Method java/util/HashMap.\"<init>\":()V\n          7: astore_1\n          8: aload_1\n-         9: ldc           #4                  // String foo\n-        11: ldc           #8                  // String bar\n-        13: invokeinterface #17,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+         9: ldc           #10                 // String foo\n+        11: ldc           #27                 // String bar\n+        13: invokeinterface #52,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n         18: pop\n-        19: new           #2                  // class dev/langchain4j/data/document/Metadata\n+        19: new           #7                  // class dev/langchain4j/data/document/Metadata\n         22: dup\n         23: aload_1\n-        24: invokespecial #18                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":(Ljava/util/Map;)V\n+        24: invokespecial #58                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":(Ljava/util/Map;)V\n         27: astore_2\n-        28: new           #15                 // class java/util/HashMap\n+        28: new           #49                 // class java/util/HashMap\n         31: dup\n         32: aload_1\n-        33: invokespecial #19                 // Method java/util/HashMap.\"<init>\":(Ljava/util/Map;)V\n+        33: invokespecial #61                 // Method java/util/HashMap.\"<init>\":(Ljava/util/Map;)V\n         36: astore_3\n         37: aload_1\n-        38: ldc           #20                 // String baz\n-        40: ldc           #21                 // String qux\n-        42: invokeinterface #17,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+        38: ldc           #62                 // String baz\n+        40: ldc           #64                 // String qux\n+        42: invokeinterface #52,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n         47: pop\n         48: aload_0\n         49: aload_2\n-        50: invokevirtual #22                 // Method dev/langchain4j/data/document/Metadata.asMap:()Ljava/util/Map;\n-        53: invokevirtual #23                 // Method assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n+        50: invokevirtual #66                 // Method dev/langchain4j/data/document/Metadata.asMap:()Ljava/util/Map;\n+        53: invokevirtual #70                 // Method assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n         56: aload_3\n-        57: invokevirtual #24                 // Method org/assertj/core/api/MapAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n+        57: invokevirtual #73                 // Method org/assertj/core/api/MapAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n         60: pop\n         61: return\n       LineNumberTable:\n         line 24: 0\n         line 25: 8\n         line 27: 19\n         line 28: 28\n@@ -293,133 +293,133 @@\n            28      34     2     m   Ldev/langchain4j/data/document/Metadata;\n            37      25     3 sourceCopy   Ljava/util/Map;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             8      54     1 source   Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;\n            37      25     3 sourceCopy   Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;\n     RuntimeVisibleAnnotations:\n-      0: #57()\n+      0: #140()\n         org.junit.jupiter.api.Test\n \n   public void test_toString();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=2, args_size=1\n-         0: new           #2                  // class dev/langchain4j/data/document/Metadata\n+         0: new           #7                  // class dev/langchain4j/data/document/Metadata\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n          7: astore_1\n          8: aload_1\n-         9: ldc           #4                  // String foo\n-        11: ldc           #8                  // String bar\n-        13: invokevirtual #9                  // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+         9: ldc           #10                 // String foo\n+        11: ldc           #27                 // String bar\n+        13: invokevirtual #29                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n         16: pop\n         17: aload_1\n-        18: ldc           #20                 // String baz\n-        20: ldc           #21                 // String qux\n-        22: invokevirtual #9                  // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        18: ldc           #62                 // String baz\n+        20: ldc           #64                 // String qux\n+        22: invokevirtual #29                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n         25: pop\n         26: aload_0\n         27: aload_1\n-        28: invokevirtual #25                 // Method dev/langchain4j/data/document/Metadata.toString:()Ljava/lang/String;\n-        31: invokevirtual #6                  // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        34: ldc           #26                 // String Metadata { metadata = {foo=bar, baz=qux} }\n-        36: invokevirtual #10                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        28: invokevirtual #78                 // Method dev/langchain4j/data/document/Metadata.toString:()Ljava/lang/String;\n+        31: invokevirtual #16                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        34: ldc           #82                 // String Metadata { metadata = {foo=bar, baz=qux} }\n+        36: invokevirtual #33                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         39: pop\n         40: return\n       LineNumberTable:\n         line 36: 0\n         line 37: 8\n         line 38: 17\n         line 39: 26\n         line 40: 40\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      41     0  this   Ldev/langchain4j/data/document/MetadataTest;\n             8      33     1     m   Ldev/langchain4j/data/document/Metadata;\n     RuntimeVisibleAnnotations:\n-      0: #57()\n+      0: #140()\n         org.junit.jupiter.api.Test\n \n   public void test_equals_hash();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=5, args_size=1\n-         0: new           #2                  // class dev/langchain4j/data/document/Metadata\n+         0: new           #7                  // class dev/langchain4j/data/document/Metadata\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n          7: astore_1\n-         8: new           #2                  // class dev/langchain4j/data/document/Metadata\n+         8: new           #7                  // class dev/langchain4j/data/document/Metadata\n         11: dup\n-        12: invokespecial #3                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+        12: invokespecial #9                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n         15: astore_2\n         16: aload_1\n-        17: ldc           #4                  // String foo\n-        19: ldc           #8                  // String bar\n-        21: invokevirtual #9                  // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        17: ldc           #10                 // String foo\n+        19: ldc           #27                 // String bar\n+        21: invokevirtual #29                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n         24: pop\n         25: aload_2\n-        26: ldc           #4                  // String foo\n-        28: ldc           #8                  // String bar\n-        30: invokevirtual #9                  // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        26: ldc           #10                 // String foo\n+        28: ldc           #27                 // String bar\n+        30: invokevirtual #29                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n         33: pop\n-        34: new           #2                  // class dev/langchain4j/data/document/Metadata\n+        34: new           #7                  // class dev/langchain4j/data/document/Metadata\n         37: dup\n-        38: invokespecial #3                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+        38: invokespecial #9                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n         41: astore_3\n-        42: new           #2                  // class dev/langchain4j/data/document/Metadata\n+        42: new           #7                  // class dev/langchain4j/data/document/Metadata\n         45: dup\n-        46: invokespecial #3                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+        46: invokespecial #9                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n         49: astore        4\n         51: aload_3\n-        52: ldc           #27                 // String different\n-        54: ldc           #28                 // String value\n-        56: invokevirtual #9                  // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        52: ldc           #84                 // String different\n+        54: ldc           #86                 // String value\n+        56: invokevirtual #29                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n         59: pop\n         60: aload         4\n-        62: ldc           #27                 // String different\n-        64: ldc           #28                 // String value\n-        66: invokevirtual #9                  // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        62: ldc           #84                 // String different\n+        64: ldc           #86                 // String value\n+        66: invokevirtual #29                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n         69: pop\n         70: aload_0\n         71: aload_1\n-        72: invokevirtual #29                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        72: invokevirtual #88                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         75: aconst_null\n-        76: invokevirtual #30                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        79: checkcast     #31                 // class org/assertj/core/api/ObjectAssert\n-        82: new           #32                 // class java/lang/Object\n+        76: invokevirtual #91                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        79: checkcast     #92                 // class org/assertj/core/api/ObjectAssert\n+        82: new           #2                  // class java/lang/Object\n         85: dup\n         86: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n-        89: invokevirtual #30                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        92: checkcast     #31                 // class org/assertj/core/api/ObjectAssert\n+        89: invokevirtual #91                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        92: checkcast     #92                 // class org/assertj/core/api/ObjectAssert\n         95: aload_2\n-        96: invokevirtual #33                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        99: checkcast     #31                 // class org/assertj/core/api/ObjectAssert\n+        96: invokevirtual #97                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        99: checkcast     #92                 // class org/assertj/core/api/ObjectAssert\n        102: aload_2\n-       103: invokevirtual #34                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       103: invokevirtual #99                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        106: pop\n        107: aload_0\n        108: aload_1\n-       109: invokevirtual #29                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       109: invokevirtual #88                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        112: aload_3\n-       113: invokevirtual #30                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       116: checkcast     #31                 // class org/assertj/core/api/ObjectAssert\n+       113: invokevirtual #91                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       116: checkcast     #92                 // class org/assertj/core/api/ObjectAssert\n        119: aload_3\n-       120: invokevirtual #35                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       120: invokevirtual #102                // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        123: pop\n        124: aload_0\n        125: aload_3\n-       126: invokevirtual #29                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       126: invokevirtual #88                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        129: aload         4\n-       131: invokevirtual #33                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       134: checkcast     #31                 // class org/assertj/core/api/ObjectAssert\n+       131: invokevirtual #97                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       134: checkcast     #92                 // class org/assertj/core/api/ObjectAssert\n        137: aload         4\n-       139: invokevirtual #34                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       139: invokevirtual #99                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        142: pop\n        143: return\n       LineNumberTable:\n         line 44: 0\n         line 45: 8\n         line 46: 16\n         line 47: 25\n@@ -443,50 +443,50 @@\n         Start  Length  Slot  Name   Signature\n             0     144     0  this   Ldev/langchain4j/data/document/MetadataTest;\n             8     136     1    m1   Ldev/langchain4j/data/document/Metadata;\n            16     128     2    m2   Ldev/langchain4j/data/document/Metadata;\n            42     102     3    m3   Ldev/langchain4j/data/document/Metadata;\n            51      93     4    m4   Ldev/langchain4j/data/document/Metadata;\n     RuntimeVisibleAnnotations:\n-      0: #57()\n+      0: #140()\n         org.junit.jupiter.api.Test\n \n   public void test_copy();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=3, args_size=1\n-         0: new           #2                  // class dev/langchain4j/data/document/Metadata\n+         0: new           #7                  // class dev/langchain4j/data/document/Metadata\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n          7: astore_1\n          8: aload_1\n-         9: ldc           #4                  // String foo\n-        11: ldc           #8                  // String bar\n-        13: invokevirtual #9                  // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+         9: ldc           #10                 // String foo\n+        11: ldc           #27                 // String bar\n+        13: invokevirtual #29                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n         16: pop\n         17: aload_1\n-        18: invokevirtual #36                 // Method dev/langchain4j/data/document/Metadata.copy:()Ldev/langchain4j/data/document/Metadata;\n+        18: invokevirtual #105                // Method dev/langchain4j/data/document/Metadata.copy:()Ldev/langchain4j/data/document/Metadata;\n         21: astore_2\n         22: aload_0\n         23: aload_1\n-        24: invokevirtual #29                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        24: invokevirtual #88                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         27: aload_2\n-        28: invokevirtual #33                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        28: invokevirtual #97                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         31: pop\n         32: aload_1\n-        33: ldc           #4                  // String foo\n-        35: ldc           #20                 // String baz\n-        37: invokevirtual #9                  // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        33: ldc           #10                 // String foo\n+        35: ldc           #62                 // String baz\n+        37: invokevirtual #29                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n         40: pop\n         41: aload_0\n         42: aload_1\n-        43: invokevirtual #29                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        43: invokevirtual #88                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         46: aload_2\n-        47: invokevirtual #30                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        47: invokevirtual #91                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         50: pop\n         51: return\n       LineNumberTable:\n         line 71: 0\n         line 72: 8\n         line 73: 17\n         line 74: 22\n@@ -495,119 +495,119 @@\n         line 77: 51\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      52     0  this   Ldev/langchain4j/data/document/MetadataTest;\n             8      44     1    m1   Ldev/langchain4j/data/document/Metadata;\n            22      30     2    m2   Ldev/langchain4j/data/document/Metadata;\n     RuntimeVisibleAnnotations:\n-      0: #57()\n+      0: #140()\n         org.junit.jupiter.api.Test\n \n   public void test_builders();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=4, locals=3, args_size=1\n-         0: new           #15                 // class java/util/HashMap\n+         0: new           #49                 // class java/util/HashMap\n          3: dup\n-         4: invokespecial #16                 // Method java/util/HashMap.\"<init>\":()V\n+         4: invokespecial #51                 // Method java/util/HashMap.\"<init>\":()V\n          7: astore_1\n-         8: new           #15                 // class java/util/HashMap\n+         8: new           #49                 // class java/util/HashMap\n         11: dup\n-        12: invokespecial #16                 // Method java/util/HashMap.\"<init>\":()V\n+        12: invokespecial #51                 // Method java/util/HashMap.\"<init>\":()V\n         15: astore_2\n         16: aload_2\n-        17: ldc           #4                  // String foo\n-        19: ldc           #8                  // String bar\n-        21: invokeinterface #17,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+        17: ldc           #10                 // String foo\n+        19: ldc           #27                 // String bar\n+        21: invokeinterface #52,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n         26: pop\n         27: aload_2\n-        28: ldc           #20                 // String baz\n-        30: ldc           #21                 // String qux\n-        32: invokeinterface #17,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+        28: ldc           #62                 // String baz\n+        30: ldc           #64                 // String qux\n+        32: invokeinterface #52,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n         37: pop\n         38: aload_0\n-        39: new           #2                  // class dev/langchain4j/data/document/Metadata\n+        39: new           #7                  // class dev/langchain4j/data/document/Metadata\n         42: dup\n-        43: invokespecial #3                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n-        46: invokevirtual #29                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        49: new           #2                  // class dev/langchain4j/data/document/Metadata\n+        43: invokespecial #9                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+        46: invokevirtual #88                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        49: new           #7                  // class dev/langchain4j/data/document/Metadata\n         52: dup\n         53: aload_1\n-        54: invokespecial #18                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":(Ljava/util/Map;)V\n-        57: invokevirtual #33                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        54: invokespecial #58                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":(Ljava/util/Map;)V\n+        57: invokevirtual #97                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         60: pop\n         61: aload_0\n         62: aload_2\n-        63: invokestatic  #37                 // Method dev/langchain4j/data/document/Metadata.from:(Ljava/util/Map;)Ldev/langchain4j/data/document/Metadata;\n-        66: invokevirtual #29                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        69: new           #2                  // class dev/langchain4j/data/document/Metadata\n+        63: invokestatic  #109                // Method dev/langchain4j/data/document/Metadata.from:(Ljava/util/Map;)Ldev/langchain4j/data/document/Metadata;\n+        66: invokevirtual #88                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        69: new           #7                  // class dev/langchain4j/data/document/Metadata\n         72: dup\n-        73: invokespecial #3                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n-        76: ldc           #4                  // String foo\n-        78: ldc           #8                  // String bar\n-        80: invokevirtual #9                  // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-        83: ldc           #20                 // String baz\n-        85: ldc           #21                 // String qux\n-        87: invokevirtual #9                  // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-        90: invokevirtual #33                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        73: invokespecial #9                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+        76: ldc           #10                 // String foo\n+        78: ldc           #27                 // String bar\n+        80: invokevirtual #29                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        83: ldc           #62                 // String baz\n+        85: ldc           #64                 // String qux\n+        87: invokevirtual #29                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        90: invokevirtual #97                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         93: pop\n         94: aload_0\n-        95: ldc           #4                  // String foo\n-        97: ldc           #8                  // String bar\n-        99: invokestatic  #38                 // Method dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-       102: invokevirtual #29                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-       105: new           #2                  // class dev/langchain4j/data/document/Metadata\n+        95: ldc           #10                 // String foo\n+        97: ldc           #27                 // String bar\n+        99: invokestatic  #113                // Method dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+       102: invokevirtual #88                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       105: new           #7                  // class dev/langchain4j/data/document/Metadata\n        108: dup\n-       109: invokespecial #3                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n-       112: ldc           #4                  // String foo\n-       114: ldc           #8                  // String bar\n-       116: invokevirtual #9                  // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-       119: invokevirtual #33                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       109: invokespecial #9                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+       112: ldc           #10                 // String foo\n+       114: ldc           #27                 // String bar\n+       116: invokevirtual #29                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+       119: invokevirtual #97                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        122: pop\n        123: aload_0\n-       124: ldc           #4                  // String foo\n-       126: ldc           #8                  // String bar\n-       128: invokestatic  #39                 // Method dev/langchain4j/data/document/Metadata.metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-       131: invokevirtual #29                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-       134: new           #2                  // class dev/langchain4j/data/document/Metadata\n+       124: ldc           #10                 // String foo\n+       126: ldc           #27                 // String bar\n+       128: invokestatic  #115                // Method dev/langchain4j/data/document/Metadata.metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+       131: invokevirtual #88                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       134: new           #7                  // class dev/langchain4j/data/document/Metadata\n        137: dup\n-       138: invokespecial #3                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n-       141: ldc           #4                  // String foo\n-       143: ldc           #8                  // String bar\n-       145: invokevirtual #9                  // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-       148: invokevirtual #33                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       138: invokespecial #9                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+       141: ldc           #10                 // String foo\n+       143: ldc           #27                 // String bar\n+       145: invokevirtual #29                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+       148: invokevirtual #97                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        151: pop\n        152: aload_0\n-       153: ldc           #4                  // String foo\n+       153: ldc           #10                 // String foo\n        155: iconst_2\n-       156: invokestatic  #12                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-       159: invokestatic  #40                 // Method dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/data/document/Metadata;\n-       162: invokevirtual #29                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-       165: new           #2                  // class dev/langchain4j/data/document/Metadata\n+       156: invokestatic  #38                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       159: invokestatic  #118                // Method dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/data/document/Metadata;\n+       162: invokevirtual #88                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       165: new           #7                  // class dev/langchain4j/data/document/Metadata\n        168: dup\n-       169: invokespecial #3                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n-       172: ldc           #4                  // String foo\n-       174: ldc           #14                 // String 2\n-       176: invokevirtual #9                  // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-       179: invokevirtual #33                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       169: invokespecial #9                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+       172: ldc           #10                 // String foo\n+       174: ldc           #47                 // String 2\n+       176: invokevirtual #29                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+       179: invokevirtual #97                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        182: pop\n        183: aload_0\n-       184: ldc           #4                  // String foo\n+       184: ldc           #10                 // String foo\n        186: iconst_2\n-       187: invokestatic  #12                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-       190: invokestatic  #41                 // Method dev/langchain4j/data/document/Metadata.metadata:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/data/document/Metadata;\n-       193: invokevirtual #29                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-       196: new           #2                  // class dev/langchain4j/data/document/Metadata\n+       187: invokestatic  #38                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       190: invokestatic  #120                // Method dev/langchain4j/data/document/Metadata.metadata:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/data/document/Metadata;\n+       193: invokevirtual #88                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       196: new           #7                  // class dev/langchain4j/data/document/Metadata\n        199: dup\n-       200: invokespecial #3                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n-       203: ldc           #4                  // String foo\n-       205: ldc           #14                 // String 2\n-       207: invokevirtual #9                  // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-       210: invokevirtual #33                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       200: invokespecial #9                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+       203: ldc           #10                 // String foo\n+       205: ldc           #47                 // String 2\n+       207: invokevirtual #29                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+       210: invokevirtual #97                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        213: pop\n        214: return\n       LineNumberTable:\n         line 81: 0\n         line 82: 8\n         line 83: 16\n         line 84: 27\n@@ -630,65 +630,65 @@\n             8     207     1 emptyMap   Ljava/util/Map;\n            16     199     2   map   Ljava/util/Map;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             8     207     1 emptyMap   Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;\n            16     199     2   map   Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;\n     RuntimeVisibleAnnotations:\n-      0: #57()\n+      0: #140()\n         org.junit.jupiter.api.Test\n \n   public void test_remove();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=4, locals=2, args_size=1\n-         0: new           #2                  // class dev/langchain4j/data/document/Metadata\n+         0: new           #7                  // class dev/langchain4j/data/document/Metadata\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n          7: astore_1\n          8: aload_1\n-         9: ldc           #4                  // String foo\n-        11: ldc           #8                  // String bar\n-        13: invokevirtual #9                  // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+         9: ldc           #10                 // String foo\n+        11: ldc           #27                 // String bar\n+        13: invokevirtual #29                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n         16: pop\n         17: aload_1\n-        18: ldc           #20                 // String baz\n-        20: ldc           #21                 // String qux\n-        22: invokevirtual #9                  // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        18: ldc           #62                 // String baz\n+        20: ldc           #64                 // String qux\n+        22: invokevirtual #29                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n         25: pop\n         26: aload_0\n         27: aload_1\n-        28: ldc           #4                  // String foo\n-        30: invokevirtual #42                 // Method dev/langchain4j/data/document/Metadata.remove:(Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-        33: invokevirtual #29                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        28: ldc           #10                 // String foo\n+        30: invokevirtual #122                // Method dev/langchain4j/data/document/Metadata.remove:(Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        33: invokevirtual #88                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         36: aload_1\n-        37: invokevirtual #43                 // Method org/assertj/core/api/ObjectAssert.isSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        37: invokevirtual #126                // Method org/assertj/core/api/ObjectAssert.isSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         40: pop\n         41: aload_0\n         42: aload_1\n-        43: invokevirtual #29                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        46: new           #2                  // class dev/langchain4j/data/document/Metadata\n+        43: invokevirtual #88                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        46: new           #7                  // class dev/langchain4j/data/document/Metadata\n         49: dup\n-        50: invokespecial #3                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n-        53: ldc           #20                 // String baz\n-        55: ldc           #21                 // String qux\n-        57: invokevirtual #9                  // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-        60: invokevirtual #33                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        50: invokespecial #9                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+        53: ldc           #62                 // String baz\n+        55: ldc           #64                 // String qux\n+        57: invokevirtual #29                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        60: invokevirtual #97                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         63: pop\n         64: return\n       LineNumberTable:\n         line 106: 0\n         line 107: 8\n         line 108: 17\n         line 109: 26\n         line 110: 41\n         line 111: 64\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      65     0  this   Ldev/langchain4j/data/document/MetadataTest;\n             8      57     1    m1   Ldev/langchain4j/data/document/Metadata;\n     RuntimeVisibleAnnotations:\n-      0: #57()\n+      0: #140()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"MetadataTest.java\"\n"}]}, {"source1": "dev/langchain4j/data/embedding/EmbeddingTest.class", "source2": "dev/langchain4j/data/embedding/EmbeddingTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,143 +1,143 @@\n-  SHA-256 checksum 3c69085cbef47664a6667f2c6a1f95dd30f8b8a66058931bb606e9ef75ca215e\n+  SHA-256 checksum 6b025197a00a911755bb59d5d29763c956f657762ed5c5f185ec3c5aca6e09d8\n   Compiled from \"EmbeddingTest.java\"\n class dev.langchain4j.data.embedding.EmbeddingTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #36                         // dev/langchain4j/data/embedding/EmbeddingTest\n-  super_class: #9                         // java/lang/Object\n+  this_class: #14                         // dev/langchain4j/data/embedding/EmbeddingTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 5, attributes: 1\n Constant pool:\n-    #1 = Methodref          #9.#62        // java/lang/Object.\"<init>\":()V\n-    #2 = Class              #63           // dev/langchain4j/data/embedding/Embedding\n-    #3 = Float              3.0f\n-    #4 = Methodref          #2.#64        // dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n-    #5 = Methodref          #36.#65       // dev/langchain4j/data/embedding/EmbeddingTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-    #6 = Methodref          #7.#66        // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-    #7 = Class              #67           // org/assertj/core/api/ObjectAssert\n-    #8 = Methodref          #7.#68        // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-    #9 = Class              #69           // java/lang/Object\n-   #10 = Methodref          #7.#70        // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #11 = Float              99.0f\n-   #12 = Float              4.0f\n-   #13 = Methodref          #2.#71        // dev/langchain4j/data/embedding/Embedding.dimension:()I\n-   #14 = Methodref          #36.#72       // dev/langchain4j/data/embedding/EmbeddingTest.assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n-   #15 = Methodref          #73.#74       // org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n-   #16 = Methodref          #2.#75        // dev/langchain4j/data/embedding/Embedding.vector:()[F\n-   #17 = Methodref          #36.#76       // dev/langchain4j/data/embedding/EmbeddingTest.assertThat:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n-   #18 = Methodref          #77.#78       // org/assertj/core/api/AbstractFloatArrayAssert.containsExactly:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n-   #19 = Methodref          #2.#79        // dev/langchain4j/data/embedding/Embedding.vectorAsList:()Ljava/util/List;\n-   #20 = Methodref          #36.#80       // dev/langchain4j/data/embedding/EmbeddingTest.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-   #21 = Class              #81           // java/lang/Float\n-   #22 = Methodref          #21.#82       // java/lang/Float.valueOf:(F)Ljava/lang/Float;\n-   #23 = Methodref          #83.#84       // org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-   #24 = String             #85           // Embedding { vector = [1.0, 2.0, 3.0] }\n-   #25 = Methodref          #7.#86        // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-   #26 = Methodref          #2.#87        // dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n-   #27 = Class              #88           // java/util/ArrayList\n-   #28 = Methodref          #27.#62       // java/util/ArrayList.\"<init>\":()V\n-   #29 = InterfaceMethodref #89.#90       // java/util/List.add:(Ljava/lang/Object;)Z\n-   #30 = Methodref          #2.#91        // dev/langchain4j/data/embedding/Embedding.from:(Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n-   #31 = Float              6.0f\n-   #32 = Float              8.0f\n-   #33 = Methodref          #2.#92        // dev/langchain4j/data/embedding/Embedding.normalize:()V\n-   #34 = Float              0.6f\n-   #35 = Float              0.8f\n-   #36 = Class              #93           // dev/langchain4j/data/embedding/EmbeddingTest\n-   #37 = Class              #94           // org/assertj/core/api/WithAssertions\n-   #38 = Utf8               <init>\n-   #39 = Utf8               ()V\n-   #40 = Utf8               Code\n-   #41 = Utf8               LineNumberTable\n-   #42 = Utf8               LocalVariableTable\n-   #43 = Utf8               this\n-   #44 = Utf8               Ldev/langchain4j/data/embedding/EmbeddingTest;\n-   #45 = Utf8               test_equals_hash\n-   #46 = Utf8               e1\n-   #47 = Utf8               Ldev/langchain4j/data/embedding/Embedding;\n-   #48 = Utf8               e2\n-   #49 = Utf8               RuntimeVisibleAnnotations\n-   #50 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #51 = Utf8               test_accessors\n-   #52 = Utf8               test_from\n-   #53 = Utf8               list\n-   #54 = Utf8               Ljava/util/List;\n-   #55 = Utf8               LocalVariableTypeTable\n-   #56 = Utf8               Ljava/util/List<Ljava/lang/Float;>;\n-   #57 = Utf8               test_normalize\n-   #58 = Utf8               embedding\n-   #59 = Utf8               expect\n-   #60 = Utf8               SourceFile\n-   #61 = Utf8               EmbeddingTest.java\n-   #62 = NameAndType        #38:#39       // \"<init>\":()V\n-   #63 = Utf8               dev/langchain4j/data/embedding/Embedding\n-   #64 = NameAndType        #38:#95       // \"<init>\":([F)V\n-   #65 = NameAndType        #96:#97       // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #66 = NameAndType        #98:#99       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #67 = Utf8               org/assertj/core/api/ObjectAssert\n-   #68 = NameAndType        #100:#99      // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #69 = Utf8               java/lang/Object\n-   #70 = NameAndType        #101:#99      // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #71 = NameAndType        #102:#103     // dimension:()I\n-   #72 = NameAndType        #96:#104      // assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n-   #73 = Class              #105          // org/assertj/core/api/AbstractIntegerAssert\n-   #74 = NameAndType        #98:#104      // isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n-   #75 = NameAndType        #106:#107     // vector:()[F\n-   #76 = NameAndType        #96:#108      // assertThat:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n-   #77 = Class              #109          // org/assertj/core/api/AbstractFloatArrayAssert\n-   #78 = NameAndType        #110:#108     // containsExactly:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n-   #79 = NameAndType        #111:#112     // vectorAsList:()Ljava/util/List;\n-   #80 = NameAndType        #96:#113      // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-   #81 = Utf8               java/lang/Float\n-   #82 = NameAndType        #114:#115     // valueOf:(F)Ljava/lang/Float;\n-   #83 = Class              #116          // org/assertj/core/api/ListAssert\n-   #84 = NameAndType        #110:#117     // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-   #85 = Utf8               Embedding { vector = [1.0, 2.0, 3.0] }\n-   #86 = NameAndType        #118:#119     // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-   #87 = NameAndType        #120:#121     // from:([F)Ldev/langchain4j/data/embedding/Embedding;\n-   #88 = Utf8               java/util/ArrayList\n-   #89 = Class              #122          // java/util/List\n-   #90 = NameAndType        #123:#124     // add:(Ljava/lang/Object;)Z\n-   #91 = NameAndType        #120:#125     // from:(Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n-   #92 = NameAndType        #126:#39      // normalize:()V\n-   #93 = Utf8               dev/langchain4j/data/embedding/EmbeddingTest\n-   #94 = Utf8               org/assertj/core/api/WithAssertions\n-   #95 = Utf8               ([F)V\n-   #96 = Utf8               assertThat\n-   #97 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #98 = Utf8               isEqualTo\n-   #99 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #100 = Utf8               isNotEqualTo\n-  #101 = Utf8               hasSameHashCodeAs\n-  #102 = Utf8               dimension\n-  #103 = Utf8               ()I\n-  #104 = Utf8               (I)Lorg/assertj/core/api/AbstractIntegerAssert;\n-  #105 = Utf8               org/assertj/core/api/AbstractIntegerAssert\n-  #106 = Utf8               vector\n-  #107 = Utf8               ()[F\n-  #108 = Utf8               ([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n-  #109 = Utf8               org/assertj/core/api/AbstractFloatArrayAssert\n-  #110 = Utf8               containsExactly\n-  #111 = Utf8               vectorAsList\n-  #112 = Utf8               ()Ljava/util/List;\n-  #113 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #114 = Utf8               valueOf\n-  #115 = Utf8               (F)Ljava/lang/Float;\n-  #116 = Utf8               org/assertj/core/api/ListAssert\n-  #117 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #118 = Utf8               hasToString\n-  #119 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-  #120 = Utf8               from\n-  #121 = Utf8               ([F)Ldev/langchain4j/data/embedding/Embedding;\n-  #122 = Utf8               java/util/List\n-  #123 = Utf8               add\n-  #124 = Utf8               (Ljava/lang/Object;)Z\n-  #125 = Utf8               (Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n-  #126 = Utf8               normalize\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Class              #8            // dev/langchain4j/data/embedding/Embedding\n+    #8 = Utf8               dev/langchain4j/data/embedding/Embedding\n+    #9 = Float              3.0f\n+   #10 = Methodref          #7.#11        // dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n+   #11 = NameAndType        #5:#12        // \"<init>\":([F)V\n+   #12 = Utf8               ([F)V\n+   #13 = Methodref          #14.#15       // dev/langchain4j/data/embedding/EmbeddingTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #14 = Class              #16           // dev/langchain4j/data/embedding/EmbeddingTest\n+   #15 = NameAndType        #17:#18       // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #16 = Utf8               dev/langchain4j/data/embedding/EmbeddingTest\n+   #17 = Utf8               assertThat\n+   #18 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #19 = Methodref          #20.#21       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #20 = Class              #22           // org/assertj/core/api/ObjectAssert\n+   #21 = NameAndType        #23:#24       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #22 = Utf8               org/assertj/core/api/ObjectAssert\n+   #23 = Utf8               isEqualTo\n+   #24 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #25 = Methodref          #20.#26       // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #26 = NameAndType        #27:#24       // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #27 = Utf8               isNotEqualTo\n+   #28 = Methodref          #20.#29       // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #29 = NameAndType        #30:#24       // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #30 = Utf8               hasSameHashCodeAs\n+   #31 = Float              99.0f\n+   #32 = Float              4.0f\n+   #33 = Methodref          #7.#34        // dev/langchain4j/data/embedding/Embedding.dimension:()I\n+   #34 = NameAndType        #35:#36       // dimension:()I\n+   #35 = Utf8               dimension\n+   #36 = Utf8               ()I\n+   #37 = Methodref          #14.#38       // dev/langchain4j/data/embedding/EmbeddingTest.assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+   #38 = NameAndType        #17:#39       // assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+   #39 = Utf8               (I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+   #40 = Methodref          #41.#42       // org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+   #41 = Class              #43           // org/assertj/core/api/AbstractIntegerAssert\n+   #42 = NameAndType        #23:#39       // isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+   #43 = Utf8               org/assertj/core/api/AbstractIntegerAssert\n+   #44 = Methodref          #7.#45        // dev/langchain4j/data/embedding/Embedding.vector:()[F\n+   #45 = NameAndType        #46:#47       // vector:()[F\n+   #46 = Utf8               vector\n+   #47 = Utf8               ()[F\n+   #48 = Methodref          #14.#49       // dev/langchain4j/data/embedding/EmbeddingTest.assertThat:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n+   #49 = NameAndType        #17:#50       // assertThat:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n+   #50 = Utf8               ([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n+   #51 = Methodref          #52.#53       // org/assertj/core/api/AbstractFloatArrayAssert.containsExactly:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n+   #52 = Class              #54           // org/assertj/core/api/AbstractFloatArrayAssert\n+   #53 = NameAndType        #55:#50       // containsExactly:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n+   #54 = Utf8               org/assertj/core/api/AbstractFloatArrayAssert\n+   #55 = Utf8               containsExactly\n+   #56 = Methodref          #7.#57        // dev/langchain4j/data/embedding/Embedding.vectorAsList:()Ljava/util/List;\n+   #57 = NameAndType        #58:#59       // vectorAsList:()Ljava/util/List;\n+   #58 = Utf8               vectorAsList\n+   #59 = Utf8               ()Ljava/util/List;\n+   #60 = Methodref          #14.#61       // dev/langchain4j/data/embedding/EmbeddingTest.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+   #61 = NameAndType        #17:#62       // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+   #62 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+   #63 = Class              #64           // java/lang/Float\n+   #64 = Utf8               java/lang/Float\n+   #65 = Methodref          #63.#66       // java/lang/Float.valueOf:(F)Ljava/lang/Float;\n+   #66 = NameAndType        #67:#68       // valueOf:(F)Ljava/lang/Float;\n+   #67 = Utf8               valueOf\n+   #68 = Utf8               (F)Ljava/lang/Float;\n+   #69 = Methodref          #70.#71       // org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #70 = Class              #72           // org/assertj/core/api/ListAssert\n+   #71 = NameAndType        #55:#73       // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #72 = Utf8               org/assertj/core/api/ListAssert\n+   #73 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #74 = String             #75           // Embedding { vector = [1.0, 2.0, 3.0] }\n+   #75 = Utf8               Embedding { vector = [1.0, 2.0, 3.0] }\n+   #76 = Methodref          #20.#77       // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #77 = NameAndType        #78:#79       // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #78 = Utf8               hasToString\n+   #79 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #80 = Methodref          #7.#81        // dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n+   #81 = NameAndType        #82:#83       // from:([F)Ldev/langchain4j/data/embedding/Embedding;\n+   #82 = Utf8               from\n+   #83 = Utf8               ([F)Ldev/langchain4j/data/embedding/Embedding;\n+   #84 = Class              #85           // java/util/ArrayList\n+   #85 = Utf8               java/util/ArrayList\n+   #86 = Methodref          #84.#3        // java/util/ArrayList.\"<init>\":()V\n+   #87 = InterfaceMethodref #88.#89       // java/util/List.add:(Ljava/lang/Object;)Z\n+   #88 = Class              #90           // java/util/List\n+   #89 = NameAndType        #91:#92       // add:(Ljava/lang/Object;)Z\n+   #90 = Utf8               java/util/List\n+   #91 = Utf8               add\n+   #92 = Utf8               (Ljava/lang/Object;)Z\n+   #93 = Methodref          #7.#94        // dev/langchain4j/data/embedding/Embedding.from:(Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n+   #94 = NameAndType        #82:#95       // from:(Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n+   #95 = Utf8               (Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n+   #96 = Float              6.0f\n+   #97 = Float              8.0f\n+   #98 = Methodref          #7.#99        // dev/langchain4j/data/embedding/Embedding.normalize:()V\n+   #99 = NameAndType        #100:#6       // normalize:()V\n+  #100 = Utf8               normalize\n+  #101 = Float              0.6f\n+  #102 = Float              0.8f\n+  #103 = Class              #104          // org/assertj/core/api/WithAssertions\n+  #104 = Utf8               org/assertj/core/api/WithAssertions\n+  #105 = Utf8               Code\n+  #106 = Utf8               LineNumberTable\n+  #107 = Utf8               LocalVariableTable\n+  #108 = Utf8               this\n+  #109 = Utf8               Ldev/langchain4j/data/embedding/EmbeddingTest;\n+  #110 = Utf8               test_equals_hash\n+  #111 = Utf8               e1\n+  #112 = Utf8               Ldev/langchain4j/data/embedding/Embedding;\n+  #113 = Utf8               e2\n+  #114 = Utf8               RuntimeVisibleAnnotations\n+  #115 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #116 = Utf8               test_accessors\n+  #117 = Utf8               test_from\n+  #118 = Utf8               list\n+  #119 = Utf8               Ljava/util/List;\n+  #120 = Utf8               LocalVariableTypeTable\n+  #121 = Utf8               Ljava/util/List<Ljava/lang/Float;>;\n+  #122 = Utf8               test_normalize\n+  #123 = Utf8               embedding\n+  #124 = Utf8               expect\n+  #125 = Utf8               SourceFile\n+  #126 = Utf8               EmbeddingTest.java\n {\n   dev.langchain4j.data.embedding.EmbeddingTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -150,117 +150,117 @@\n             0       5     0  this   Ldev/langchain4j/data/embedding/EmbeddingTest;\n \n   public void test_equals_hash();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=7, locals=3, args_size=1\n-         0: new           #2                  // class dev/langchain4j/data/embedding/Embedding\n+         0: new           #7                  // class dev/langchain4j/data/embedding/Embedding\n          3: dup\n          4: iconst_3\n          5: newarray       float\n          7: dup\n          8: iconst_0\n          9: fconst_1\n         10: fastore\n         11: dup\n         12: iconst_1\n         13: fconst_2\n         14: fastore\n         15: dup\n         16: iconst_2\n-        17: ldc           #3                  // float 3.0f\n+        17: ldc           #9                  // float 3.0f\n         19: fastore\n-        20: invokespecial #4                  // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n+        20: invokespecial #10                 // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n         23: astore_1\n-        24: new           #2                  // class dev/langchain4j/data/embedding/Embedding\n+        24: new           #7                  // class dev/langchain4j/data/embedding/Embedding\n         27: dup\n         28: iconst_3\n         29: newarray       float\n         31: dup\n         32: iconst_0\n         33: fconst_1\n         34: fastore\n         35: dup\n         36: iconst_1\n         37: fconst_2\n         38: fastore\n         39: dup\n         40: iconst_2\n-        41: ldc           #3                  // float 3.0f\n+        41: ldc           #9                  // float 3.0f\n         43: fastore\n-        44: invokespecial #4                  // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n+        44: invokespecial #10                 // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n         47: astore_2\n         48: aload_0\n         49: aload_1\n-        50: invokevirtual #5                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        50: invokevirtual #13                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         53: aload_1\n-        54: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        57: checkcast     #7                  // class org/assertj/core/api/ObjectAssert\n+        54: invokevirtual #19                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        57: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n         60: aconst_null\n-        61: invokevirtual #8                  // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        64: checkcast     #7                  // class org/assertj/core/api/ObjectAssert\n-        67: new           #9                  // class java/lang/Object\n+        61: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        64: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n+        67: new           #2                  // class java/lang/Object\n         70: dup\n         71: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n-        74: invokevirtual #8                  // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        77: checkcast     #7                  // class org/assertj/core/api/ObjectAssert\n+        74: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        77: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n         80: aload_2\n-        81: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        84: checkcast     #7                  // class org/assertj/core/api/ObjectAssert\n+        81: invokevirtual #19                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        84: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n         87: aload_2\n-        88: invokevirtual #10                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        88: invokevirtual #28                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         91: pop\n         92: aload_0\n-        93: new           #2                  // class dev/langchain4j/data/embedding/Embedding\n+        93: new           #7                  // class dev/langchain4j/data/embedding/Embedding\n         96: dup\n         97: iconst_3\n         98: newarray       float\n        100: dup\n        101: iconst_0\n-       102: ldc           #11                 // float 99.0f\n+       102: ldc           #31                 // float 99.0f\n        104: fastore\n        105: dup\n        106: iconst_1\n        107: fconst_2\n        108: fastore\n        109: dup\n        110: iconst_2\n-       111: ldc           #3                  // float 3.0f\n+       111: ldc           #9                  // float 3.0f\n        113: fastore\n-       114: invokespecial #4                  // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n-       117: invokevirtual #5                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       114: invokespecial #10                 // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n+       117: invokevirtual #13                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        120: aload_1\n-       121: invokevirtual #8                  // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       121: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        124: pop\n        125: aload_0\n-       126: new           #2                  // class dev/langchain4j/data/embedding/Embedding\n+       126: new           #7                  // class dev/langchain4j/data/embedding/Embedding\n        129: dup\n        130: iconst_4\n        131: newarray       float\n        133: dup\n        134: iconst_0\n        135: fconst_1\n        136: fastore\n        137: dup\n        138: iconst_1\n        139: fconst_2\n        140: fastore\n        141: dup\n        142: iconst_2\n-       143: ldc           #3                  // float 3.0f\n+       143: ldc           #9                  // float 3.0f\n        145: fastore\n        146: dup\n        147: iconst_3\n-       148: ldc           #12                 // float 4.0f\n+       148: ldc           #32                 // float 4.0f\n        150: fastore\n-       151: invokespecial #4                  // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n-       154: invokevirtual #5                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       151: invokespecial #10                 // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n+       154: invokevirtual #13                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        157: aload_1\n-       158: invokevirtual #8                  // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       158: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        161: pop\n        162: return\n       LineNumberTable:\n         line 12: 0\n         line 13: 24\n         line 15: 48\n         line 16: 54\n@@ -275,110 +275,110 @@\n         line 26: 162\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     163     0  this   Ldev/langchain4j/data/embedding/EmbeddingTest;\n            24     139     1    e1   Ldev/langchain4j/data/embedding/Embedding;\n            48     115     2    e2   Ldev/langchain4j/data/embedding/Embedding;\n     RuntimeVisibleAnnotations:\n-      0: #50()\n+      0: #115()\n         org.junit.jupiter.api.Test\n \n   public void test_accessors();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=6, locals=2, args_size=1\n-         0: new           #2                  // class dev/langchain4j/data/embedding/Embedding\n+         0: new           #7                  // class dev/langchain4j/data/embedding/Embedding\n          3: dup\n          4: iconst_3\n          5: newarray       float\n          7: dup\n          8: iconst_0\n          9: fconst_1\n         10: fastore\n         11: dup\n         12: iconst_1\n         13: fconst_2\n         14: fastore\n         15: dup\n         16: iconst_2\n-        17: ldc           #3                  // float 3.0f\n+        17: ldc           #9                  // float 3.0f\n         19: fastore\n-        20: invokespecial #4                  // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n+        20: invokespecial #10                 // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n         23: astore_1\n         24: aload_0\n         25: aload_1\n-        26: invokevirtual #13                 // Method dev/langchain4j/data/embedding/Embedding.dimension:()I\n-        29: invokevirtual #14                 // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        26: invokevirtual #33                 // Method dev/langchain4j/data/embedding/Embedding.dimension:()I\n+        29: invokevirtual #37                 // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         32: iconst_3\n-        33: invokevirtual #15                 // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        33: invokevirtual #40                 // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         36: pop\n         37: aload_0\n         38: aload_1\n-        39: invokevirtual #16                 // Method dev/langchain4j/data/embedding/Embedding.vector:()[F\n-        42: invokevirtual #17                 // Method assertThat:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n+        39: invokevirtual #44                 // Method dev/langchain4j/data/embedding/Embedding.vector:()[F\n+        42: invokevirtual #48                 // Method assertThat:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n         45: iconst_3\n         46: newarray       float\n         48: dup\n         49: iconst_0\n         50: fconst_1\n         51: fastore\n         52: dup\n         53: iconst_1\n         54: fconst_2\n         55: fastore\n         56: dup\n         57: iconst_2\n-        58: ldc           #3                  // float 3.0f\n+        58: ldc           #9                  // float 3.0f\n         60: fastore\n-        61: invokevirtual #18                 // Method org/assertj/core/api/AbstractFloatArrayAssert.containsExactly:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n+        61: invokevirtual #51                 // Method org/assertj/core/api/AbstractFloatArrayAssert.containsExactly:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n         64: pop\n         65: aload_0\n         66: aload_1\n-        67: invokevirtual #19                 // Method dev/langchain4j/data/embedding/Embedding.vectorAsList:()Ljava/util/List;\n-        70: invokevirtual #20                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+        67: invokevirtual #56                 // Method dev/langchain4j/data/embedding/Embedding.vectorAsList:()Ljava/util/List;\n+        70: invokevirtual #60                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n         73: iconst_3\n-        74: anewarray     #21                 // class java/lang/Float\n+        74: anewarray     #63                 // class java/lang/Float\n         77: dup\n         78: iconst_0\n         79: fconst_1\n-        80: invokestatic  #22                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n+        80: invokestatic  #65                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n         83: aastore\n         84: dup\n         85: iconst_1\n         86: fconst_2\n-        87: invokestatic  #22                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n+        87: invokestatic  #65                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n         90: aastore\n         91: dup\n         92: iconst_2\n-        93: ldc           #3                  // float 3.0f\n-        95: invokestatic  #22                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n+        93: ldc           #9                  // float 3.0f\n+        95: invokestatic  #65                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n         98: aastore\n-        99: invokevirtual #23                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+        99: invokevirtual #69                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n        102: pop\n        103: aload_0\n        104: aload_1\n-       105: invokevirtual #5                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-       108: ldc           #24                 // String Embedding { vector = [1.0, 2.0, 3.0] }\n-       110: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+       105: invokevirtual #13                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       108: ldc           #74                 // String Embedding { vector = [1.0, 2.0, 3.0] }\n+       110: invokevirtual #76                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n        113: pop\n        114: return\n       LineNumberTable:\n         line 30: 0\n         line 31: 24\n         line 32: 37\n         line 33: 65\n         line 35: 103\n         line 36: 114\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     115     0  this   Ldev/langchain4j/data/embedding/EmbeddingTest;\n            24      91     1    e1   Ldev/langchain4j/data/embedding/Embedding;\n     RuntimeVisibleAnnotations:\n-      0: #50()\n+      0: #115()\n         org.junit.jupiter.api.Test\n \n   public void test_from();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=7, locals=2, args_size=1\n@@ -391,78 +391,78 @@\n          7: fastore\n          8: dup\n          9: iconst_1\n         10: fconst_2\n         11: fastore\n         12: dup\n         13: iconst_2\n-        14: ldc           #3                  // float 3.0f\n+        14: ldc           #9                  // float 3.0f\n         16: fastore\n-        17: invokestatic  #26                 // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n-        20: invokevirtual #5                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        23: new           #2                  // class dev/langchain4j/data/embedding/Embedding\n+        17: invokestatic  #80                 // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n+        20: invokevirtual #13                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        23: new           #7                  // class dev/langchain4j/data/embedding/Embedding\n         26: dup\n         27: iconst_3\n         28: newarray       float\n         30: dup\n         31: iconst_0\n         32: fconst_1\n         33: fastore\n         34: dup\n         35: iconst_1\n         36: fconst_2\n         37: fastore\n         38: dup\n         39: iconst_2\n-        40: ldc           #3                  // float 3.0f\n+        40: ldc           #9                  // float 3.0f\n         42: fastore\n-        43: invokespecial #4                  // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n-        46: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        43: invokespecial #10                 // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n+        46: invokevirtual #19                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         49: pop\n-        50: new           #27                 // class java/util/ArrayList\n+        50: new           #84                 // class java/util/ArrayList\n         53: dup\n-        54: invokespecial #28                 // Method java/util/ArrayList.\"<init>\":()V\n+        54: invokespecial #86                 // Method java/util/ArrayList.\"<init>\":()V\n         57: astore_1\n         58: aload_1\n         59: fconst_1\n-        60: invokestatic  #22                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n-        63: invokeinterface #29,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n+        60: invokestatic  #65                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n+        63: invokeinterface #87,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n         68: pop\n         69: aload_1\n         70: fconst_2\n-        71: invokestatic  #22                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n-        74: invokeinterface #29,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n+        71: invokestatic  #65                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n+        74: invokeinterface #87,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n         79: pop\n         80: aload_1\n-        81: ldc           #3                  // float 3.0f\n-        83: invokestatic  #22                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n-        86: invokeinterface #29,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n+        81: ldc           #9                  // float 3.0f\n+        83: invokestatic  #65                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n+        86: invokeinterface #87,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n         91: pop\n         92: aload_0\n         93: aload_1\n-        94: invokestatic  #30                 // Method dev/langchain4j/data/embedding/Embedding.from:(Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n-        97: invokevirtual #5                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-       100: new           #2                  // class dev/langchain4j/data/embedding/Embedding\n+        94: invokestatic  #93                 // Method dev/langchain4j/data/embedding/Embedding.from:(Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n+        97: invokevirtual #13                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       100: new           #7                  // class dev/langchain4j/data/embedding/Embedding\n        103: dup\n        104: iconst_3\n        105: newarray       float\n        107: dup\n        108: iconst_0\n        109: fconst_1\n        110: fastore\n        111: dup\n        112: iconst_1\n        113: fconst_2\n        114: fastore\n        115: dup\n        116: iconst_2\n-       117: ldc           #3                  // float 3.0f\n+       117: ldc           #9                  // float 3.0f\n        119: fastore\n-       120: invokespecial #4                  // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n-       123: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       120: invokespecial #10                 // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n+       123: invokevirtual #19                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        126: pop\n        127: return\n       LineNumberTable:\n         line 40: 0\n         line 41: 46\n         line 43: 50\n         line 44: 58\n@@ -475,68 +475,68 @@\n         Start  Length  Slot  Name   Signature\n             0     128     0  this   Ldev/langchain4j/data/embedding/EmbeddingTest;\n            58      70     1  list   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            58      70     1  list   Ljava/util/List<Ljava/lang/Float;>;\n     RuntimeVisibleAnnotations:\n-      0: #50()\n+      0: #115()\n         org.junit.jupiter.api.Test\n \n   void test_normalize();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=6, locals=3, args_size=1\n-         0: new           #2                  // class dev/langchain4j/data/embedding/Embedding\n+         0: new           #7                  // class dev/langchain4j/data/embedding/Embedding\n          3: dup\n          4: iconst_2\n          5: newarray       float\n          7: dup\n          8: iconst_0\n-         9: ldc           #31                 // float 6.0f\n+         9: ldc           #96                 // float 6.0f\n         11: fastore\n         12: dup\n         13: iconst_1\n-        14: ldc           #32                 // float 8.0f\n+        14: ldc           #97                 // float 8.0f\n         16: fastore\n-        17: invokespecial #4                  // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n+        17: invokespecial #10                 // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n         20: astore_1\n         21: aload_1\n-        22: invokevirtual #33                 // Method dev/langchain4j/data/embedding/Embedding.normalize:()V\n-        25: new           #2                  // class dev/langchain4j/data/embedding/Embedding\n+        22: invokevirtual #98                 // Method dev/langchain4j/data/embedding/Embedding.normalize:()V\n+        25: new           #7                  // class dev/langchain4j/data/embedding/Embedding\n         28: dup\n         29: iconst_2\n         30: newarray       float\n         32: dup\n         33: iconst_0\n-        34: ldc           #34                 // float 0.6f\n+        34: ldc           #101                // float 0.6f\n         36: fastore\n         37: dup\n         38: iconst_1\n-        39: ldc           #35                 // float 0.8f\n+        39: ldc           #102                // float 0.8f\n         41: fastore\n-        42: invokespecial #4                  // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n+        42: invokespecial #10                 // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n         45: astore_2\n         46: aload_0\n         47: aload_1\n-        48: invokevirtual #5                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        48: invokevirtual #13                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         51: aload_2\n-        52: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        52: invokevirtual #19                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         55: pop\n         56: return\n       LineNumberTable:\n         line 53: 0\n         line 54: 21\n         line 56: 25\n         line 57: 46\n         line 58: 56\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      57     0  this   Ldev/langchain4j/data/embedding/EmbeddingTest;\n            21      36     1 embedding   Ldev/langchain4j/data/embedding/Embedding;\n            46      11     2 expect   Ldev/langchain4j/data/embedding/Embedding;\n     RuntimeVisibleAnnotations:\n-      0: #50()\n+      0: #115()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"EmbeddingTest.java\"\n"}]}, {"source1": "dev/langchain4j/data/image/ImageTest.class", "source2": "dev/langchain4j/data/image/ImageTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,150 +1,150 @@\n-  SHA-256 checksum 73fd1f92310bb66fb9838561b98323855e0ad46e21c0fe5094a8e64b557ff63b\n+  SHA-256 checksum 6c3798af5a64fdaa05ac3c309926acc06a8c573169b636b3bf687f2dcf08f4aa\n   Compiled from \"ImageTest.java\"\n class dev.langchain4j.data.image.ImageTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #38                         // dev/langchain4j/data/image/ImageTest\n-  super_class: #33                        // java/lang/Object\n+  this_class: #52                         // dev/langchain4j/data/image/ImageTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 4, attributes: 2\n Constant pool:\n-    #1 = Methodref          #33.#60       // java/lang/Object.\"<init>\":()V\n-    #2 = Methodref          #61.#62       // dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n-    #3 = Class              #63           // java/net/URI\n-    #4 = String             #64           // https://example.com/image.png\n-    #5 = Methodref          #3.#65        // java/net/URI.\"<init>\":(Ljava/lang/String;)V\n-    #6 = Methodref          #66.#67       // dev/langchain4j/data/image/Image$Builder.url:(Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n-    #7 = String             #68           // base64Data\n-    #8 = Methodref          #66.#69       // dev/langchain4j/data/image/Image$Builder.base64Data:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-    #9 = String             #70           // image/png\n-   #10 = Methodref          #66.#71       // dev/langchain4j/data/image/Image$Builder.mimeType:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-   #11 = String             #72           // revisedPrompt\n-   #12 = Methodref          #66.#73       // dev/langchain4j/data/image/Image$Builder.revisedPrompt:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-   #13 = Methodref          #66.#74       // dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n-   #14 = Methodref          #61.#75       // dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n-   #15 = Methodref          #3.#76        // java/net/URI.toString:()Ljava/lang/String;\n-   #16 = Methodref          #38.#77       // dev/langchain4j/data/image/ImageTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #17 = Methodref          #78.#79       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #18 = Methodref          #61.#80       // dev/langchain4j/data/image/Image.base64Data:()Ljava/lang/String;\n-   #19 = Methodref          #61.#81       // dev/langchain4j/data/image/Image.mimeType:()Ljava/lang/String;\n-   #20 = Methodref          #61.#82       // dev/langchain4j/data/image/Image.revisedPrompt:()Ljava/lang/String;\n-   #21 = Methodref          #38.#83       // dev/langchain4j/data/image/ImageTest.assertThat:(Ljava/net/URI;)Lorg/assertj/core/api/AbstractUriAssert;\n-   #22 = Methodref          #84.#85       // org/assertj/core/api/AbstractUriAssert.isNull:()V\n-   #23 = Methodref          #78.#85       // org/assertj/core/api/AbstractStringAssert.isNull:()V\n-   #24 = Methodref          #66.#86       // dev/langchain4j/data/image/Image$Builder.url:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-   #25 = Methodref          #84.#87       // org/assertj/core/api/AbstractUriAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #26 = Methodref          #3.#88        // java/net/URI.create:(Ljava/lang/String;)Ljava/net/URI;\n-   #27 = Methodref          #38.#89       // dev/langchain4j/data/image/ImageTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #28 = String             #90           // Image { url = \\\"https://example.com/image.png\\\", base64Data = \\\"base64Data\\\", mimeType = \\\"image/png\\\", revisedPrompt = \\\"revisedPrompt\\\" }\n-   #29 = Methodref          #31.#91       // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-   #30 = Methodref          #31.#87       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #31 = Class              #92           // org/assertj/core/api/ObjectAssert\n-   #32 = Methodref          #31.#93       // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #33 = Class              #94           // java/lang/Object\n-   #34 = Methodref          #31.#95       // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #35 = String             #96           // https://change\n-   #36 = Methodref          #31.#97       // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #37 = String             #98           // changed\n-   #38 = Class              #99           // dev/langchain4j/data/image/ImageTest\n-   #39 = Class              #100          // org/assertj/core/api/WithAssertions\n-   #40 = Utf8               <init>\n-   #41 = Utf8               ()V\n-   #42 = Utf8               Code\n-   #43 = Utf8               LineNumberTable\n-   #44 = Utf8               LocalVariableTable\n-   #45 = Utf8               this\n-   #46 = Utf8               Ldev/langchain4j/data/image/ImageTest;\n-   #47 = Utf8               testBuilder\n-   #48 = Utf8               image\n-   #49 = Utf8               Ldev/langchain4j/data/image/Image;\n-   #50 = Utf8               Exceptions\n-   #51 = Class              #101          // java/lang/Exception\n-   #52 = Utf8               RuntimeVisibleAnnotations\n-   #53 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #54 = Utf8               test_toString\n-   #55 = Utf8               test_equals_hash\n-   #56 = Utf8               image1\n-   #57 = Utf8               image2\n-   #58 = Utf8               SourceFile\n-   #59 = Utf8               ImageTest.java\n-   #60 = NameAndType        #40:#41       // \"<init>\":()V\n-   #61 = Class              #102          // dev/langchain4j/data/image/Image\n-   #62 = NameAndType        #103:#106     // builder:()Ldev/langchain4j/data/image/Image$Builder;\n-   #63 = Utf8               java/net/URI\n-   #64 = Utf8               https://example.com/image.png\n-   #65 = NameAndType        #40:#107      // \"<init>\":(Ljava/lang/String;)V\n-   #66 = Class              #108          // dev/langchain4j/data/image/Image$Builder\n-   #67 = NameAndType        #109:#110     // url:(Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n-   #68 = Utf8               base64Data\n-   #69 = NameAndType        #68:#111      // base64Data:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-   #70 = Utf8               image/png\n-   #71 = NameAndType        #112:#111     // mimeType:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-   #72 = Utf8               revisedPrompt\n-   #73 = NameAndType        #72:#111      // revisedPrompt:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-   #74 = NameAndType        #113:#114     // build:()Ldev/langchain4j/data/image/Image;\n-   #75 = NameAndType        #109:#115     // url:()Ljava/net/URI;\n-   #76 = NameAndType        #116:#117     // toString:()Ljava/lang/String;\n-   #77 = NameAndType        #118:#119     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #78 = Class              #120          // org/assertj/core/api/AbstractStringAssert\n-   #79 = NameAndType        #121:#119     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #80 = NameAndType        #68:#117      // base64Data:()Ljava/lang/String;\n-   #81 = NameAndType        #112:#117     // mimeType:()Ljava/lang/String;\n-   #82 = NameAndType        #72:#117      // revisedPrompt:()Ljava/lang/String;\n-   #83 = NameAndType        #118:#122     // assertThat:(Ljava/net/URI;)Lorg/assertj/core/api/AbstractUriAssert;\n-   #84 = Class              #123          // org/assertj/core/api/AbstractUriAssert\n-   #85 = NameAndType        #124:#41      // isNull:()V\n-   #86 = NameAndType        #109:#111     // url:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-   #87 = NameAndType        #121:#125     // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #88 = NameAndType        #126:#127     // create:(Ljava/lang/String;)Ljava/net/URI;\n-   #89 = NameAndType        #118:#128     // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Methodref          #8.#9         // dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n+    #8 = Class              #10           // dev/langchain4j/data/image/Image\n+    #9 = NameAndType        #11:#12       // builder:()Ldev/langchain4j/data/image/Image$Builder;\n+   #10 = Utf8               dev/langchain4j/data/image/Image\n+   #11 = Utf8               builder\n+   #12 = Utf8               ()Ldev/langchain4j/data/image/Image$Builder;\n+   #13 = Class              #14           // java/net/URI\n+   #14 = Utf8               java/net/URI\n+   #15 = String             #16           // https://example.com/image.png\n+   #16 = Utf8               https://example.com/image.png\n+   #17 = Methodref          #13.#18       // java/net/URI.\"<init>\":(Ljava/lang/String;)V\n+   #18 = NameAndType        #5:#19        // \"<init>\":(Ljava/lang/String;)V\n+   #19 = Utf8               (Ljava/lang/String;)V\n+   #20 = Methodref          #21.#22       // dev/langchain4j/data/image/Image$Builder.url:(Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n+   #21 = Class              #23           // dev/langchain4j/data/image/Image$Builder\n+   #22 = NameAndType        #24:#25       // url:(Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n+   #23 = Utf8               dev/langchain4j/data/image/Image$Builder\n+   #24 = Utf8               url\n+   #25 = Utf8               (Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n+   #26 = String             #27           // base64Data\n+   #27 = Utf8               base64Data\n+   #28 = Methodref          #21.#29       // dev/langchain4j/data/image/Image$Builder.base64Data:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+   #29 = NameAndType        #27:#30       // base64Data:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+   #30 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+   #31 = String             #32           // image/png\n+   #32 = Utf8               image/png\n+   #33 = Methodref          #21.#34       // dev/langchain4j/data/image/Image$Builder.mimeType:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+   #34 = NameAndType        #35:#30       // mimeType:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+   #35 = Utf8               mimeType\n+   #36 = String             #37           // revisedPrompt\n+   #37 = Utf8               revisedPrompt\n+   #38 = Methodref          #21.#39       // dev/langchain4j/data/image/Image$Builder.revisedPrompt:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+   #39 = NameAndType        #37:#30       // revisedPrompt:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+   #40 = Methodref          #21.#41       // dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n+   #41 = NameAndType        #42:#43       // build:()Ldev/langchain4j/data/image/Image;\n+   #42 = Utf8               build\n+   #43 = Utf8               ()Ldev/langchain4j/data/image/Image;\n+   #44 = Methodref          #8.#45        // dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n+   #45 = NameAndType        #24:#46       // url:()Ljava/net/URI;\n+   #46 = Utf8               ()Ljava/net/URI;\n+   #47 = Methodref          #13.#48       // java/net/URI.toString:()Ljava/lang/String;\n+   #48 = NameAndType        #49:#50       // toString:()Ljava/lang/String;\n+   #49 = Utf8               toString\n+   #50 = Utf8               ()Ljava/lang/String;\n+   #51 = Methodref          #52.#53       // dev/langchain4j/data/image/ImageTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #52 = Class              #54           // dev/langchain4j/data/image/ImageTest\n+   #53 = NameAndType        #55:#56       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #54 = Utf8               dev/langchain4j/data/image/ImageTest\n+   #55 = Utf8               assertThat\n+   #56 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #57 = Methodref          #58.#59       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #58 = Class              #60           // org/assertj/core/api/AbstractStringAssert\n+   #59 = NameAndType        #61:#56       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #60 = Utf8               org/assertj/core/api/AbstractStringAssert\n+   #61 = Utf8               isEqualTo\n+   #62 = Methodref          #8.#63        // dev/langchain4j/data/image/Image.base64Data:()Ljava/lang/String;\n+   #63 = NameAndType        #27:#50       // base64Data:()Ljava/lang/String;\n+   #64 = Methodref          #8.#65        // dev/langchain4j/data/image/Image.mimeType:()Ljava/lang/String;\n+   #65 = NameAndType        #35:#50       // mimeType:()Ljava/lang/String;\n+   #66 = Methodref          #8.#67        // dev/langchain4j/data/image/Image.revisedPrompt:()Ljava/lang/String;\n+   #67 = NameAndType        #37:#50       // revisedPrompt:()Ljava/lang/String;\n+   #68 = Methodref          #52.#69       // dev/langchain4j/data/image/ImageTest.assertThat:(Ljava/net/URI;)Lorg/assertj/core/api/AbstractUriAssert;\n+   #69 = NameAndType        #55:#70       // assertThat:(Ljava/net/URI;)Lorg/assertj/core/api/AbstractUriAssert;\n+   #70 = Utf8               (Ljava/net/URI;)Lorg/assertj/core/api/AbstractUriAssert;\n+   #71 = Methodref          #72.#73       // org/assertj/core/api/AbstractUriAssert.isNull:()V\n+   #72 = Class              #74           // org/assertj/core/api/AbstractUriAssert\n+   #73 = NameAndType        #75:#6        // isNull:()V\n+   #74 = Utf8               org/assertj/core/api/AbstractUriAssert\n+   #75 = Utf8               isNull\n+   #76 = Methodref          #58.#73       // org/assertj/core/api/AbstractStringAssert.isNull:()V\n+   #77 = Methodref          #21.#78       // dev/langchain4j/data/image/Image$Builder.url:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+   #78 = NameAndType        #24:#30       // url:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+   #79 = Methodref          #72.#80       // org/assertj/core/api/AbstractUriAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #80 = NameAndType        #61:#81       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #81 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #82 = Methodref          #13.#83       // java/net/URI.create:(Ljava/lang/String;)Ljava/net/URI;\n+   #83 = NameAndType        #84:#85       // create:(Ljava/lang/String;)Ljava/net/URI;\n+   #84 = Utf8               create\n+   #85 = Utf8               (Ljava/lang/String;)Ljava/net/URI;\n+   #86 = Methodref          #52.#87       // dev/langchain4j/data/image/ImageTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #87 = NameAndType        #55:#88       // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #88 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #89 = String             #90           // Image { url = \\\"https://example.com/image.png\\\", base64Data = \\\"base64Data\\\", mimeType = \\\"image/png\\\", revisedPrompt = \\\"revisedPrompt\\\" }\n    #90 = Utf8               Image { url = \\\"https://example.com/image.png\\\", base64Data = \\\"base64Data\\\", mimeType = \\\"image/png\\\", revisedPrompt = \\\"revisedPrompt\\\" }\n-   #91 = NameAndType        #129:#130     // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-   #92 = Utf8               org/assertj/core/api/ObjectAssert\n-   #93 = NameAndType        #131:#125     // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #94 = Utf8               java/lang/Object\n-   #95 = NameAndType        #132:#125     // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #96 = Utf8               https://change\n-   #97 = NameAndType        #133:#125     // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #98 = Utf8               changed\n-   #99 = Utf8               dev/langchain4j/data/image/ImageTest\n-  #100 = Utf8               org/assertj/core/api/WithAssertions\n-  #101 = Utf8               java/lang/Exception\n-  #102 = Utf8               dev/langchain4j/data/image/Image\n-  #103 = Utf8               builder\n-  #104 = Utf8               Builder\n-  #105 = Utf8               InnerClasses\n-  #106 = Utf8               ()Ldev/langchain4j/data/image/Image$Builder;\n-  #107 = Utf8               (Ljava/lang/String;)V\n-  #108 = Utf8               dev/langchain4j/data/image/Image$Builder\n-  #109 = Utf8               url\n-  #110 = Utf8               (Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n-  #111 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-  #112 = Utf8               mimeType\n-  #113 = Utf8               build\n-  #114 = Utf8               ()Ldev/langchain4j/data/image/Image;\n-  #115 = Utf8               ()Ljava/net/URI;\n-  #116 = Utf8               toString\n-  #117 = Utf8               ()Ljava/lang/String;\n-  #118 = Utf8               assertThat\n-  #119 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #120 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #121 = Utf8               isEqualTo\n-  #122 = Utf8               (Ljava/net/URI;)Lorg/assertj/core/api/AbstractUriAssert;\n-  #123 = Utf8               org/assertj/core/api/AbstractUriAssert\n-  #124 = Utf8               isNull\n-  #125 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #126 = Utf8               create\n-  #127 = Utf8               (Ljava/lang/String;)Ljava/net/URI;\n-  #128 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #129 = Utf8               hasToString\n-  #130 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-  #131 = Utf8               isNotEqualTo\n-  #132 = Utf8               hasSameHashCodeAs\n-  #133 = Utf8               doesNotHaveSameHashCodeAs\n+   #91 = Methodref          #92.#93       // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #92 = Class              #94           // org/assertj/core/api/ObjectAssert\n+   #93 = NameAndType        #95:#96       // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #94 = Utf8               org/assertj/core/api/ObjectAssert\n+   #95 = Utf8               hasToString\n+   #96 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #97 = Methodref          #92.#80       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #98 = Methodref          #92.#99       // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #99 = NameAndType        #100:#81      // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #100 = Utf8               isNotEqualTo\n+  #101 = Methodref          #92.#102      // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #102 = NameAndType        #103:#81      // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #103 = Utf8               hasSameHashCodeAs\n+  #104 = String             #105          // https://change\n+  #105 = Utf8               https://change\n+  #106 = Methodref          #92.#107      // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #107 = NameAndType        #108:#81      // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #108 = Utf8               doesNotHaveSameHashCodeAs\n+  #109 = String             #110          // changed\n+  #110 = Utf8               changed\n+  #111 = Class              #112          // org/assertj/core/api/WithAssertions\n+  #112 = Utf8               org/assertj/core/api/WithAssertions\n+  #113 = Utf8               Code\n+  #114 = Utf8               LineNumberTable\n+  #115 = Utf8               LocalVariableTable\n+  #116 = Utf8               this\n+  #117 = Utf8               Ldev/langchain4j/data/image/ImageTest;\n+  #118 = Utf8               testBuilder\n+  #119 = Utf8               image\n+  #120 = Utf8               Ldev/langchain4j/data/image/Image;\n+  #121 = Utf8               Exceptions\n+  #122 = Class              #123          // java/lang/Exception\n+  #123 = Utf8               java/lang/Exception\n+  #124 = Utf8               RuntimeVisibleAnnotations\n+  #125 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #126 = Utf8               test_toString\n+  #127 = Utf8               test_equals_hash\n+  #128 = Utf8               image1\n+  #129 = Utf8               image2\n+  #130 = Utf8               SourceFile\n+  #131 = Utf8               ImageTest.java\n+  #132 = Utf8               InnerClasses\n+  #133 = Utf8               Builder\n {\n   dev.langchain4j.data.image.ImageTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -157,94 +157,94 @@\n             0       5     0  this   Ldev/langchain4j/data/image/ImageTest;\n \n   public void testBuilder() throws java.lang.Exception;\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=4, locals=2, args_size=1\n-         0: invokestatic  #2                  // Method dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n-         3: new           #3                  // class java/net/URI\n+         0: invokestatic  #7                  // Method dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n+         3: new           #13                 // class java/net/URI\n          6: dup\n-         7: ldc           #4                  // String https://example.com/image.png\n-         9: invokespecial #5                  // Method java/net/URI.\"<init>\":(Ljava/lang/String;)V\n-        12: invokevirtual #6                  // Method dev/langchain4j/data/image/Image$Builder.url:(Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n-        15: ldc           #7                  // String base64Data\n-        17: invokevirtual #8                  // Method dev/langchain4j/data/image/Image$Builder.base64Data:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-        20: ldc           #9                  // String image/png\n-        22: invokevirtual #10                 // Method dev/langchain4j/data/image/Image$Builder.mimeType:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-        25: ldc           #11                 // String revisedPrompt\n-        27: invokevirtual #12                 // Method dev/langchain4j/data/image/Image$Builder.revisedPrompt:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-        30: invokevirtual #13                 // Method dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n+         7: ldc           #15                 // String https://example.com/image.png\n+         9: invokespecial #17                 // Method java/net/URI.\"<init>\":(Ljava/lang/String;)V\n+        12: invokevirtual #20                 // Method dev/langchain4j/data/image/Image$Builder.url:(Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n+        15: ldc           #26                 // String base64Data\n+        17: invokevirtual #28                 // Method dev/langchain4j/data/image/Image$Builder.base64Data:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+        20: ldc           #31                 // String image/png\n+        22: invokevirtual #33                 // Method dev/langchain4j/data/image/Image$Builder.mimeType:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+        25: ldc           #36                 // String revisedPrompt\n+        27: invokevirtual #38                 // Method dev/langchain4j/data/image/Image$Builder.revisedPrompt:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+        30: invokevirtual #40                 // Method dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n         33: astore_1\n         34: aload_0\n         35: aload_1\n-        36: invokevirtual #14                 // Method dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n-        39: invokevirtual #15                 // Method java/net/URI.toString:()Ljava/lang/String;\n-        42: invokevirtual #16                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        45: ldc           #4                  // String https://example.com/image.png\n-        47: invokevirtual #17                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        36: invokevirtual #44                 // Method dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n+        39: invokevirtual #47                 // Method java/net/URI.toString:()Ljava/lang/String;\n+        42: invokevirtual #51                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        45: ldc           #15                 // String https://example.com/image.png\n+        47: invokevirtual #57                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         50: pop\n         51: aload_0\n         52: aload_1\n-        53: invokevirtual #18                 // Method dev/langchain4j/data/image/Image.base64Data:()Ljava/lang/String;\n-        56: invokevirtual #16                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        59: ldc           #7                  // String base64Data\n-        61: invokevirtual #17                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        53: invokevirtual #62                 // Method dev/langchain4j/data/image/Image.base64Data:()Ljava/lang/String;\n+        56: invokevirtual #51                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        59: ldc           #26                 // String base64Data\n+        61: invokevirtual #57                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         64: pop\n         65: aload_0\n         66: aload_1\n-        67: invokevirtual #19                 // Method dev/langchain4j/data/image/Image.mimeType:()Ljava/lang/String;\n-        70: invokevirtual #16                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        73: ldc           #9                  // String image/png\n-        75: invokevirtual #17                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        67: invokevirtual #64                 // Method dev/langchain4j/data/image/Image.mimeType:()Ljava/lang/String;\n+        70: invokevirtual #51                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        73: ldc           #31                 // String image/png\n+        75: invokevirtual #57                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         78: pop\n         79: aload_0\n         80: aload_1\n-        81: invokevirtual #20                 // Method dev/langchain4j/data/image/Image.revisedPrompt:()Ljava/lang/String;\n-        84: invokevirtual #16                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        87: ldc           #11                 // String revisedPrompt\n-        89: invokevirtual #17                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        81: invokevirtual #66                 // Method dev/langchain4j/data/image/Image.revisedPrompt:()Ljava/lang/String;\n+        84: invokevirtual #51                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        87: ldc           #36                 // String revisedPrompt\n+        89: invokevirtual #57                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         92: pop\n-        93: invokestatic  #2                  // Method dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n-        96: invokevirtual #13                 // Method dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n+        93: invokestatic  #7                  // Method dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n+        96: invokevirtual #40                 // Method dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n         99: astore_1\n        100: aload_0\n        101: aload_1\n-       102: invokevirtual #14                 // Method dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n-       105: invokevirtual #21                 // Method assertThat:(Ljava/net/URI;)Lorg/assertj/core/api/AbstractUriAssert;\n-       108: invokevirtual #22                 // Method org/assertj/core/api/AbstractUriAssert.isNull:()V\n+       102: invokevirtual #44                 // Method dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n+       105: invokevirtual #68                 // Method assertThat:(Ljava/net/URI;)Lorg/assertj/core/api/AbstractUriAssert;\n+       108: invokevirtual #71                 // Method org/assertj/core/api/AbstractUriAssert.isNull:()V\n        111: aload_0\n        112: aload_1\n-       113: invokevirtual #18                 // Method dev/langchain4j/data/image/Image.base64Data:()Ljava/lang/String;\n-       116: invokevirtual #16                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       119: invokevirtual #23                 // Method org/assertj/core/api/AbstractStringAssert.isNull:()V\n+       113: invokevirtual #62                 // Method dev/langchain4j/data/image/Image.base64Data:()Ljava/lang/String;\n+       116: invokevirtual #51                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       119: invokevirtual #76                 // Method org/assertj/core/api/AbstractStringAssert.isNull:()V\n        122: aload_0\n        123: aload_1\n-       124: invokevirtual #19                 // Method dev/langchain4j/data/image/Image.mimeType:()Ljava/lang/String;\n-       127: invokevirtual #16                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       130: invokevirtual #23                 // Method org/assertj/core/api/AbstractStringAssert.isNull:()V\n+       124: invokevirtual #64                 // Method dev/langchain4j/data/image/Image.mimeType:()Ljava/lang/String;\n+       127: invokevirtual #51                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       130: invokevirtual #76                 // Method org/assertj/core/api/AbstractStringAssert.isNull:()V\n        133: aload_0\n        134: aload_1\n-       135: invokevirtual #20                 // Method dev/langchain4j/data/image/Image.revisedPrompt:()Ljava/lang/String;\n-       138: invokevirtual #16                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       141: invokevirtual #23                 // Method org/assertj/core/api/AbstractStringAssert.isNull:()V\n-       144: invokestatic  #2                  // Method dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n-       147: ldc           #4                  // String https://example.com/image.png\n-       149: invokevirtual #24                 // Method dev/langchain4j/data/image/Image$Builder.url:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-       152: invokevirtual #13                 // Method dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n+       135: invokevirtual #66                 // Method dev/langchain4j/data/image/Image.revisedPrompt:()Ljava/lang/String;\n+       138: invokevirtual #51                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       141: invokevirtual #76                 // Method org/assertj/core/api/AbstractStringAssert.isNull:()V\n+       144: invokestatic  #7                  // Method dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n+       147: ldc           #15                 // String https://example.com/image.png\n+       149: invokevirtual #77                 // Method dev/langchain4j/data/image/Image$Builder.url:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+       152: invokevirtual #40                 // Method dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n        155: astore_1\n        156: aload_0\n        157: aload_1\n-       158: invokevirtual #14                 // Method dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n-       161: invokevirtual #21                 // Method assertThat:(Ljava/net/URI;)Lorg/assertj/core/api/AbstractUriAssert;\n-       164: new           #3                  // class java/net/URI\n+       158: invokevirtual #44                 // Method dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n+       161: invokevirtual #68                 // Method assertThat:(Ljava/net/URI;)Lorg/assertj/core/api/AbstractUriAssert;\n+       164: new           #13                 // class java/net/URI\n        167: dup\n-       168: ldc           #4                  // String https://example.com/image.png\n-       170: invokespecial #5                  // Method java/net/URI.\"<init>\":(Ljava/lang/String;)V\n-       173: invokevirtual #25                 // Method org/assertj/core/api/AbstractUriAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       168: ldc           #15                 // String https://example.com/image.png\n+       170: invokespecial #17                 // Method java/net/URI.\"<init>\":(Ljava/lang/String;)V\n+       173: invokevirtual #79                 // Method org/assertj/core/api/AbstractUriAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        176: pop\n        177: return\n       LineNumberTable:\n         line 12: 0\n         line 13: 12\n         line 14: 17\n         line 15: 22\n@@ -269,39 +269,39 @@\n            34      59     1 image   Ldev/langchain4j/data/image/Image;\n           100      44     1 image   Ldev/langchain4j/data/image/Image;\n           156      21     1 image   Ldev/langchain4j/data/image/Image;\n             0     178     0  this   Ldev/langchain4j/data/image/ImageTest;\n     Exceptions:\n       throws java.lang.Exception\n     RuntimeVisibleAnnotations:\n-      0: #53()\n+      0: #125()\n         org.junit.jupiter.api.Test\n \n   public void test_toString();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=1\n-         0: invokestatic  #2                  // Method dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n-         3: ldc           #4                  // String https://example.com/image.png\n-         5: invokestatic  #26                 // Method java/net/URI.create:(Ljava/lang/String;)Ljava/net/URI;\n-         8: invokevirtual #6                  // Method dev/langchain4j/data/image/Image$Builder.url:(Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n-        11: ldc           #7                  // String base64Data\n-        13: invokevirtual #8                  // Method dev/langchain4j/data/image/Image$Builder.base64Data:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-        16: ldc           #9                  // String image/png\n-        18: invokevirtual #10                 // Method dev/langchain4j/data/image/Image$Builder.mimeType:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-        21: ldc           #11                 // String revisedPrompt\n-        23: invokevirtual #12                 // Method dev/langchain4j/data/image/Image$Builder.revisedPrompt:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-        26: invokevirtual #13                 // Method dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n+         0: invokestatic  #7                  // Method dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n+         3: ldc           #15                 // String https://example.com/image.png\n+         5: invokestatic  #82                 // Method java/net/URI.create:(Ljava/lang/String;)Ljava/net/URI;\n+         8: invokevirtual #20                 // Method dev/langchain4j/data/image/Image$Builder.url:(Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n+        11: ldc           #26                 // String base64Data\n+        13: invokevirtual #28                 // Method dev/langchain4j/data/image/Image$Builder.base64Data:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+        16: ldc           #31                 // String image/png\n+        18: invokevirtual #33                 // Method dev/langchain4j/data/image/Image$Builder.mimeType:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+        21: ldc           #36                 // String revisedPrompt\n+        23: invokevirtual #38                 // Method dev/langchain4j/data/image/Image$Builder.revisedPrompt:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+        26: invokevirtual #40                 // Method dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n         29: astore_1\n         30: aload_0\n         31: aload_1\n-        32: invokevirtual #27                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        35: ldc           #28                 // String Image { url = \\\"https://example.com/image.png\\\", base64Data = \\\"base64Data\\\", mimeType = \\\"image/png\\\", revisedPrompt = \\\"revisedPrompt\\\" }\n-        37: invokevirtual #29                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+        32: invokevirtual #86                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        35: ldc           #89                 // String Image { url = \\\"https://example.com/image.png\\\", base64Data = \\\"base64Data\\\", mimeType = \\\"image/png\\\", revisedPrompt = \\\"revisedPrompt\\\" }\n+        37: invokevirtual #91                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n         40: pop\n         41: return\n       LineNumberTable:\n         line 42: 0\n         line 43: 5\n         line 44: 13\n         line 45: 18\n@@ -311,141 +311,141 @@\n         line 50: 37\n         line 52: 41\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      42     0  this   Ldev/langchain4j/data/image/ImageTest;\n            30      12     1 image   Ldev/langchain4j/data/image/Image;\n     RuntimeVisibleAnnotations:\n-      0: #53()\n+      0: #125()\n         org.junit.jupiter.api.Test\n \n   public void test_equals_hash();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=3, args_size=1\n-         0: invokestatic  #2                  // Method dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n-         3: ldc           #4                  // String https://example.com/image.png\n-         5: invokestatic  #26                 // Method java/net/URI.create:(Ljava/lang/String;)Ljava/net/URI;\n-         8: invokevirtual #6                  // Method dev/langchain4j/data/image/Image$Builder.url:(Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n-        11: ldc           #7                  // String base64Data\n-        13: invokevirtual #8                  // Method dev/langchain4j/data/image/Image$Builder.base64Data:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-        16: ldc           #9                  // String image/png\n-        18: invokevirtual #10                 // Method dev/langchain4j/data/image/Image$Builder.mimeType:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-        21: ldc           #11                 // String revisedPrompt\n-        23: invokevirtual #12                 // Method dev/langchain4j/data/image/Image$Builder.revisedPrompt:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-        26: invokevirtual #13                 // Method dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n+         0: invokestatic  #7                  // Method dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n+         3: ldc           #15                 // String https://example.com/image.png\n+         5: invokestatic  #82                 // Method java/net/URI.create:(Ljava/lang/String;)Ljava/net/URI;\n+         8: invokevirtual #20                 // Method dev/langchain4j/data/image/Image$Builder.url:(Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n+        11: ldc           #26                 // String base64Data\n+        13: invokevirtual #28                 // Method dev/langchain4j/data/image/Image$Builder.base64Data:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+        16: ldc           #31                 // String image/png\n+        18: invokevirtual #33                 // Method dev/langchain4j/data/image/Image$Builder.mimeType:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+        21: ldc           #36                 // String revisedPrompt\n+        23: invokevirtual #38                 // Method dev/langchain4j/data/image/Image$Builder.revisedPrompt:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+        26: invokevirtual #40                 // Method dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n         29: astore_1\n-        30: invokestatic  #2                  // Method dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n-        33: ldc           #4                  // String https://example.com/image.png\n-        35: invokestatic  #26                 // Method java/net/URI.create:(Ljava/lang/String;)Ljava/net/URI;\n-        38: invokevirtual #6                  // Method dev/langchain4j/data/image/Image$Builder.url:(Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n-        41: ldc           #7                  // String base64Data\n-        43: invokevirtual #8                  // Method dev/langchain4j/data/image/Image$Builder.base64Data:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-        46: ldc           #9                  // String image/png\n-        48: invokevirtual #10                 // Method dev/langchain4j/data/image/Image$Builder.mimeType:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-        51: ldc           #11                 // String revisedPrompt\n-        53: invokevirtual #12                 // Method dev/langchain4j/data/image/Image$Builder.revisedPrompt:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-        56: invokevirtual #13                 // Method dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n+        30: invokestatic  #7                  // Method dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n+        33: ldc           #15                 // String https://example.com/image.png\n+        35: invokestatic  #82                 // Method java/net/URI.create:(Ljava/lang/String;)Ljava/net/URI;\n+        38: invokevirtual #20                 // Method dev/langchain4j/data/image/Image$Builder.url:(Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n+        41: ldc           #26                 // String base64Data\n+        43: invokevirtual #28                 // Method dev/langchain4j/data/image/Image$Builder.base64Data:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+        46: ldc           #31                 // String image/png\n+        48: invokevirtual #33                 // Method dev/langchain4j/data/image/Image$Builder.mimeType:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+        51: ldc           #36                 // String revisedPrompt\n+        53: invokevirtual #38                 // Method dev/langchain4j/data/image/Image$Builder.revisedPrompt:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+        56: invokevirtual #40                 // Method dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n         59: astore_2\n         60: aload_0\n         61: aload_1\n-        62: invokevirtual #27                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        62: invokevirtual #86                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         65: aload_1\n-        66: invokevirtual #30                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        69: checkcast     #31                 // class org/assertj/core/api/ObjectAssert\n+        66: invokevirtual #97                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        69: checkcast     #92                 // class org/assertj/core/api/ObjectAssert\n         72: aconst_null\n-        73: invokevirtual #32                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        76: checkcast     #31                 // class org/assertj/core/api/ObjectAssert\n-        79: new           #33                 // class java/lang/Object\n+        73: invokevirtual #98                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        76: checkcast     #92                 // class org/assertj/core/api/ObjectAssert\n+        79: new           #2                  // class java/lang/Object\n         82: dup\n         83: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n-        86: invokevirtual #32                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        89: checkcast     #31                 // class org/assertj/core/api/ObjectAssert\n+        86: invokevirtual #98                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        89: checkcast     #92                 // class org/assertj/core/api/ObjectAssert\n         92: aload_2\n-        93: invokevirtual #30                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        96: checkcast     #31                 // class org/assertj/core/api/ObjectAssert\n+        93: invokevirtual #97                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        96: checkcast     #92                 // class org/assertj/core/api/ObjectAssert\n         99: aload_2\n-       100: invokevirtual #34                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       100: invokevirtual #101                // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        103: pop\n        104: aload_0\n-       105: invokestatic  #2                  // Method dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n-       108: ldc           #35                 // String https://change\n-       110: invokestatic  #26                 // Method java/net/URI.create:(Ljava/lang/String;)Ljava/net/URI;\n-       113: invokevirtual #6                  // Method dev/langchain4j/data/image/Image$Builder.url:(Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n-       116: ldc           #7                  // String base64Data\n-       118: invokevirtual #8                  // Method dev/langchain4j/data/image/Image$Builder.base64Data:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-       121: ldc           #9                  // String image/png\n-       123: invokevirtual #10                 // Method dev/langchain4j/data/image/Image$Builder.mimeType:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-       126: ldc           #11                 // String revisedPrompt\n-       128: invokevirtual #12                 // Method dev/langchain4j/data/image/Image$Builder.revisedPrompt:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-       131: invokevirtual #13                 // Method dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n-       134: invokevirtual #27                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       105: invokestatic  #7                  // Method dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n+       108: ldc           #104                // String https://change\n+       110: invokestatic  #82                 // Method java/net/URI.create:(Ljava/lang/String;)Ljava/net/URI;\n+       113: invokevirtual #20                 // Method dev/langchain4j/data/image/Image$Builder.url:(Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n+       116: ldc           #26                 // String base64Data\n+       118: invokevirtual #28                 // Method dev/langchain4j/data/image/Image$Builder.base64Data:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+       121: ldc           #31                 // String image/png\n+       123: invokevirtual #33                 // Method dev/langchain4j/data/image/Image$Builder.mimeType:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+       126: ldc           #36                 // String revisedPrompt\n+       128: invokevirtual #38                 // Method dev/langchain4j/data/image/Image$Builder.revisedPrompt:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+       131: invokevirtual #40                 // Method dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n+       134: invokevirtual #86                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        137: aload_1\n-       138: invokevirtual #32                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       141: checkcast     #31                 // class org/assertj/core/api/ObjectAssert\n+       138: invokevirtual #98                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       141: checkcast     #92                 // class org/assertj/core/api/ObjectAssert\n        144: aload_1\n-       145: invokevirtual #36                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       145: invokevirtual #106                // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        148: pop\n        149: aload_0\n-       150: invokestatic  #2                  // Method dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n-       153: ldc           #4                  // String https://example.com/image.png\n-       155: invokestatic  #26                 // Method java/net/URI.create:(Ljava/lang/String;)Ljava/net/URI;\n-       158: invokevirtual #6                  // Method dev/langchain4j/data/image/Image$Builder.url:(Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n-       161: ldc           #37                 // String changed\n-       163: invokevirtual #8                  // Method dev/langchain4j/data/image/Image$Builder.base64Data:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-       166: ldc           #9                  // String image/png\n-       168: invokevirtual #10                 // Method dev/langchain4j/data/image/Image$Builder.mimeType:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-       171: ldc           #11                 // String revisedPrompt\n-       173: invokevirtual #12                 // Method dev/langchain4j/data/image/Image$Builder.revisedPrompt:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-       176: invokevirtual #13                 // Method dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n-       179: invokevirtual #27                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       150: invokestatic  #7                  // Method dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n+       153: ldc           #15                 // String https://example.com/image.png\n+       155: invokestatic  #82                 // Method java/net/URI.create:(Ljava/lang/String;)Ljava/net/URI;\n+       158: invokevirtual #20                 // Method dev/langchain4j/data/image/Image$Builder.url:(Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n+       161: ldc           #109                // String changed\n+       163: invokevirtual #28                 // Method dev/langchain4j/data/image/Image$Builder.base64Data:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+       166: ldc           #31                 // String image/png\n+       168: invokevirtual #33                 // Method dev/langchain4j/data/image/Image$Builder.mimeType:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+       171: ldc           #36                 // String revisedPrompt\n+       173: invokevirtual #38                 // Method dev/langchain4j/data/image/Image$Builder.revisedPrompt:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+       176: invokevirtual #40                 // Method dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n+       179: invokevirtual #86                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        182: aload_1\n-       183: invokevirtual #32                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       186: checkcast     #31                 // class org/assertj/core/api/ObjectAssert\n+       183: invokevirtual #98                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       186: checkcast     #92                 // class org/assertj/core/api/ObjectAssert\n        189: aload_1\n-       190: invokevirtual #36                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       190: invokevirtual #106                // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        193: pop\n        194: aload_0\n-       195: invokestatic  #2                  // Method dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n-       198: ldc           #4                  // String https://example.com/image.png\n-       200: invokestatic  #26                 // Method java/net/URI.create:(Ljava/lang/String;)Ljava/net/URI;\n-       203: invokevirtual #6                  // Method dev/langchain4j/data/image/Image$Builder.url:(Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n-       206: ldc           #7                  // String base64Data\n-       208: invokevirtual #8                  // Method dev/langchain4j/data/image/Image$Builder.base64Data:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-       211: ldc           #37                 // String changed\n-       213: invokevirtual #10                 // Method dev/langchain4j/data/image/Image$Builder.mimeType:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-       216: ldc           #11                 // String revisedPrompt\n-       218: invokevirtual #12                 // Method dev/langchain4j/data/image/Image$Builder.revisedPrompt:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-       221: invokevirtual #13                 // Method dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n-       224: invokevirtual #27                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       195: invokestatic  #7                  // Method dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n+       198: ldc           #15                 // String https://example.com/image.png\n+       200: invokestatic  #82                 // Method java/net/URI.create:(Ljava/lang/String;)Ljava/net/URI;\n+       203: invokevirtual #20                 // Method dev/langchain4j/data/image/Image$Builder.url:(Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n+       206: ldc           #26                 // String base64Data\n+       208: invokevirtual #28                 // Method dev/langchain4j/data/image/Image$Builder.base64Data:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+       211: ldc           #109                // String changed\n+       213: invokevirtual #33                 // Method dev/langchain4j/data/image/Image$Builder.mimeType:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+       216: ldc           #36                 // String revisedPrompt\n+       218: invokevirtual #38                 // Method dev/langchain4j/data/image/Image$Builder.revisedPrompt:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+       221: invokevirtual #40                 // Method dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n+       224: invokevirtual #86                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        227: aload_1\n-       228: invokevirtual #32                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       231: checkcast     #31                 // class org/assertj/core/api/ObjectAssert\n+       228: invokevirtual #98                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       231: checkcast     #92                 // class org/assertj/core/api/ObjectAssert\n        234: aload_1\n-       235: invokevirtual #36                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       235: invokevirtual #106                // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        238: pop\n        239: aload_0\n-       240: invokestatic  #2                  // Method dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n-       243: ldc           #4                  // String https://example.com/image.png\n-       245: invokestatic  #26                 // Method java/net/URI.create:(Ljava/lang/String;)Ljava/net/URI;\n-       248: invokevirtual #6                  // Method dev/langchain4j/data/image/Image$Builder.url:(Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n-       251: ldc           #7                  // String base64Data\n-       253: invokevirtual #8                  // Method dev/langchain4j/data/image/Image$Builder.base64Data:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-       256: ldc           #9                  // String image/png\n-       258: invokevirtual #10                 // Method dev/langchain4j/data/image/Image$Builder.mimeType:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-       261: ldc           #37                 // String changed\n-       263: invokevirtual #12                 // Method dev/langchain4j/data/image/Image$Builder.revisedPrompt:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-       266: invokevirtual #13                 // Method dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n-       269: invokevirtual #27                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       240: invokestatic  #7                  // Method dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n+       243: ldc           #15                 // String https://example.com/image.png\n+       245: invokestatic  #82                 // Method java/net/URI.create:(Ljava/lang/String;)Ljava/net/URI;\n+       248: invokevirtual #20                 // Method dev/langchain4j/data/image/Image$Builder.url:(Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n+       251: ldc           #26                 // String base64Data\n+       253: invokevirtual #28                 // Method dev/langchain4j/data/image/Image$Builder.base64Data:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+       256: ldc           #31                 // String image/png\n+       258: invokevirtual #33                 // Method dev/langchain4j/data/image/Image$Builder.mimeType:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+       261: ldc           #109                // String changed\n+       263: invokevirtual #38                 // Method dev/langchain4j/data/image/Image$Builder.revisedPrompt:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+       266: invokevirtual #40                 // Method dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n+       269: invokevirtual #86                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        272: aload_1\n-       273: invokevirtual #32                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       276: checkcast     #31                 // class org/assertj/core/api/ObjectAssert\n+       273: invokevirtual #98                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       276: checkcast     #92                 // class org/assertj/core/api/ObjectAssert\n        279: aload_1\n-       280: invokevirtual #36                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       280: invokevirtual #106                // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        283: pop\n        284: return\n       LineNumberTable:\n         line 56: 0\n         line 57: 5\n         line 58: 13\n         line 59: 18\n@@ -506,13 +506,13 @@\n         line 115: 284\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     285     0  this   Ldev/langchain4j/data/image/ImageTest;\n            30     255     1 image1   Ldev/langchain4j/data/image/Image;\n            60     225     2 image2   Ldev/langchain4j/data/image/Image;\n     RuntimeVisibleAnnotations:\n-      0: #53()\n+      0: #125()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"ImageTest.java\"\n InnerClasses:\n-  public static #104= #66 of #61;         // Builder=class dev/langchain4j/data/image/Image$Builder of class dev/langchain4j/data/image/Image\n+  public static #133= #21 of #8;          // Builder=class dev/langchain4j/data/image/Image$Builder of class dev/langchain4j/data/image/Image\n"}]}, {"source1": "dev/langchain4j/data/message/AiMessageTest.class", "source2": "dev/langchain4j/data/message/AiMessageTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,195 +1,195 @@\n-  SHA-256 checksum 2c3ceb1f57c4879f91298af657c27b5e1d0714f5090042fe7cd53640fde30680\n+  SHA-256 checksum aef434d35305dcde7c2f1c3c7b1d044c9f4edbf71a3493cbb4d26e58c6b48a85\n   Compiled from \"AiMessageTest.java\"\n class dev.langchain4j.data.message.AiMessageTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #47                         // dev/langchain4j/data/message/AiMessageTest\n-  super_class: #36                        // java/lang/Object\n+  this_class: #19                         // dev/langchain4j/data/message/AiMessageTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 4, attributes: 2\n Constant pool:\n-    #1 = Methodref          #36.#72       // java/lang/Object.\"<init>\":()V\n-    #2 = Class              #73           // dev/langchain4j/data/message/AiMessage\n-    #3 = String             #74           // text\n-    #4 = Methodref          #2.#75        // dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n-    #5 = Methodref          #2.#76        // dev/langchain4j/data/message/AiMessage.type:()Ldev/langchain4j/data/message/ChatMessageType;\n-    #6 = Methodref          #47.#77       // dev/langchain4j/data/message/AiMessageTest.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-    #7 = Fieldref           #78.#79       // dev/langchain4j/data/message/ChatMessageType.AI:Ldev/langchain4j/data/message/ChatMessageType;\n-    #8 = Methodref          #80.#81       // org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-    #9 = Methodref          #2.#82        // dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n-   #10 = Methodref          #47.#83       // dev/langchain4j/data/message/AiMessageTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #11 = Methodref          #84.#85       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #12 = Methodref          #2.#86        // dev/langchain4j/data/message/AiMessage.toolExecutionRequests:()Ljava/util/List;\n-   #13 = Methodref          #47.#87       // dev/langchain4j/data/message/AiMessageTest.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-   #14 = Methodref          #88.#89       // org/assertj/core/api/ListAssert.isNull:()V\n-   #15 = Methodref          #2.#90        // dev/langchain4j/data/message/AiMessage.hasToolExecutionRequests:()Z\n-   #16 = Methodref          #47.#91       // dev/langchain4j/data/message/AiMessageTest.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-   #17 = Methodref          #92.#93       // org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n-   #18 = Methodref          #47.#94       // dev/langchain4j/data/message/AiMessageTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #19 = String             #95           // AiMessage { text = \\\"text\\\" toolExecutionRequests = null }\n-   #20 = Methodref          #34.#96       // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-   #21 = Class              #97           // dev/langchain4j/agent/tool/ToolExecutionRequest\n-   #22 = Methodref          #21.#98       // dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #23 = String             #99           // foo\n-   #24 = Methodref          #100.#101     // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #25 = Methodref          #100.#102     // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-   #26 = String             #103          // bar\n-   #27 = Methodref          #104.#105     // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-   #28 = Methodref          #2.#106       // dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/util/List;)V\n-   #29 = Methodref          #84.#89       // org/assertj/core/api/AbstractStringAssert.isNull:()V\n-   #30 = Methodref          #88.#107      // org/assertj/core/api/ListAssert.hasSize:(I)Lorg/assertj/core/api/AbstractIterableAssert;\n-   #31 = Methodref          #92.#108      // org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n-   #32 = String             #109          // AiMessage { text = null toolExecutionRequests = [ToolExecutionRequest { id = \\\"foo\\\", name = null, arguments = null }, ToolExecutionRequest { id = \\\"bar\\\", name = null, arguments = null }] }\n-   #33 = Methodref          #34.#81       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #34 = Class              #110          // org/assertj/core/api/ObjectAssert\n-   #35 = Methodref          #34.#111      // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #36 = Class              #112          // java/lang/Object\n-   #37 = Methodref          #34.#113      // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #38 = String             #114          // different\n-   #39 = Methodref          #34.#115      // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #40 = Methodref          #2.#116       // dev/langchain4j/data/message/AiMessage.from:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n-   #41 = Methodref          #88.#117      // org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-   #42 = Methodref          #2.#118       // dev/langchain4j/data/message/AiMessage.aiMessage:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n-   #43 = Methodref          #2.#119       // dev/langchain4j/data/message/AiMessage.from:(Ljava/util/List;)Ldev/langchain4j/data/message/AiMessage;\n-   #44 = Methodref          #2.#120       // dev/langchain4j/data/message/AiMessage.aiMessage:(Ljava/util/List;)Ldev/langchain4j/data/message/AiMessage;\n-   #45 = Methodref          #2.#121       // dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n-   #46 = Methodref          #2.#122       // dev/langchain4j/data/message/AiMessage.aiMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n-   #47 = Class              #123          // dev/langchain4j/data/message/AiMessageTest\n-   #48 = Class              #124          // org/assertj/core/api/WithAssertions\n-   #49 = Utf8               <init>\n-   #50 = Utf8               ()V\n-   #51 = Utf8               Code\n-   #52 = Utf8               LineNumberTable\n-   #53 = Utf8               LocalVariableTable\n-   #54 = Utf8               this\n-   #55 = Utf8               Ldev/langchain4j/data/message/AiMessageTest;\n-   #56 = Utf8               test_accessors\n-   #57 = Utf8               m\n-   #58 = Utf8               Ldev/langchain4j/data/message/AiMessage;\n-   #59 = Utf8               RuntimeVisibleAnnotations\n-   #60 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #61 = Utf8               test_equals_and_hashCode\n-   #62 = Utf8               m1\n-   #63 = Utf8               m2\n-   #64 = Utf8               m3\n-   #65 = Utf8               m4\n-   #66 = Utf8               m5\n-   #67 = Utf8               test_from\n-   #68 = Utf8               requests\n-   #69 = Utf8               [Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-   #70 = Utf8               SourceFile\n-   #71 = Utf8               AiMessageTest.java\n-   #72 = NameAndType        #49:#50       // \"<init>\":()V\n-   #73 = Utf8               dev/langchain4j/data/message/AiMessage\n-   #74 = Utf8               text\n-   #75 = NameAndType        #49:#125      // \"<init>\":(Ljava/lang/String;)V\n-   #76 = NameAndType        #126:#127     // type:()Ldev/langchain4j/data/message/ChatMessageType;\n-   #77 = NameAndType        #128:#129     // assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-   #78 = Class              #130          // dev/langchain4j/data/message/ChatMessageType\n-   #79 = NameAndType        #131:#132     // AI:Ldev/langchain4j/data/message/ChatMessageType;\n-   #80 = Class              #133          // org/assertj/core/api/AbstractComparableAssert\n-   #81 = NameAndType        #134:#135     // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #82 = NameAndType        #74:#136      // text:()Ljava/lang/String;\n-   #83 = NameAndType        #128:#137     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #84 = Class              #138          // org/assertj/core/api/AbstractStringAssert\n-   #85 = NameAndType        #134:#137     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #86 = NameAndType        #139:#140     // toolExecutionRequests:()Ljava/util/List;\n-   #87 = NameAndType        #128:#141     // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-   #88 = Class              #142          // org/assertj/core/api/ListAssert\n-   #89 = NameAndType        #143:#50      // isNull:()V\n-   #90 = NameAndType        #144:#145     // hasToolExecutionRequests:()Z\n-   #91 = NameAndType        #128:#146     // assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-   #92 = Class              #147          // org/assertj/core/api/AbstractBooleanAssert\n-   #93 = NameAndType        #148:#149     // isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n-   #94 = NameAndType        #128:#150     // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #95 = Utf8               AiMessage { text = \\\"text\\\" toolExecutionRequests = null }\n-   #96 = NameAndType        #151:#152     // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-   #97 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest\n-   #98 = NameAndType        #153:#156     // builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #99 = Utf8               foo\n-  #100 = Class              #157          // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n-  #101 = NameAndType        #158:#159     // id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #102 = NameAndType        #160:#161     // build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-  #103 = Utf8               bar\n-  #104 = Class              #162          // java/util/Arrays\n-  #105 = NameAndType        #163:#164     // asList:([Ljava/lang/Object;)Ljava/util/List;\n-  #106 = NameAndType        #49:#165      // \"<init>\":(Ljava/util/List;)V\n-  #107 = NameAndType        #166:#167     // hasSize:(I)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #108 = NameAndType        #168:#149     // isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n-  #109 = Utf8               AiMessage { text = null toolExecutionRequests = [ToolExecutionRequest { id = \\\"foo\\\", name = null, arguments = null }, ToolExecutionRequest { id = \\\"bar\\\", name = null, arguments = null }] }\n-  #110 = Utf8               org/assertj/core/api/ObjectAssert\n-  #111 = NameAndType        #169:#135     // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #112 = Utf8               java/lang/Object\n-  #113 = NameAndType        #170:#135     // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #114 = Utf8               different\n-  #115 = NameAndType        #171:#135     // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #116 = NameAndType        #172:#173     // from:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n-  #117 = NameAndType        #174:#175     // containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #118 = NameAndType        #176:#173     // aiMessage:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n-  #119 = NameAndType        #172:#177     // from:(Ljava/util/List;)Ldev/langchain4j/data/message/AiMessage;\n-  #120 = NameAndType        #176:#177     // aiMessage:(Ljava/util/List;)Ldev/langchain4j/data/message/AiMessage;\n-  #121 = NameAndType        #172:#178     // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n-  #122 = NameAndType        #176:#178     // aiMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n-  #123 = Utf8               dev/langchain4j/data/message/AiMessageTest\n-  #124 = Utf8               org/assertj/core/api/WithAssertions\n-  #125 = Utf8               (Ljava/lang/String;)V\n-  #126 = Utf8               type\n-  #127 = Utf8               ()Ldev/langchain4j/data/message/ChatMessageType;\n-  #128 = Utf8               assertThat\n-  #129 = Utf8               (Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-  #130 = Utf8               dev/langchain4j/data/message/ChatMessageType\n-  #131 = Utf8               AI\n-  #132 = Utf8               Ldev/langchain4j/data/message/ChatMessageType;\n-  #133 = Utf8               org/assertj/core/api/AbstractComparableAssert\n-  #134 = Utf8               isEqualTo\n-  #135 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #136 = Utf8               ()Ljava/lang/String;\n-  #137 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #138 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #139 = Utf8               toolExecutionRequests\n-  #140 = Utf8               ()Ljava/util/List;\n-  #141 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #142 = Utf8               org/assertj/core/api/ListAssert\n-  #143 = Utf8               isNull\n-  #144 = Utf8               hasToolExecutionRequests\n-  #145 = Utf8               ()Z\n-  #146 = Utf8               (Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-  #147 = Utf8               org/assertj/core/api/AbstractBooleanAssert\n-  #148 = Utf8               isFalse\n-  #149 = Utf8               ()Lorg/assertj/core/api/AbstractBooleanAssert;\n-  #150 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #151 = Utf8               hasToString\n-  #152 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-  #153 = Utf8               builder\n-  #154 = Utf8               Builder\n-  #155 = Utf8               InnerClasses\n-  #156 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #157 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n-  #158 = Utf8               id\n-  #159 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #160 = Utf8               build\n-  #161 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-  #162 = Utf8               java/util/Arrays\n-  #163 = Utf8               asList\n-  #164 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n-  #165 = Utf8               (Ljava/util/List;)V\n-  #166 = Utf8               hasSize\n-  #167 = Utf8               (I)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #168 = Utf8               isTrue\n-  #169 = Utf8               isNotEqualTo\n-  #170 = Utf8               hasSameHashCodeAs\n-  #171 = Utf8               doesNotHaveSameHashCodeAs\n-  #172 = Utf8               from\n-  #173 = Utf8               ([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n-  #174 = Utf8               containsOnly\n-  #175 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #176 = Utf8               aiMessage\n-  #177 = Utf8               (Ljava/util/List;)Ldev/langchain4j/data/message/AiMessage;\n-  #178 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Class              #8            // dev/langchain4j/data/message/AiMessage\n+    #8 = Utf8               dev/langchain4j/data/message/AiMessage\n+    #9 = String             #10           // text\n+   #10 = Utf8               text\n+   #11 = Methodref          #7.#12        // dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n+   #12 = NameAndType        #5:#13        // \"<init>\":(Ljava/lang/String;)V\n+   #13 = Utf8               (Ljava/lang/String;)V\n+   #14 = Methodref          #7.#15        // dev/langchain4j/data/message/AiMessage.type:()Ldev/langchain4j/data/message/ChatMessageType;\n+   #15 = NameAndType        #16:#17       // type:()Ldev/langchain4j/data/message/ChatMessageType;\n+   #16 = Utf8               type\n+   #17 = Utf8               ()Ldev/langchain4j/data/message/ChatMessageType;\n+   #18 = Methodref          #19.#20       // dev/langchain4j/data/message/AiMessageTest.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+   #19 = Class              #21           // dev/langchain4j/data/message/AiMessageTest\n+   #20 = NameAndType        #22:#23       // assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+   #21 = Utf8               dev/langchain4j/data/message/AiMessageTest\n+   #22 = Utf8               assertThat\n+   #23 = Utf8               (Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+   #24 = Fieldref           #25.#26       // dev/langchain4j/data/message/ChatMessageType.AI:Ldev/langchain4j/data/message/ChatMessageType;\n+   #25 = Class              #27           // dev/langchain4j/data/message/ChatMessageType\n+   #26 = NameAndType        #28:#29       // AI:Ldev/langchain4j/data/message/ChatMessageType;\n+   #27 = Utf8               dev/langchain4j/data/message/ChatMessageType\n+   #28 = Utf8               AI\n+   #29 = Utf8               Ldev/langchain4j/data/message/ChatMessageType;\n+   #30 = Methodref          #31.#32       // org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #31 = Class              #33           // org/assertj/core/api/AbstractComparableAssert\n+   #32 = NameAndType        #34:#35       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #33 = Utf8               org/assertj/core/api/AbstractComparableAssert\n+   #34 = Utf8               isEqualTo\n+   #35 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #36 = Methodref          #7.#37        // dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n+   #37 = NameAndType        #10:#38       // text:()Ljava/lang/String;\n+   #38 = Utf8               ()Ljava/lang/String;\n+   #39 = Methodref          #19.#40       // dev/langchain4j/data/message/AiMessageTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #40 = NameAndType        #22:#41       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #41 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #42 = Methodref          #43.#44       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #43 = Class              #45           // org/assertj/core/api/AbstractStringAssert\n+   #44 = NameAndType        #34:#41       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #45 = Utf8               org/assertj/core/api/AbstractStringAssert\n+   #46 = Methodref          #7.#47        // dev/langchain4j/data/message/AiMessage.toolExecutionRequests:()Ljava/util/List;\n+   #47 = NameAndType        #48:#49       // toolExecutionRequests:()Ljava/util/List;\n+   #48 = Utf8               toolExecutionRequests\n+   #49 = Utf8               ()Ljava/util/List;\n+   #50 = Methodref          #19.#51       // dev/langchain4j/data/message/AiMessageTest.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+   #51 = NameAndType        #22:#52       // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+   #52 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+   #53 = Methodref          #54.#55       // org/assertj/core/api/ListAssert.isNull:()V\n+   #54 = Class              #56           // org/assertj/core/api/ListAssert\n+   #55 = NameAndType        #57:#6        // isNull:()V\n+   #56 = Utf8               org/assertj/core/api/ListAssert\n+   #57 = Utf8               isNull\n+   #58 = Methodref          #7.#59        // dev/langchain4j/data/message/AiMessage.hasToolExecutionRequests:()Z\n+   #59 = NameAndType        #60:#61       // hasToolExecutionRequests:()Z\n+   #60 = Utf8               hasToolExecutionRequests\n+   #61 = Utf8               ()Z\n+   #62 = Methodref          #19.#63       // dev/langchain4j/data/message/AiMessageTest.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+   #63 = NameAndType        #22:#64       // assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+   #64 = Utf8               (Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+   #65 = Methodref          #66.#67       // org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+   #66 = Class              #68           // org/assertj/core/api/AbstractBooleanAssert\n+   #67 = NameAndType        #69:#70       // isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+   #68 = Utf8               org/assertj/core/api/AbstractBooleanAssert\n+   #69 = Utf8               isFalse\n+   #70 = Utf8               ()Lorg/assertj/core/api/AbstractBooleanAssert;\n+   #71 = Methodref          #19.#72       // dev/langchain4j/data/message/AiMessageTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #72 = NameAndType        #22:#73       // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #73 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #74 = String             #75           // AiMessage { text = \\\"text\\\" toolExecutionRequests = null }\n+   #75 = Utf8               AiMessage { text = \\\"text\\\" toolExecutionRequests = null }\n+   #76 = Methodref          #77.#78       // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #77 = Class              #79           // org/assertj/core/api/ObjectAssert\n+   #78 = NameAndType        #80:#81       // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #79 = Utf8               org/assertj/core/api/ObjectAssert\n+   #80 = Utf8               hasToString\n+   #81 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #82 = Class              #83           // dev/langchain4j/agent/tool/ToolExecutionRequest\n+   #83 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest\n+   #84 = Methodref          #82.#85       // dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #85 = NameAndType        #86:#87       // builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #86 = Utf8               builder\n+   #87 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #88 = String             #89           // foo\n+   #89 = Utf8               foo\n+   #90 = Methodref          #91.#92       // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #91 = Class              #93           // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n+   #92 = NameAndType        #94:#95       // id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #93 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n+   #94 = Utf8               id\n+   #95 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #96 = Methodref          #91.#97       // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+   #97 = NameAndType        #98:#99       // build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+   #98 = Utf8               build\n+   #99 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+  #100 = String             #101          // bar\n+  #101 = Utf8               bar\n+  #102 = Methodref          #103.#104     // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+  #103 = Class              #105          // java/util/Arrays\n+  #104 = NameAndType        #106:#107     // asList:([Ljava/lang/Object;)Ljava/util/List;\n+  #105 = Utf8               java/util/Arrays\n+  #106 = Utf8               asList\n+  #107 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n+  #108 = Methodref          #7.#109       // dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/util/List;)V\n+  #109 = NameAndType        #5:#110       // \"<init>\":(Ljava/util/List;)V\n+  #110 = Utf8               (Ljava/util/List;)V\n+  #111 = Methodref          #43.#55       // org/assertj/core/api/AbstractStringAssert.isNull:()V\n+  #112 = Methodref          #54.#113      // org/assertj/core/api/ListAssert.hasSize:(I)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #113 = NameAndType        #114:#115     // hasSize:(I)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #114 = Utf8               hasSize\n+  #115 = Utf8               (I)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #116 = Methodref          #66.#117      // org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+  #117 = NameAndType        #118:#70      // isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+  #118 = Utf8               isTrue\n+  #119 = String             #120          // AiMessage { text = null toolExecutionRequests = [ToolExecutionRequest { id = \\\"foo\\\", name = null, arguments = null }, ToolExecutionRequest { id = \\\"bar\\\", name = null, arguments = null }] }\n+  #120 = Utf8               AiMessage { text = null toolExecutionRequests = [ToolExecutionRequest { id = \\\"foo\\\", name = null, arguments = null }, ToolExecutionRequest { id = \\\"bar\\\", name = null, arguments = null }] }\n+  #121 = Methodref          #77.#32       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #122 = Methodref          #77.#123      // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #123 = NameAndType        #124:#35      // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #124 = Utf8               isNotEqualTo\n+  #125 = Methodref          #77.#126      // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #126 = NameAndType        #127:#35      // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #127 = Utf8               hasSameHashCodeAs\n+  #128 = String             #129          // different\n+  #129 = Utf8               different\n+  #130 = Methodref          #77.#131      // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #131 = NameAndType        #132:#35      // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #132 = Utf8               doesNotHaveSameHashCodeAs\n+  #133 = Methodref          #7.#134       // dev/langchain4j/data/message/AiMessage.from:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n+  #134 = NameAndType        #135:#136     // from:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n+  #135 = Utf8               from\n+  #136 = Utf8               ([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n+  #137 = Methodref          #54.#138      // org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #138 = NameAndType        #139:#140     // containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #139 = Utf8               containsOnly\n+  #140 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #141 = Methodref          #7.#142       // dev/langchain4j/data/message/AiMessage.aiMessage:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n+  #142 = NameAndType        #143:#136     // aiMessage:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n+  #143 = Utf8               aiMessage\n+  #144 = Methodref          #7.#145       // dev/langchain4j/data/message/AiMessage.from:(Ljava/util/List;)Ldev/langchain4j/data/message/AiMessage;\n+  #145 = NameAndType        #135:#146     // from:(Ljava/util/List;)Ldev/langchain4j/data/message/AiMessage;\n+  #146 = Utf8               (Ljava/util/List;)Ldev/langchain4j/data/message/AiMessage;\n+  #147 = Methodref          #7.#148       // dev/langchain4j/data/message/AiMessage.aiMessage:(Ljava/util/List;)Ldev/langchain4j/data/message/AiMessage;\n+  #148 = NameAndType        #143:#146     // aiMessage:(Ljava/util/List;)Ldev/langchain4j/data/message/AiMessage;\n+  #149 = Methodref          #7.#150       // dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+  #150 = NameAndType        #135:#151     // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+  #151 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+  #152 = Methodref          #7.#153       // dev/langchain4j/data/message/AiMessage.aiMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+  #153 = NameAndType        #143:#151     // aiMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+  #154 = Class              #155          // org/assertj/core/api/WithAssertions\n+  #155 = Utf8               org/assertj/core/api/WithAssertions\n+  #156 = Utf8               Code\n+  #157 = Utf8               LineNumberTable\n+  #158 = Utf8               LocalVariableTable\n+  #159 = Utf8               this\n+  #160 = Utf8               Ldev/langchain4j/data/message/AiMessageTest;\n+  #161 = Utf8               test_accessors\n+  #162 = Utf8               m\n+  #163 = Utf8               Ldev/langchain4j/data/message/AiMessage;\n+  #164 = Utf8               RuntimeVisibleAnnotations\n+  #165 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #166 = Utf8               test_equals_and_hashCode\n+  #167 = Utf8               m1\n+  #168 = Utf8               m2\n+  #169 = Utf8               m3\n+  #170 = Utf8               m4\n+  #171 = Utf8               m5\n+  #172 = Utf8               test_from\n+  #173 = Utf8               requests\n+  #174 = Utf8               [Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+  #175 = Utf8               SourceFile\n+  #176 = Utf8               AiMessageTest.java\n+  #177 = Utf8               InnerClasses\n+  #178 = Utf8               Builder\n {\n   dev.langchain4j.data.message.AiMessageTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -202,101 +202,101 @@\n             0       5     0  this   Ldev/langchain4j/data/message/AiMessageTest;\n \n   public void test_accessors();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=7, locals=2, args_size=1\n-         0: new           #2                  // class dev/langchain4j/data/message/AiMessage\n+         0: new           #7                  // class dev/langchain4j/data/message/AiMessage\n          3: dup\n-         4: ldc           #3                  // String text\n-         6: invokespecial #4                  // Method dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n+         4: ldc           #9                  // String text\n+         6: invokespecial #11                 // Method dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n          9: astore_1\n         10: aload_0\n         11: aload_1\n-        12: invokevirtual #5                  // Method dev/langchain4j/data/message/AiMessage.type:()Ldev/langchain4j/data/message/ChatMessageType;\n-        15: invokevirtual #6                  // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-        18: getstatic     #7                  // Field dev/langchain4j/data/message/ChatMessageType.AI:Ldev/langchain4j/data/message/ChatMessageType;\n-        21: invokevirtual #8                  // Method org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        12: invokevirtual #14                 // Method dev/langchain4j/data/message/AiMessage.type:()Ldev/langchain4j/data/message/ChatMessageType;\n+        15: invokevirtual #18                 // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+        18: getstatic     #24                 // Field dev/langchain4j/data/message/ChatMessageType.AI:Ldev/langchain4j/data/message/ChatMessageType;\n+        21: invokevirtual #30                 // Method org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         24: pop\n         25: aload_0\n         26: aload_1\n-        27: invokevirtual #9                  // Method dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n-        30: invokevirtual #10                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        33: ldc           #3                  // String text\n-        35: invokevirtual #11                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        27: invokevirtual #36                 // Method dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n+        30: invokevirtual #39                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        33: ldc           #9                  // String text\n+        35: invokevirtual #42                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         38: pop\n         39: aload_0\n         40: aload_1\n-        41: invokevirtual #12                 // Method dev/langchain4j/data/message/AiMessage.toolExecutionRequests:()Ljava/util/List;\n-        44: invokevirtual #13                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-        47: invokevirtual #14                 // Method org/assertj/core/api/ListAssert.isNull:()V\n+        41: invokevirtual #46                 // Method dev/langchain4j/data/message/AiMessage.toolExecutionRequests:()Ljava/util/List;\n+        44: invokevirtual #50                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+        47: invokevirtual #53                 // Method org/assertj/core/api/ListAssert.isNull:()V\n         50: aload_0\n         51: aload_1\n-        52: invokevirtual #15                 // Method dev/langchain4j/data/message/AiMessage.hasToolExecutionRequests:()Z\n-        55: invokevirtual #16                 // Method assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-        58: invokevirtual #17                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+        52: invokevirtual #58                 // Method dev/langchain4j/data/message/AiMessage.hasToolExecutionRequests:()Z\n+        55: invokevirtual #62                 // Method assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+        58: invokevirtual #65                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n         61: pop\n         62: aload_0\n         63: aload_1\n-        64: invokevirtual #18                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        67: ldc           #19                 // String AiMessage { text = \\\"text\\\" toolExecutionRequests = null }\n-        69: invokevirtual #20                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+        64: invokevirtual #71                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        67: ldc           #74                 // String AiMessage { text = \\\"text\\\" toolExecutionRequests = null }\n+        69: invokevirtual #76                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n         72: pop\n-        73: new           #2                  // class dev/langchain4j/data/message/AiMessage\n+        73: new           #7                  // class dev/langchain4j/data/message/AiMessage\n         76: dup\n         77: iconst_2\n-        78: anewarray     #21                 // class dev/langchain4j/agent/tool/ToolExecutionRequest\n+        78: anewarray     #82                 // class dev/langchain4j/agent/tool/ToolExecutionRequest\n         81: dup\n         82: iconst_0\n-        83: invokestatic  #22                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        86: ldc           #23                 // String foo\n-        88: invokevirtual #24                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        91: invokevirtual #25                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+        83: invokestatic  #84                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        86: ldc           #88                 // String foo\n+        88: invokevirtual #90                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        91: invokevirtual #96                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n         94: aastore\n         95: dup\n         96: iconst_1\n-        97: invokestatic  #22                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-       100: ldc           #26                 // String bar\n-       102: invokevirtual #24                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-       105: invokevirtual #25                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+        97: invokestatic  #84                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+       100: ldc           #100                // String bar\n+       102: invokevirtual #90                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+       105: invokevirtual #96                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n        108: aastore\n-       109: invokestatic  #27                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       112: invokespecial #28                 // Method dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/util/List;)V\n+       109: invokestatic  #102                // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       112: invokespecial #108                // Method dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/util/List;)V\n        115: astore_1\n        116: aload_0\n        117: aload_1\n-       118: invokevirtual #5                  // Method dev/langchain4j/data/message/AiMessage.type:()Ldev/langchain4j/data/message/ChatMessageType;\n-       121: invokevirtual #6                  // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-       124: getstatic     #7                  // Field dev/langchain4j/data/message/ChatMessageType.AI:Ldev/langchain4j/data/message/ChatMessageType;\n-       127: invokevirtual #8                  // Method org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       118: invokevirtual #14                 // Method dev/langchain4j/data/message/AiMessage.type:()Ldev/langchain4j/data/message/ChatMessageType;\n+       121: invokevirtual #18                 // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+       124: getstatic     #24                 // Field dev/langchain4j/data/message/ChatMessageType.AI:Ldev/langchain4j/data/message/ChatMessageType;\n+       127: invokevirtual #30                 // Method org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        130: pop\n        131: aload_0\n        132: aload_1\n-       133: invokevirtual #9                  // Method dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n-       136: invokevirtual #10                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       139: invokevirtual #29                 // Method org/assertj/core/api/AbstractStringAssert.isNull:()V\n+       133: invokevirtual #36                 // Method dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n+       136: invokevirtual #39                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       139: invokevirtual #111                // Method org/assertj/core/api/AbstractStringAssert.isNull:()V\n        142: aload_0\n        143: aload_1\n-       144: invokevirtual #12                 // Method dev/langchain4j/data/message/AiMessage.toolExecutionRequests:()Ljava/util/List;\n-       147: invokevirtual #13                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+       144: invokevirtual #46                 // Method dev/langchain4j/data/message/AiMessage.toolExecutionRequests:()Ljava/util/List;\n+       147: invokevirtual #50                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n        150: iconst_2\n-       151: invokevirtual #30                 // Method org/assertj/core/api/ListAssert.hasSize:(I)Lorg/assertj/core/api/AbstractIterableAssert;\n+       151: invokevirtual #112                // Method org/assertj/core/api/ListAssert.hasSize:(I)Lorg/assertj/core/api/AbstractIterableAssert;\n        154: pop\n        155: aload_0\n        156: aload_1\n-       157: invokevirtual #15                 // Method dev/langchain4j/data/message/AiMessage.hasToolExecutionRequests:()Z\n-       160: invokevirtual #16                 // Method assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-       163: invokevirtual #31                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+       157: invokevirtual #58                 // Method dev/langchain4j/data/message/AiMessage.hasToolExecutionRequests:()Z\n+       160: invokevirtual #62                 // Method assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+       163: invokevirtual #116                // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n        166: pop\n        167: aload_0\n        168: aload_1\n-       169: invokevirtual #18                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-       172: ldc           #32                 // String AiMessage { text = null toolExecutionRequests = [ToolExecutionRequest { id = \\\"foo\\\", name = null, arguments = null }, ToolExecutionRequest { id = \\\"bar\\\", name = null, arguments = null }] }\n-       174: invokevirtual #20                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+       169: invokevirtual #71                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       172: ldc           #119                // String AiMessage { text = null toolExecutionRequests = [ToolExecutionRequest { id = \\\"foo\\\", name = null, arguments = null }, ToolExecutionRequest { id = \\\"bar\\\", name = null, arguments = null }] }\n+       174: invokevirtual #76                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n        177: pop\n        178: return\n       LineNumberTable:\n         line 13: 0\n         line 14: 10\n         line 15: 25\n         line 16: 39\n@@ -318,116 +318,116 @@\n         line 36: 178\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n            10      63     1     m   Ldev/langchain4j/data/message/AiMessage;\n           116      62     1     m   Ldev/langchain4j/data/message/AiMessage;\n             0     179     0  this   Ldev/langchain4j/data/message/AiMessageTest;\n     RuntimeVisibleAnnotations:\n-      0: #60()\n+      0: #165()\n         org.junit.jupiter.api.Test\n \n   public void test_equals_and_hashCode();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=5, locals=6, args_size=1\n-         0: new           #2                  // class dev/langchain4j/data/message/AiMessage\n+         0: new           #7                  // class dev/langchain4j/data/message/AiMessage\n          3: dup\n-         4: ldc           #3                  // String text\n-         6: invokespecial #4                  // Method dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n+         4: ldc           #9                  // String text\n+         6: invokespecial #11                 // Method dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n          9: astore_1\n-        10: new           #2                  // class dev/langchain4j/data/message/AiMessage\n+        10: new           #7                  // class dev/langchain4j/data/message/AiMessage\n         13: dup\n-        14: ldc           #3                  // String text\n-        16: invokespecial #4                  // Method dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n+        14: ldc           #9                  // String text\n+        16: invokespecial #11                 // Method dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n         19: astore_2\n         20: aload_0\n         21: aload_1\n-        22: invokevirtual #18                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        22: invokevirtual #71                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         25: aload_1\n-        26: invokevirtual #33                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        29: checkcast     #34                 // class org/assertj/core/api/ObjectAssert\n+        26: invokevirtual #121                // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        29: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n         32: aconst_null\n-        33: invokevirtual #35                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        36: checkcast     #34                 // class org/assertj/core/api/ObjectAssert\n-        39: new           #36                 // class java/lang/Object\n+        33: invokevirtual #122                // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        36: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n+        39: new           #2                  // class java/lang/Object\n         42: dup\n         43: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n-        46: invokevirtual #35                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        49: checkcast     #34                 // class org/assertj/core/api/ObjectAssert\n+        46: invokevirtual #122                // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        49: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n         52: aload_2\n-        53: invokevirtual #33                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        56: checkcast     #34                 // class org/assertj/core/api/ObjectAssert\n+        53: invokevirtual #121                // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        56: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n         59: aload_2\n-        60: invokevirtual #37                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        60: invokevirtual #125                // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         63: pop\n-        64: new           #2                  // class dev/langchain4j/data/message/AiMessage\n+        64: new           #7                  // class dev/langchain4j/data/message/AiMessage\n         67: dup\n-        68: ldc           #38                 // String different\n-        70: invokespecial #4                  // Method dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n+        68: ldc           #128                // String different\n+        70: invokespecial #11                 // Method dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n         73: astore_3\n         74: aload_0\n         75: aload_1\n-        76: invokevirtual #18                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        76: invokevirtual #71                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         79: aload_3\n-        80: invokevirtual #35                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        83: checkcast     #34                 // class org/assertj/core/api/ObjectAssert\n+        80: invokevirtual #122                // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        83: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n         86: aload_3\n-        87: invokevirtual #39                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        87: invokevirtual #130                // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         90: pop\n         91: iconst_2\n-        92: anewarray     #21                 // class dev/langchain4j/agent/tool/ToolExecutionRequest\n+        92: anewarray     #82                 // class dev/langchain4j/agent/tool/ToolExecutionRequest\n         95: dup\n         96: iconst_0\n-        97: invokestatic  #22                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-       100: ldc           #23                 // String foo\n-       102: invokevirtual #24                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-       105: invokevirtual #25                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+        97: invokestatic  #84                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+       100: ldc           #88                 // String foo\n+       102: invokevirtual #90                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+       105: invokevirtual #96                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n        108: aastore\n        109: dup\n        110: iconst_1\n-       111: invokestatic  #22                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-       114: ldc           #26                 // String bar\n-       116: invokevirtual #24                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-       119: invokevirtual #25                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+       111: invokestatic  #84                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+       114: ldc           #100                // String bar\n+       116: invokevirtual #90                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+       119: invokevirtual #96                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n        122: aastore\n-       123: invokestatic  #40                 // Method dev/langchain4j/data/message/AiMessage.from:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n+       123: invokestatic  #133                // Method dev/langchain4j/data/message/AiMessage.from:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n        126: astore        4\n        128: iconst_2\n-       129: anewarray     #21                 // class dev/langchain4j/agent/tool/ToolExecutionRequest\n+       129: anewarray     #82                 // class dev/langchain4j/agent/tool/ToolExecutionRequest\n        132: dup\n        133: iconst_0\n-       134: invokestatic  #22                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-       137: ldc           #23                 // String foo\n-       139: invokevirtual #24                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-       142: invokevirtual #25                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+       134: invokestatic  #84                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+       137: ldc           #88                 // String foo\n+       139: invokevirtual #90                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+       142: invokevirtual #96                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n        145: aastore\n        146: dup\n        147: iconst_1\n-       148: invokestatic  #22                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-       151: ldc           #26                 // String bar\n-       153: invokevirtual #24                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-       156: invokevirtual #25                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+       148: invokestatic  #84                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+       151: ldc           #100                // String bar\n+       153: invokevirtual #90                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+       156: invokevirtual #96                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n        159: aastore\n-       160: invokestatic  #40                 // Method dev/langchain4j/data/message/AiMessage.from:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n+       160: invokestatic  #133                // Method dev/langchain4j/data/message/AiMessage.from:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n        163: astore        5\n        165: aload_0\n        166: aload         4\n-       168: invokevirtual #18                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       168: invokevirtual #71                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        171: aload_1\n-       172: invokevirtual #35                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       175: checkcast     #34                 // class org/assertj/core/api/ObjectAssert\n+       172: invokevirtual #122                // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       175: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n        178: aload_1\n-       179: invokevirtual #39                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       182: checkcast     #34                 // class org/assertj/core/api/ObjectAssert\n+       179: invokevirtual #130                // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       182: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n        185: aload         5\n-       187: invokevirtual #33                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       190: checkcast     #34                 // class org/assertj/core/api/ObjectAssert\n+       187: invokevirtual #121                // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       190: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n        193: aload         5\n-       195: invokevirtual #37                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       195: invokevirtual #125                // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        198: pop\n        199: return\n       LineNumberTable:\n         line 40: 0\n         line 41: 10\n         line 42: 20\n         line 43: 26\n@@ -466,131 +466,131 @@\n             0     200     0  this   Ldev/langchain4j/data/message/AiMessageTest;\n            10     190     1    m1   Ldev/langchain4j/data/message/AiMessage;\n            20     180     2    m2   Ldev/langchain4j/data/message/AiMessage;\n            74     126     3    m3   Ldev/langchain4j/data/message/AiMessage;\n           128      72     4    m4   Ldev/langchain4j/data/message/AiMessage;\n           165      35     5    m5   Ldev/langchain4j/data/message/AiMessage;\n     RuntimeVisibleAnnotations:\n-      0: #60()\n+      0: #165()\n         org.junit.jupiter.api.Test\n \n   public void test_from();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=5, locals=3, args_size=1\n          0: iconst_2\n-         1: anewarray     #21                 // class dev/langchain4j/agent/tool/ToolExecutionRequest\n+         1: anewarray     #82                 // class dev/langchain4j/agent/tool/ToolExecutionRequest\n          4: dup\n          5: iconst_0\n-         6: invokestatic  #22                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-         9: ldc           #23                 // String foo\n-        11: invokevirtual #24                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        14: invokevirtual #25                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+         6: invokestatic  #84                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+         9: ldc           #88                 // String foo\n+        11: invokevirtual #90                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        14: invokevirtual #96                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n         17: aastore\n         18: dup\n         19: iconst_1\n-        20: invokestatic  #22                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        23: ldc           #26                 // String bar\n-        25: invokevirtual #24                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        28: invokevirtual #25                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+        20: invokestatic  #84                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        23: ldc           #100                // String bar\n+        25: invokevirtual #90                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        28: invokevirtual #96                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n         31: aastore\n         32: astore_1\n         33: aload_1\n-        34: invokestatic  #40                 // Method dev/langchain4j/data/message/AiMessage.from:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n+        34: invokestatic  #133                // Method dev/langchain4j/data/message/AiMessage.from:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n         37: astore_2\n         38: aload_0\n         39: aload_2\n-        40: invokevirtual #9                  // Method dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n-        43: invokevirtual #10                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        46: invokevirtual #29                 // Method org/assertj/core/api/AbstractStringAssert.isNull:()V\n+        40: invokevirtual #36                 // Method dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n+        43: invokevirtual #39                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        46: invokevirtual #111                // Method org/assertj/core/api/AbstractStringAssert.isNull:()V\n         49: aload_0\n         50: aload_2\n-        51: invokevirtual #12                 // Method dev/langchain4j/data/message/AiMessage.toolExecutionRequests:()Ljava/util/List;\n-        54: invokevirtual #13                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+        51: invokevirtual #46                 // Method dev/langchain4j/data/message/AiMessage.toolExecutionRequests:()Ljava/util/List;\n+        54: invokevirtual #50                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n         57: aload_1\n-        58: invokevirtual #41                 // Method org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+        58: invokevirtual #137                // Method org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n         61: pop\n         62: aload_1\n-        63: invokestatic  #42                 // Method dev/langchain4j/data/message/AiMessage.aiMessage:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n+        63: invokestatic  #141                // Method dev/langchain4j/data/message/AiMessage.aiMessage:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n         66: astore_2\n         67: aload_0\n         68: aload_2\n-        69: invokevirtual #9                  // Method dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n-        72: invokevirtual #10                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        75: invokevirtual #29                 // Method org/assertj/core/api/AbstractStringAssert.isNull:()V\n+        69: invokevirtual #36                 // Method dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n+        72: invokevirtual #39                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        75: invokevirtual #111                // Method org/assertj/core/api/AbstractStringAssert.isNull:()V\n         78: aload_0\n         79: aload_2\n-        80: invokevirtual #12                 // Method dev/langchain4j/data/message/AiMessage.toolExecutionRequests:()Ljava/util/List;\n-        83: invokevirtual #13                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+        80: invokevirtual #46                 // Method dev/langchain4j/data/message/AiMessage.toolExecutionRequests:()Ljava/util/List;\n+        83: invokevirtual #50                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n         86: aload_1\n-        87: invokevirtual #41                 // Method org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+        87: invokevirtual #137                // Method org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n         90: pop\n         91: aload_1\n-        92: invokestatic  #27                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-        95: invokestatic  #43                 // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/util/List;)Ldev/langchain4j/data/message/AiMessage;\n+        92: invokestatic  #102                // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        95: invokestatic  #144                // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/util/List;)Ldev/langchain4j/data/message/AiMessage;\n         98: astore_2\n         99: aload_0\n        100: aload_2\n-       101: invokevirtual #9                  // Method dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n-       104: invokevirtual #10                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       107: invokevirtual #29                 // Method org/assertj/core/api/AbstractStringAssert.isNull:()V\n+       101: invokevirtual #36                 // Method dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n+       104: invokevirtual #39                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       107: invokevirtual #111                // Method org/assertj/core/api/AbstractStringAssert.isNull:()V\n        110: aload_0\n        111: aload_2\n-       112: invokevirtual #12                 // Method dev/langchain4j/data/message/AiMessage.toolExecutionRequests:()Ljava/util/List;\n-       115: invokevirtual #13                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+       112: invokevirtual #46                 // Method dev/langchain4j/data/message/AiMessage.toolExecutionRequests:()Ljava/util/List;\n+       115: invokevirtual #50                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n        118: aload_1\n-       119: invokevirtual #41                 // Method org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+       119: invokevirtual #137                // Method org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n        122: pop\n        123: aload_1\n-       124: invokestatic  #27                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       127: invokestatic  #44                 // Method dev/langchain4j/data/message/AiMessage.aiMessage:(Ljava/util/List;)Ldev/langchain4j/data/message/AiMessage;\n+       124: invokestatic  #102                // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       127: invokestatic  #147                // Method dev/langchain4j/data/message/AiMessage.aiMessage:(Ljava/util/List;)Ldev/langchain4j/data/message/AiMessage;\n        130: astore_2\n        131: aload_0\n        132: aload_2\n-       133: invokevirtual #9                  // Method dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n-       136: invokevirtual #10                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       139: invokevirtual #29                 // Method org/assertj/core/api/AbstractStringAssert.isNull:()V\n+       133: invokevirtual #36                 // Method dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n+       136: invokevirtual #39                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       139: invokevirtual #111                // Method org/assertj/core/api/AbstractStringAssert.isNull:()V\n        142: aload_0\n        143: aload_2\n-       144: invokevirtual #12                 // Method dev/langchain4j/data/message/AiMessage.toolExecutionRequests:()Ljava/util/List;\n-       147: invokevirtual #13                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+       144: invokevirtual #46                 // Method dev/langchain4j/data/message/AiMessage.toolExecutionRequests:()Ljava/util/List;\n+       147: invokevirtual #50                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n        150: aload_1\n-       151: invokevirtual #41                 // Method org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+       151: invokevirtual #137                // Method org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n        154: pop\n-       155: ldc           #3                  // String text\n-       157: invokestatic  #45                 // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+       155: ldc           #9                  // String text\n+       157: invokestatic  #149                // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n        160: astore_2\n        161: aload_0\n        162: aload_2\n-       163: invokevirtual #9                  // Method dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n-       166: invokevirtual #10                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       169: ldc           #3                  // String text\n-       171: invokevirtual #11                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       163: invokevirtual #36                 // Method dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n+       166: invokevirtual #39                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       169: ldc           #9                  // String text\n+       171: invokevirtual #42                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n        174: pop\n        175: aload_0\n        176: aload_2\n-       177: invokevirtual #12                 // Method dev/langchain4j/data/message/AiMessage.toolExecutionRequests:()Ljava/util/List;\n-       180: invokevirtual #13                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-       183: invokevirtual #14                 // Method org/assertj/core/api/ListAssert.isNull:()V\n-       186: ldc           #3                  // String text\n-       188: invokestatic  #46                 // Method dev/langchain4j/data/message/AiMessage.aiMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+       177: invokevirtual #46                 // Method dev/langchain4j/data/message/AiMessage.toolExecutionRequests:()Ljava/util/List;\n+       180: invokevirtual #50                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+       183: invokevirtual #53                 // Method org/assertj/core/api/ListAssert.isNull:()V\n+       186: ldc           #9                  // String text\n+       188: invokestatic  #152                // Method dev/langchain4j/data/message/AiMessage.aiMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n        191: astore_2\n        192: aload_0\n        193: aload_2\n-       194: invokevirtual #9                  // Method dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n-       197: invokevirtual #10                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       200: ldc           #3                  // String text\n-       202: invokevirtual #11                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       194: invokevirtual #36                 // Method dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n+       197: invokevirtual #39                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       200: ldc           #9                  // String text\n+       202: invokevirtual #42                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n        205: pop\n        206: aload_0\n        207: aload_2\n-       208: invokevirtual #12                 // Method dev/langchain4j/data/message/AiMessage.toolExecutionRequests:()Ljava/util/List;\n-       211: invokevirtual #13                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-       214: invokevirtual #14                 // Method org/assertj/core/api/ListAssert.isNull:()V\n+       208: invokevirtual #46                 // Method dev/langchain4j/data/message/AiMessage.toolExecutionRequests:()Ljava/util/List;\n+       211: invokevirtual #50                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+       214: invokevirtual #53                 // Method org/assertj/core/api/ListAssert.isNull:()V\n        217: return\n       LineNumberTable:\n         line 78: 0\n         line 79: 6\n         line 80: 11\n         line 81: 14\n         line 82: 20\n@@ -622,13 +622,13 @@\n            99      24     2     m   Ldev/langchain4j/data/message/AiMessage;\n           131      24     2     m   Ldev/langchain4j/data/message/AiMessage;\n           161      25     2     m   Ldev/langchain4j/data/message/AiMessage;\n           192      25     2     m   Ldev/langchain4j/data/message/AiMessage;\n             0     218     0  this   Ldev/langchain4j/data/message/AiMessageTest;\n            33     185     1 requests   [Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n     RuntimeVisibleAnnotations:\n-      0: #60()\n+      0: #165()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"AiMessageTest.java\"\n InnerClasses:\n-  public static final #154= #100 of #21;  // Builder=class dev/langchain4j/agent/tool/ToolExecutionRequest$Builder of class dev/langchain4j/agent/tool/ToolExecutionRequest\n+  public static final #178= #91 of #82;   // Builder=class dev/langchain4j/agent/tool/ToolExecutionRequest$Builder of class dev/langchain4j/agent/tool/ToolExecutionRequest\n"}]}, {"source1": "dev/langchain4j/data/message/ChatMessageSerializerTest.class", "source2": "dev/langchain4j/data/message/ChatMessageSerializerTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,242 +1,242 @@\n-  SHA-256 checksum 1cdc95511a9fc2034a0f7b572958f25aaac783eaf1a93861e6cfd088e62f418e\n+  SHA-256 checksum 7e0bd907291a55643b460d9cbb33e6cda6b6cc86eba3f801e09611b17122ac60\n   Compiled from \"ChatMessageSerializerTest.java\"\n class dev.langchain4j.data.message.ChatMessageSerializerTest\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #58                         // dev/langchain4j/data/message/ChatMessageSerializerTest\n-  super_class: #9                         // java/lang/Object\n+  this_class: #190                        // dev/langchain4j/data/message/ChatMessageSerializerTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 0, methods: 8, attributes: 2\n Constant pool:\n-    #1 = Methodref          #9.#93        // java/lang/Object.\"<init>\":()V\n-    #2 = Methodref          #94.#95       // dev/langchain4j/data/message/ChatMessageSerializer.messageToJson:(Ldev/langchain4j/data/message/ChatMessage;)Ljava/lang/String;\n-    #3 = Methodref          #96.#97       // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-    #4 = Methodref          #98.#99       // org/assertj/core/api/AbstractStringAssert.isEqualToIgnoringWhitespace:(Ljava/lang/CharSequence;)Lorg/assertj/core/api/AbstractCharSequenceAssert;\n-    #5 = Methodref          #100.#101     // dev/langchain4j/data/message/ChatMessageDeserializer.messageFromJson:(Ljava/lang/String;)Ldev/langchain4j/data/message/ChatMessage;\n-    #6 = Methodref          #96.#102      // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-    #7 = Methodref          #103.#104     // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-    #8 = Class              #105          // org/junit/jupiter/params/provider/Arguments\n-    #9 = Class              #106          // java/lang/Object\n-   #10 = String             #107          // hello\n-   #11 = Methodref          #108.#109     // dev/langchain4j/data/message/SystemMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n-   #12 = String             #110          // {\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"SYSTEM\\\"}\n-   #13 = InterfaceMethodref #8.#111       // org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-   #14 = Methodref          #112.#113     // dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-   #15 = String             #114          // {\\\"contents\\\":[{\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"TEXT\\\"}],\\\"type\\\":\\\"USER\\\"}\n-   #16 = String             #115          // Klaus\n-   #17 = Methodref          #112.#116     // dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-   #18 = String             #117          // {\\\"name\\\":\\\"Klaus\\\",\\\"contents\\\":[{\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"TEXT\\\"}],\\\"type\\\":\\\"USER\\\"}\n-   #19 = Class              #118          // dev/langchain4j/data/message/Content\n-   #20 = String             #119          // http://image.url\n-   #21 = Methodref          #120.#121     // dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n-   #22 = Methodref          #112.#122     // dev/langchain4j/data/message/UserMessage.from:([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n-   #23 = String             #123          // {\\\"contents\\\":[{\\\"image\\\":{\\\"url\\\":\\\"http://image.url\\\"},\\\"detailLevel\\\":\\\"LOW\\\",\\\"type\\\":\\\"IMAGE\\\"}],\\\"type\\\":\\\"USER\\\"}\n-   #24 = String             #124          // aGVsbG8=\n-   #25 = String             #125          // image/png\n-   #26 = Methodref          #120.#126     // dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n-   #27 = String             #127          // {\\\"contents\\\":[{\\\"image\\\":{\\\"base64Data\\\":\\\"aGVsbG8\\\\u003d\\\",\\\"mimeType\\\":\\\"image/png\\\"},\\\"detailLevel\\\":\\\"LOW\\\",\\\"type\\\":\\\"IMAGE\\\"}],\\\"type\\\":\\\"USER\\\"}\n-   #28 = Methodref          #128.#129     // dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n-   #29 = String             #130          // {\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"AI\\\"}\n-   #30 = Class              #131          // dev/langchain4j/agent/tool/ToolExecutionRequest\n-   #31 = Methodref          #30.#132      // dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #32 = String             #133          // weather\n-   #33 = Methodref          #134.#135     // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #34 = String             #136          // {\\\"city\\\": \\\"Munich\\\"}\n-   #35 = Methodref          #134.#137     // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #36 = Methodref          #134.#138     // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-   #37 = Methodref          #128.#139     // dev/langchain4j/data/message/AiMessage.from:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n-   #38 = String             #140          // {\\\"toolExecutionRequests\\\":[{\\\"name\\\":\\\"weather\\\",\\\"arguments\\\":\\\"{\\\\\\\"city\\\\\\\": \\\\\\\"Munich\\\\\\\"}\\\"}],\\\"type\\\":\\\"AI\\\"}\n-   #39 = String             #141          // 12345\n-   #40 = String             #142          // sunny\n-   #41 = Methodref          #143.#144     // dev/langchain4j/data/message/ToolExecutionResultMessage.from:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n-   #42 = String             #145          // {\\\"id\\\":\\\"12345\\\",\\\"toolName\\\":\\\"weather\\\",\\\"text\\\":\\\"sunny\\\",\\\"type\\\":\\\"TOOL_EXECUTION_RESULT\\\"}\n-   #43 = InterfaceMethodref #146.#147     // java/util/stream/Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;\n-   #44 = String             #148          // {\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"USER\\\"}\n-   #45 = Methodref          #149.#150     // java/util/Collections.emptyList:()Ljava/util/List;\n-   #46 = Methodref          #94.#151      // dev/langchain4j/data/message/ChatMessageSerializer.messagesToJson:(Ljava/util/List;)Ljava/lang/String;\n-   #47 = Methodref          #100.#152     // dev/langchain4j/data/message/ChatMessageDeserializer.messagesFromJson:(Ljava/lang/String;)Ljava/util/List;\n-   #48 = Methodref          #96.#153      // org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-   #49 = Methodref          #154.#155     // org/assertj/core/api/ListAssert.isEmpty:()V\n-   #50 = Methodref          #112.#156     // dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-   #51 = Methodref          #149.#157     // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-   #52 = String             #158          // [{\\\"contents\\\":[{\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"TEXT\\\"}],\\\"type\\\":\\\"USER\\\"}]\n-   #53 = Methodref          #98.#159      // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #54 = Methodref          #154.#160     // org/assertj/core/api/ListAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n-   #55 = String             #161          // [{\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"USER\\\"}]\n-   #56 = Class              #162          // dev/langchain4j/data/message/ChatMessage\n-   #57 = Methodref          #154.#163     // org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-   #58 = Class              #164          // dev/langchain4j/data/message/ChatMessageSerializerTest\n-   #59 = Utf8               <init>\n-   #60 = Utf8               ()V\n-   #61 = Utf8               Code\n-   #62 = Utf8               LineNumberTable\n-   #63 = Utf8               LocalVariableTable\n-   #64 = Utf8               this\n-   #65 = Utf8               Ldev/langchain4j/data/message/ChatMessageSerializerTest;\n-   #66 = Utf8               should_serialize_and_deserialize_chat_message\n-   #67 = Utf8               (Ldev/langchain4j/data/message/ChatMessage;Ljava/lang/String;)V\n-   #68 = Utf8               message\n-   #69 = Utf8               Ldev/langchain4j/data/message/ChatMessage;\n-   #70 = Utf8               expectedJson\n-   #71 = Utf8               Ljava/lang/String;\n-   #72 = Utf8               json\n-   #73 = Utf8               deserializedMessage\n-   #74 = Utf8               RuntimeVisibleAnnotations\n-   #75 = Utf8               Lorg/junit/jupiter/params/ParameterizedTest;\n-   #76 = Utf8               Lorg/junit/jupiter/params/provider/MethodSource;\n-   #77 = Utf8               ()Ljava/util/stream/Stream;\n-   #78 = Utf8               Signature\n-   #79 = Utf8               ()Ljava/util/stream/Stream<Lorg/junit/jupiter/params/provider/Arguments;>;\n-   #80 = Utf8               should_deserialize_user_message_in_old_schema\n-   #81 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #82 = Utf8               should_serialize_and_deserialize_empty_list\n-   #83 = Utf8               messages\n-   #84 = Utf8               Ljava/util/List;\n-   #85 = Utf8               deserializedMessages\n-   #86 = Utf8               LocalVariableTypeTable\n-   #87 = Utf8               Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n-   #88 = Utf8               should_deserialize_null_as_empty_list\n-   #89 = Utf8               should_serialize_and_deserialize_list_with_one_message\n-   #90 = Utf8               should_serialize_and_deserialize_list_with_one_message_in_old_schema\n-   #91 = Utf8               SourceFile\n-   #92 = Utf8               ChatMessageSerializerTest.java\n-   #93 = NameAndType        #59:#60       // \"<init>\":()V\n-   #94 = Class              #165          // dev/langchain4j/data/message/ChatMessageSerializer\n-   #95 = NameAndType        #166:#167     // messageToJson:(Ldev/langchain4j/data/message/ChatMessage;)Ljava/lang/String;\n-   #96 = Class              #168          // org/assertj/core/api/Assertions\n-   #97 = NameAndType        #169:#170     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #98 = Class              #171          // org/assertj/core/api/AbstractStringAssert\n-   #99 = NameAndType        #172:#173     // isEqualToIgnoringWhitespace:(Ljava/lang/CharSequence;)Lorg/assertj/core/api/AbstractCharSequenceAssert;\n-  #100 = Class              #174          // dev/langchain4j/data/message/ChatMessageDeserializer\n-  #101 = NameAndType        #175:#176     // messageFromJson:(Ljava/lang/String;)Ldev/langchain4j/data/message/ChatMessage;\n-  #102 = NameAndType        #169:#177     // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #103 = Class              #178          // org/assertj/core/api/ObjectAssert\n-  #104 = NameAndType        #179:#180     // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #105 = Utf8               org/junit/jupiter/params/provider/Arguments\n-  #106 = Utf8               java/lang/Object\n-  #107 = Utf8               hello\n-  #108 = Class              #181          // dev/langchain4j/data/message/SystemMessage\n-  #109 = NameAndType        #182:#183     // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n-  #110 = Utf8               {\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"SYSTEM\\\"}\n-  #111 = NameAndType        #184:#185     // of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-  #112 = Class              #186          // dev/langchain4j/data/message/UserMessage\n-  #113 = NameAndType        #182:#187     // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-  #114 = Utf8               {\\\"contents\\\":[{\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"TEXT\\\"}],\\\"type\\\":\\\"USER\\\"}\n-  #115 = Utf8               Klaus\n-  #116 = NameAndType        #182:#188     // from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-  #117 = Utf8               {\\\"name\\\":\\\"Klaus\\\",\\\"contents\\\":[{\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"TEXT\\\"}],\\\"type\\\":\\\"USER\\\"}\n-  #118 = Utf8               dev/langchain4j/data/message/Content\n-  #119 = Utf8               http://image.url\n-  #120 = Class              #189          // dev/langchain4j/data/message/ImageContent\n-  #121 = NameAndType        #182:#190     // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n-  #122 = NameAndType        #182:#191     // from:([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n-  #123 = Utf8               {\\\"contents\\\":[{\\\"image\\\":{\\\"url\\\":\\\"http://image.url\\\"},\\\"detailLevel\\\":\\\"LOW\\\",\\\"type\\\":\\\"IMAGE\\\"}],\\\"type\\\":\\\"USER\\\"}\n-  #124 = Utf8               aGVsbG8=\n-  #125 = Utf8               image/png\n-  #126 = NameAndType        #182:#192     // from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n-  #127 = Utf8               {\\\"contents\\\":[{\\\"image\\\":{\\\"base64Data\\\":\\\"aGVsbG8\\\\u003d\\\",\\\"mimeType\\\":\\\"image/png\\\"},\\\"detailLevel\\\":\\\"LOW\\\",\\\"type\\\":\\\"IMAGE\\\"}],\\\"type\\\":\\\"USER\\\"}\n-  #128 = Class              #193          // dev/langchain4j/data/message/AiMessage\n-  #129 = NameAndType        #182:#194     // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n-  #130 = Utf8               {\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"AI\\\"}\n-  #131 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest\n-  #132 = NameAndType        #195:#198     // builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #133 = Utf8               weather\n-  #134 = Class              #199          // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n-  #135 = NameAndType        #200:#201     // name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #136 = Utf8               {\\\"city\\\": \\\"Munich\\\"}\n-  #137 = NameAndType        #202:#201     // arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #138 = NameAndType        #203:#204     // build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-  #139 = NameAndType        #182:#205     // from:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n-  #140 = Utf8               {\\\"toolExecutionRequests\\\":[{\\\"name\\\":\\\"weather\\\",\\\"arguments\\\":\\\"{\\\\\\\"city\\\\\\\": \\\\\\\"Munich\\\\\\\"}\\\"}],\\\"type\\\":\\\"AI\\\"}\n-  #141 = Utf8               12345\n-  #142 = Utf8               sunny\n-  #143 = Class              #206          // dev/langchain4j/data/message/ToolExecutionResultMessage\n-  #144 = NameAndType        #182:#207     // from:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n-  #145 = Utf8               {\\\"id\\\":\\\"12345\\\",\\\"toolName\\\":\\\"weather\\\",\\\"text\\\":\\\"sunny\\\",\\\"type\\\":\\\"TOOL_EXECUTION_RESULT\\\"}\n-  #146 = Class              #208          // java/util/stream/Stream\n-  #147 = NameAndType        #184:#209     // of:([Ljava/lang/Object;)Ljava/util/stream/Stream;\n-  #148 = Utf8               {\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"USER\\\"}\n-  #149 = Class              #210          // java/util/Collections\n-  #150 = NameAndType        #211:#212     // emptyList:()Ljava/util/List;\n-  #151 = NameAndType        #213:#214     // messagesToJson:(Ljava/util/List;)Ljava/lang/String;\n-  #152 = NameAndType        #215:#216     // messagesFromJson:(Ljava/lang/String;)Ljava/util/List;\n-  #153 = NameAndType        #169:#217     // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #154 = Class              #218          // org/assertj/core/api/ListAssert\n-  #155 = NameAndType        #219:#60      // isEmpty:()V\n-  #156 = NameAndType        #220:#187     // userMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-  #157 = NameAndType        #221:#222     // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-  #158 = Utf8               [{\\\"contents\\\":[{\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"TEXT\\\"}],\\\"type\\\":\\\"USER\\\"}]\n-  #159 = NameAndType        #179:#170     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #160 = NameAndType        #179:#223     // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n-  #161 = Utf8               [{\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"USER\\\"}]\n-  #162 = Utf8               dev/langchain4j/data/message/ChatMessage\n-  #163 = NameAndType        #224:#225     // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #164 = Utf8               dev/langchain4j/data/message/ChatMessageSerializerTest\n-  #165 = Utf8               dev/langchain4j/data/message/ChatMessageSerializer\n-  #166 = Utf8               messageToJson\n-  #167 = Utf8               (Ldev/langchain4j/data/message/ChatMessage;)Ljava/lang/String;\n-  #168 = Utf8               org/assertj/core/api/Assertions\n-  #169 = Utf8               assertThat\n-  #170 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #171 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #172 = Utf8               isEqualToIgnoringWhitespace\n-  #173 = Utf8               (Ljava/lang/CharSequence;)Lorg/assertj/core/api/AbstractCharSequenceAssert;\n-  #174 = Utf8               dev/langchain4j/data/message/ChatMessageDeserializer\n-  #175 = Utf8               messageFromJson\n-  #176 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/ChatMessage;\n-  #177 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #178 = Utf8               org/assertj/core/api/ObjectAssert\n-  #179 = Utf8               isEqualTo\n-  #180 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #181 = Utf8               dev/langchain4j/data/message/SystemMessage\n-  #182 = Utf8               from\n-  #183 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n-  #184 = Utf8               of\n-  #185 = Utf8               ([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-  #186 = Utf8               dev/langchain4j/data/message/UserMessage\n-  #187 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-  #188 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-  #189 = Utf8               dev/langchain4j/data/message/ImageContent\n-  #190 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n-  #191 = Utf8               ([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n-  #192 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n-  #193 = Utf8               dev/langchain4j/data/message/AiMessage\n-  #194 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n-  #195 = Utf8               builder\n-  #196 = Utf8               Builder\n-  #197 = Utf8               InnerClasses\n-  #198 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #199 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n-  #200 = Utf8               name\n-  #201 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #202 = Utf8               arguments\n-  #203 = Utf8               build\n-  #204 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-  #205 = Utf8               ([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n-  #206 = Utf8               dev/langchain4j/data/message/ToolExecutionResultMessage\n-  #207 = Utf8               (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n-  #208 = Utf8               java/util/stream/Stream\n-  #209 = Utf8               ([Ljava/lang/Object;)Ljava/util/stream/Stream;\n-  #210 = Utf8               java/util/Collections\n-  #211 = Utf8               emptyList\n-  #212 = Utf8               ()Ljava/util/List;\n-  #213 = Utf8               messagesToJson\n-  #214 = Utf8               (Ljava/util/List;)Ljava/lang/String;\n-  #215 = Utf8               messagesFromJson\n-  #216 = Utf8               (Ljava/lang/String;)Ljava/util/List;\n-  #217 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #218 = Utf8               org/assertj/core/api/ListAssert\n-  #219 = Utf8               isEmpty\n-  #220 = Utf8               userMessage\n-  #221 = Utf8               singletonList\n-  #222 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n-  #223 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n-  #224 = Utf8               containsExactly\n-  #225 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Methodref          #8.#9         // dev/langchain4j/data/message/ChatMessageSerializer.messageToJson:(Ldev/langchain4j/data/message/ChatMessage;)Ljava/lang/String;\n+    #8 = Class              #10           // dev/langchain4j/data/message/ChatMessageSerializer\n+    #9 = NameAndType        #11:#12       // messageToJson:(Ldev/langchain4j/data/message/ChatMessage;)Ljava/lang/String;\n+   #10 = Utf8               dev/langchain4j/data/message/ChatMessageSerializer\n+   #11 = Utf8               messageToJson\n+   #12 = Utf8               (Ldev/langchain4j/data/message/ChatMessage;)Ljava/lang/String;\n+   #13 = Methodref          #14.#15       // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #14 = Class              #16           // org/assertj/core/api/Assertions\n+   #15 = NameAndType        #17:#18       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #16 = Utf8               org/assertj/core/api/Assertions\n+   #17 = Utf8               assertThat\n+   #18 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #19 = Methodref          #20.#21       // org/assertj/core/api/AbstractStringAssert.isEqualToIgnoringWhitespace:(Ljava/lang/CharSequence;)Lorg/assertj/core/api/AbstractCharSequenceAssert;\n+   #20 = Class              #22           // org/assertj/core/api/AbstractStringAssert\n+   #21 = NameAndType        #23:#24       // isEqualToIgnoringWhitespace:(Ljava/lang/CharSequence;)Lorg/assertj/core/api/AbstractCharSequenceAssert;\n+   #22 = Utf8               org/assertj/core/api/AbstractStringAssert\n+   #23 = Utf8               isEqualToIgnoringWhitespace\n+   #24 = Utf8               (Ljava/lang/CharSequence;)Lorg/assertj/core/api/AbstractCharSequenceAssert;\n+   #25 = Methodref          #26.#27       // dev/langchain4j/data/message/ChatMessageDeserializer.messageFromJson:(Ljava/lang/String;)Ldev/langchain4j/data/message/ChatMessage;\n+   #26 = Class              #28           // dev/langchain4j/data/message/ChatMessageDeserializer\n+   #27 = NameAndType        #29:#30       // messageFromJson:(Ljava/lang/String;)Ldev/langchain4j/data/message/ChatMessage;\n+   #28 = Utf8               dev/langchain4j/data/message/ChatMessageDeserializer\n+   #29 = Utf8               messageFromJson\n+   #30 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/ChatMessage;\n+   #31 = Methodref          #14.#32       // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #32 = NameAndType        #17:#33       // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #33 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #34 = Methodref          #35.#36       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #35 = Class              #37           // org/assertj/core/api/ObjectAssert\n+   #36 = NameAndType        #38:#39       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #37 = Utf8               org/assertj/core/api/ObjectAssert\n+   #38 = Utf8               isEqualTo\n+   #39 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #40 = Class              #41           // org/junit/jupiter/params/provider/Arguments\n+   #41 = Utf8               org/junit/jupiter/params/provider/Arguments\n+   #42 = String             #43           // hello\n+   #43 = Utf8               hello\n+   #44 = Methodref          #45.#46       // dev/langchain4j/data/message/SystemMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n+   #45 = Class              #47           // dev/langchain4j/data/message/SystemMessage\n+   #46 = NameAndType        #48:#49       // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n+   #47 = Utf8               dev/langchain4j/data/message/SystemMessage\n+   #48 = Utf8               from\n+   #49 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n+   #50 = String             #51           // {\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"SYSTEM\\\"}\n+   #51 = Utf8               {\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"SYSTEM\\\"}\n+   #52 = InterfaceMethodref #40.#53       // org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+   #53 = NameAndType        #54:#55       // of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+   #54 = Utf8               of\n+   #55 = Utf8               ([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+   #56 = Methodref          #57.#58       // dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+   #57 = Class              #59           // dev/langchain4j/data/message/UserMessage\n+   #58 = NameAndType        #48:#60       // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+   #59 = Utf8               dev/langchain4j/data/message/UserMessage\n+   #60 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+   #61 = String             #62           // {\\\"contents\\\":[{\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"TEXT\\\"}],\\\"type\\\":\\\"USER\\\"}\n+   #62 = Utf8               {\\\"contents\\\":[{\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"TEXT\\\"}],\\\"type\\\":\\\"USER\\\"}\n+   #63 = String             #64           // Klaus\n+   #64 = Utf8               Klaus\n+   #65 = Methodref          #57.#66       // dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+   #66 = NameAndType        #48:#67       // from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+   #67 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+   #68 = String             #69           // {\\\"name\\\":\\\"Klaus\\\",\\\"contents\\\":[{\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"TEXT\\\"}],\\\"type\\\":\\\"USER\\\"}\n+   #69 = Utf8               {\\\"name\\\":\\\"Klaus\\\",\\\"contents\\\":[{\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"TEXT\\\"}],\\\"type\\\":\\\"USER\\\"}\n+   #70 = Class              #71           // dev/langchain4j/data/message/Content\n+   #71 = Utf8               dev/langchain4j/data/message/Content\n+   #72 = String             #73           // http://image.url\n+   #73 = Utf8               http://image.url\n+   #74 = Methodref          #75.#76       // dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n+   #75 = Class              #77           // dev/langchain4j/data/message/ImageContent\n+   #76 = NameAndType        #48:#78       // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n+   #77 = Utf8               dev/langchain4j/data/message/ImageContent\n+   #78 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n+   #79 = Methodref          #57.#80       // dev/langchain4j/data/message/UserMessage.from:([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n+   #80 = NameAndType        #48:#81       // from:([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n+   #81 = Utf8               ([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n+   #82 = String             #83           // {\\\"contents\\\":[{\\\"image\\\":{\\\"url\\\":\\\"http://image.url\\\"},\\\"detailLevel\\\":\\\"LOW\\\",\\\"type\\\":\\\"IMAGE\\\"}],\\\"type\\\":\\\"USER\\\"}\n+   #83 = Utf8               {\\\"contents\\\":[{\\\"image\\\":{\\\"url\\\":\\\"http://image.url\\\"},\\\"detailLevel\\\":\\\"LOW\\\",\\\"type\\\":\\\"IMAGE\\\"}],\\\"type\\\":\\\"USER\\\"}\n+   #84 = String             #85           // aGVsbG8=\n+   #85 = Utf8               aGVsbG8=\n+   #86 = String             #87           // image/png\n+   #87 = Utf8               image/png\n+   #88 = Methodref          #75.#89       // dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n+   #89 = NameAndType        #48:#90       // from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n+   #90 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n+   #91 = String             #92           // {\\\"contents\\\":[{\\\"image\\\":{\\\"base64Data\\\":\\\"aGVsbG8\\\\u003d\\\",\\\"mimeType\\\":\\\"image/png\\\"},\\\"detailLevel\\\":\\\"LOW\\\",\\\"type\\\":\\\"IMAGE\\\"}],\\\"type\\\":\\\"USER\\\"}\n+   #92 = Utf8               {\\\"contents\\\":[{\\\"image\\\":{\\\"base64Data\\\":\\\"aGVsbG8\\\\u003d\\\",\\\"mimeType\\\":\\\"image/png\\\"},\\\"detailLevel\\\":\\\"LOW\\\",\\\"type\\\":\\\"IMAGE\\\"}],\\\"type\\\":\\\"USER\\\"}\n+   #93 = Methodref          #94.#95       // dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+   #94 = Class              #96           // dev/langchain4j/data/message/AiMessage\n+   #95 = NameAndType        #48:#97       // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+   #96 = Utf8               dev/langchain4j/data/message/AiMessage\n+   #97 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+   #98 = String             #99           // {\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"AI\\\"}\n+   #99 = Utf8               {\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"AI\\\"}\n+  #100 = Class              #101          // dev/langchain4j/agent/tool/ToolExecutionRequest\n+  #101 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest\n+  #102 = Methodref          #100.#103     // dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #103 = NameAndType        #104:#105     // builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #104 = Utf8               builder\n+  #105 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #106 = String             #107          // weather\n+  #107 = Utf8               weather\n+  #108 = Methodref          #109.#110     // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #109 = Class              #111          // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n+  #110 = NameAndType        #112:#113     // name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #111 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n+  #112 = Utf8               name\n+  #113 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #114 = String             #115          // {\\\"city\\\": \\\"Munich\\\"}\n+  #115 = Utf8               {\\\"city\\\": \\\"Munich\\\"}\n+  #116 = Methodref          #109.#117     // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #117 = NameAndType        #118:#113     // arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #118 = Utf8               arguments\n+  #119 = Methodref          #109.#120     // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+  #120 = NameAndType        #121:#122     // build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+  #121 = Utf8               build\n+  #122 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+  #123 = Methodref          #94.#124      // dev/langchain4j/data/message/AiMessage.from:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n+  #124 = NameAndType        #48:#125      // from:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n+  #125 = Utf8               ([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n+  #126 = String             #127          // {\\\"toolExecutionRequests\\\":[{\\\"name\\\":\\\"weather\\\",\\\"arguments\\\":\\\"{\\\\\\\"city\\\\\\\": \\\\\\\"Munich\\\\\\\"}\\\"}],\\\"type\\\":\\\"AI\\\"}\n+  #127 = Utf8               {\\\"toolExecutionRequests\\\":[{\\\"name\\\":\\\"weather\\\",\\\"arguments\\\":\\\"{\\\\\\\"city\\\\\\\": \\\\\\\"Munich\\\\\\\"}\\\"}],\\\"type\\\":\\\"AI\\\"}\n+  #128 = String             #129          // 12345\n+  #129 = Utf8               12345\n+  #130 = String             #131          // sunny\n+  #131 = Utf8               sunny\n+  #132 = Methodref          #133.#134     // dev/langchain4j/data/message/ToolExecutionResultMessage.from:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n+  #133 = Class              #135          // dev/langchain4j/data/message/ToolExecutionResultMessage\n+  #134 = NameAndType        #48:#136      // from:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n+  #135 = Utf8               dev/langchain4j/data/message/ToolExecutionResultMessage\n+  #136 = Utf8               (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n+  #137 = String             #138          // {\\\"id\\\":\\\"12345\\\",\\\"toolName\\\":\\\"weather\\\",\\\"text\\\":\\\"sunny\\\",\\\"type\\\":\\\"TOOL_EXECUTION_RESULT\\\"}\n+  #138 = Utf8               {\\\"id\\\":\\\"12345\\\",\\\"toolName\\\":\\\"weather\\\",\\\"text\\\":\\\"sunny\\\",\\\"type\\\":\\\"TOOL_EXECUTION_RESULT\\\"}\n+  #139 = InterfaceMethodref #140.#141     // java/util/stream/Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;\n+  #140 = Class              #142          // java/util/stream/Stream\n+  #141 = NameAndType        #54:#143      // of:([Ljava/lang/Object;)Ljava/util/stream/Stream;\n+  #142 = Utf8               java/util/stream/Stream\n+  #143 = Utf8               ([Ljava/lang/Object;)Ljava/util/stream/Stream;\n+  #144 = String             #145          // {\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"USER\\\"}\n+  #145 = Utf8               {\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"USER\\\"}\n+  #146 = Methodref          #147.#148     // java/util/Collections.emptyList:()Ljava/util/List;\n+  #147 = Class              #149          // java/util/Collections\n+  #148 = NameAndType        #150:#151     // emptyList:()Ljava/util/List;\n+  #149 = Utf8               java/util/Collections\n+  #150 = Utf8               emptyList\n+  #151 = Utf8               ()Ljava/util/List;\n+  #152 = Methodref          #8.#153       // dev/langchain4j/data/message/ChatMessageSerializer.messagesToJson:(Ljava/util/List;)Ljava/lang/String;\n+  #153 = NameAndType        #154:#155     // messagesToJson:(Ljava/util/List;)Ljava/lang/String;\n+  #154 = Utf8               messagesToJson\n+  #155 = Utf8               (Ljava/util/List;)Ljava/lang/String;\n+  #156 = Methodref          #26.#157      // dev/langchain4j/data/message/ChatMessageDeserializer.messagesFromJson:(Ljava/lang/String;)Ljava/util/List;\n+  #157 = NameAndType        #158:#159     // messagesFromJson:(Ljava/lang/String;)Ljava/util/List;\n+  #158 = Utf8               messagesFromJson\n+  #159 = Utf8               (Ljava/lang/String;)Ljava/util/List;\n+  #160 = Methodref          #14.#161      // org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #161 = NameAndType        #17:#162      // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #162 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #163 = Methodref          #164.#165     // org/assertj/core/api/ListAssert.isEmpty:()V\n+  #164 = Class              #166          // org/assertj/core/api/ListAssert\n+  #165 = NameAndType        #167:#6       // isEmpty:()V\n+  #166 = Utf8               org/assertj/core/api/ListAssert\n+  #167 = Utf8               isEmpty\n+  #168 = Methodref          #57.#169      // dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+  #169 = NameAndType        #170:#60      // userMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+  #170 = Utf8               userMessage\n+  #171 = Methodref          #147.#172     // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+  #172 = NameAndType        #173:#174     // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+  #173 = Utf8               singletonList\n+  #174 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n+  #175 = String             #176          // [{\\\"contents\\\":[{\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"TEXT\\\"}],\\\"type\\\":\\\"USER\\\"}]\n+  #176 = Utf8               [{\\\"contents\\\":[{\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"TEXT\\\"}],\\\"type\\\":\\\"USER\\\"}]\n+  #177 = Methodref          #20.#178      // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #178 = NameAndType        #38:#18       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #179 = Methodref          #164.#180     // org/assertj/core/api/ListAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n+  #180 = NameAndType        #38:#181      // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n+  #181 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n+  #182 = String             #183          // [{\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"USER\\\"}]\n+  #183 = Utf8               [{\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"USER\\\"}]\n+  #184 = Class              #185          // dev/langchain4j/data/message/ChatMessage\n+  #185 = Utf8               dev/langchain4j/data/message/ChatMessage\n+  #186 = Methodref          #164.#187     // org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #187 = NameAndType        #188:#189     // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #188 = Utf8               containsExactly\n+  #189 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #190 = Class              #191          // dev/langchain4j/data/message/ChatMessageSerializerTest\n+  #191 = Utf8               dev/langchain4j/data/message/ChatMessageSerializerTest\n+  #192 = Utf8               Code\n+  #193 = Utf8               LineNumberTable\n+  #194 = Utf8               LocalVariableTable\n+  #195 = Utf8               this\n+  #196 = Utf8               Ldev/langchain4j/data/message/ChatMessageSerializerTest;\n+  #197 = Utf8               should_serialize_and_deserialize_chat_message\n+  #198 = Utf8               (Ldev/langchain4j/data/message/ChatMessage;Ljava/lang/String;)V\n+  #199 = Utf8               message\n+  #200 = Utf8               Ldev/langchain4j/data/message/ChatMessage;\n+  #201 = Utf8               expectedJson\n+  #202 = Utf8               Ljava/lang/String;\n+  #203 = Utf8               json\n+  #204 = Utf8               deserializedMessage\n+  #205 = Utf8               RuntimeVisibleAnnotations\n+  #206 = Utf8               Lorg/junit/jupiter/params/ParameterizedTest;\n+  #207 = Utf8               Lorg/junit/jupiter/params/provider/MethodSource;\n+  #208 = Utf8               ()Ljava/util/stream/Stream;\n+  #209 = Utf8               Signature\n+  #210 = Utf8               ()Ljava/util/stream/Stream<Lorg/junit/jupiter/params/provider/Arguments;>;\n+  #211 = Utf8               should_deserialize_user_message_in_old_schema\n+  #212 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #213 = Utf8               should_serialize_and_deserialize_empty_list\n+  #214 = Utf8               messages\n+  #215 = Utf8               Ljava/util/List;\n+  #216 = Utf8               deserializedMessages\n+  #217 = Utf8               LocalVariableTypeTable\n+  #218 = Utf8               Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n+  #219 = Utf8               should_deserialize_null_as_empty_list\n+  #220 = Utf8               should_serialize_and_deserialize_list_with_one_message\n+  #221 = Utf8               should_serialize_and_deserialize_list_with_one_message_in_old_schema\n+  #222 = Utf8               SourceFile\n+  #223 = Utf8               ChatMessageSerializerTest.java\n+  #224 = Utf8               InnerClasses\n+  #225 = Utf8               Builder\n {\n   dev.langchain4j.data.message.ChatMessageSerializerTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -250,28 +250,28 @@\n \n   void should_serialize_and_deserialize_chat_message(dev.langchain4j.data.message.ChatMessage, java.lang.String);\n     descriptor: (Ldev/langchain4j/data/message/ChatMessage;Ljava/lang/String;)V\n     flags: (0x0000)\n     Code:\n       stack=2, locals=5, args_size=3\n          0: aload_1\n-         1: invokestatic  #2                  // Method dev/langchain4j/data/message/ChatMessageSerializer.messageToJson:(Ldev/langchain4j/data/message/ChatMessage;)Ljava/lang/String;\n+         1: invokestatic  #7                  // Method dev/langchain4j/data/message/ChatMessageSerializer.messageToJson:(Ldev/langchain4j/data/message/ChatMessage;)Ljava/lang/String;\n          4: astore_3\n          5: aload_3\n-         6: invokestatic  #3                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+         6: invokestatic  #13                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n          9: aload_2\n-        10: invokevirtual #4                  // Method org/assertj/core/api/AbstractStringAssert.isEqualToIgnoringWhitespace:(Ljava/lang/CharSequence;)Lorg/assertj/core/api/AbstractCharSequenceAssert;\n+        10: invokevirtual #19                 // Method org/assertj/core/api/AbstractStringAssert.isEqualToIgnoringWhitespace:(Ljava/lang/CharSequence;)Lorg/assertj/core/api/AbstractCharSequenceAssert;\n         13: pop\n         14: aload_3\n-        15: invokestatic  #5                  // Method dev/langchain4j/data/message/ChatMessageDeserializer.messageFromJson:(Ljava/lang/String;)Ldev/langchain4j/data/message/ChatMessage;\n+        15: invokestatic  #25                 // Method dev/langchain4j/data/message/ChatMessageDeserializer.messageFromJson:(Ljava/lang/String;)Ldev/langchain4j/data/message/ChatMessage;\n         18: astore        4\n         20: aload         4\n-        22: invokestatic  #6                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        22: invokestatic  #31                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         25: aload_1\n-        26: invokevirtual #7                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        26: invokevirtual #34                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         29: pop\n         30: return\n       LineNumberTable:\n         line 26: 0\n         line 27: 5\n         line 29: 14\n         line 30: 20\n@@ -280,173 +280,173 @@\n         Start  Length  Slot  Name   Signature\n             0      31     0  this   Ldev/langchain4j/data/message/ChatMessageSerializerTest;\n             0      31     1 message   Ldev/langchain4j/data/message/ChatMessage;\n             0      31     2 expectedJson   Ljava/lang/String;\n             5      26     3  json   Ljava/lang/String;\n            20      11     4 deserializedMessage   Ldev/langchain4j/data/message/ChatMessage;\n     RuntimeVisibleAnnotations:\n-      0: #75()\n+      0: #206()\n         org.junit.jupiter.params.ParameterizedTest\n-      1: #76()\n+      1: #207()\n         org.junit.jupiter.params.provider.MethodSource\n \n   static java.util.stream.Stream<org.junit.jupiter.params.provider.Arguments> should_serialize_and_deserialize_chat_message();\n     descriptor: ()Ljava/util/stream/Stream;\n     flags: (0x0008) ACC_STATIC\n     Code:\n       stack=11, locals=0, args_size=0\n          0: bipush        8\n-         2: anewarray     #8                  // class org/junit/jupiter/params/provider/Arguments\n+         2: anewarray     #40                 // class org/junit/jupiter/params/provider/Arguments\n          5: dup\n          6: iconst_0\n          7: iconst_2\n-         8: anewarray     #9                  // class java/lang/Object\n+         8: anewarray     #2                  // class java/lang/Object\n         11: dup\n         12: iconst_0\n-        13: ldc           #10                 // String hello\n-        15: invokestatic  #11                 // Method dev/langchain4j/data/message/SystemMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n+        13: ldc           #42                 // String hello\n+        15: invokestatic  #44                 // Method dev/langchain4j/data/message/SystemMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n         18: aastore\n         19: dup\n         20: iconst_1\n-        21: ldc           #12                 // String {\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"SYSTEM\\\"}\n+        21: ldc           #50                 // String {\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"SYSTEM\\\"}\n         23: aastore\n-        24: invokestatic  #13                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+        24: invokestatic  #52                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n         27: aastore\n         28: dup\n         29: iconst_1\n         30: iconst_2\n-        31: anewarray     #9                  // class java/lang/Object\n+        31: anewarray     #2                  // class java/lang/Object\n         34: dup\n         35: iconst_0\n-        36: ldc           #10                 // String hello\n-        38: invokestatic  #14                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+        36: ldc           #42                 // String hello\n+        38: invokestatic  #56                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n         41: aastore\n         42: dup\n         43: iconst_1\n-        44: ldc           #15                 // String {\\\"contents\\\":[{\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"TEXT\\\"}],\\\"type\\\":\\\"USER\\\"}\n+        44: ldc           #61                 // String {\\\"contents\\\":[{\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"TEXT\\\"}],\\\"type\\\":\\\"USER\\\"}\n         46: aastore\n-        47: invokestatic  #13                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+        47: invokestatic  #52                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n         50: aastore\n         51: dup\n         52: iconst_2\n         53: iconst_2\n-        54: anewarray     #9                  // class java/lang/Object\n+        54: anewarray     #2                  // class java/lang/Object\n         57: dup\n         58: iconst_0\n-        59: ldc           #16                 // String Klaus\n-        61: ldc           #10                 // String hello\n-        63: invokestatic  #17                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+        59: ldc           #63                 // String Klaus\n+        61: ldc           #42                 // String hello\n+        63: invokestatic  #65                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n         66: aastore\n         67: dup\n         68: iconst_1\n-        69: ldc           #18                 // String {\\\"name\\\":\\\"Klaus\\\",\\\"contents\\\":[{\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"TEXT\\\"}],\\\"type\\\":\\\"USER\\\"}\n+        69: ldc           #68                 // String {\\\"name\\\":\\\"Klaus\\\",\\\"contents\\\":[{\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"TEXT\\\"}],\\\"type\\\":\\\"USER\\\"}\n         71: aastore\n-        72: invokestatic  #13                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+        72: invokestatic  #52                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n         75: aastore\n         76: dup\n         77: iconst_3\n         78: iconst_2\n-        79: anewarray     #9                  // class java/lang/Object\n+        79: anewarray     #2                  // class java/lang/Object\n         82: dup\n         83: iconst_0\n         84: iconst_1\n-        85: anewarray     #19                 // class dev/langchain4j/data/message/Content\n+        85: anewarray     #70                 // class dev/langchain4j/data/message/Content\n         88: dup\n         89: iconst_0\n-        90: ldc           #20                 // String http://image.url\n-        92: invokestatic  #21                 // Method dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n+        90: ldc           #72                 // String http://image.url\n+        92: invokestatic  #74                 // Method dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n         95: aastore\n-        96: invokestatic  #22                 // Method dev/langchain4j/data/message/UserMessage.from:([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n+        96: invokestatic  #79                 // Method dev/langchain4j/data/message/UserMessage.from:([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n         99: aastore\n        100: dup\n        101: iconst_1\n-       102: ldc           #23                 // String {\\\"contents\\\":[{\\\"image\\\":{\\\"url\\\":\\\"http://image.url\\\"},\\\"detailLevel\\\":\\\"LOW\\\",\\\"type\\\":\\\"IMAGE\\\"}],\\\"type\\\":\\\"USER\\\"}\n+       102: ldc           #82                 // String {\\\"contents\\\":[{\\\"image\\\":{\\\"url\\\":\\\"http://image.url\\\"},\\\"detailLevel\\\":\\\"LOW\\\",\\\"type\\\":\\\"IMAGE\\\"}],\\\"type\\\":\\\"USER\\\"}\n        104: aastore\n-       105: invokestatic  #13                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+       105: invokestatic  #52                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n        108: aastore\n        109: dup\n        110: iconst_4\n        111: iconst_2\n-       112: anewarray     #9                  // class java/lang/Object\n+       112: anewarray     #2                  // class java/lang/Object\n        115: dup\n        116: iconst_0\n        117: iconst_1\n-       118: anewarray     #19                 // class dev/langchain4j/data/message/Content\n+       118: anewarray     #70                 // class dev/langchain4j/data/message/Content\n        121: dup\n        122: iconst_0\n-       123: ldc           #24                 // String aGVsbG8=\n-       125: ldc           #25                 // String image/png\n-       127: invokestatic  #26                 // Method dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n+       123: ldc           #84                 // String aGVsbG8=\n+       125: ldc           #86                 // String image/png\n+       127: invokestatic  #88                 // Method dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n        130: aastore\n-       131: invokestatic  #22                 // Method dev/langchain4j/data/message/UserMessage.from:([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n+       131: invokestatic  #79                 // Method dev/langchain4j/data/message/UserMessage.from:([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n        134: aastore\n        135: dup\n        136: iconst_1\n-       137: ldc           #27                 // String {\\\"contents\\\":[{\\\"image\\\":{\\\"base64Data\\\":\\\"aGVsbG8\\\\u003d\\\",\\\"mimeType\\\":\\\"image/png\\\"},\\\"detailLevel\\\":\\\"LOW\\\",\\\"type\\\":\\\"IMAGE\\\"}],\\\"type\\\":\\\"USER\\\"}\n+       137: ldc           #91                 // String {\\\"contents\\\":[{\\\"image\\\":{\\\"base64Data\\\":\\\"aGVsbG8\\\\u003d\\\",\\\"mimeType\\\":\\\"image/png\\\"},\\\"detailLevel\\\":\\\"LOW\\\",\\\"type\\\":\\\"IMAGE\\\"}],\\\"type\\\":\\\"USER\\\"}\n        139: aastore\n-       140: invokestatic  #13                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+       140: invokestatic  #52                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n        143: aastore\n        144: dup\n        145: iconst_5\n        146: iconst_2\n-       147: anewarray     #9                  // class java/lang/Object\n+       147: anewarray     #2                  // class java/lang/Object\n        150: dup\n        151: iconst_0\n-       152: ldc           #10                 // String hello\n-       154: invokestatic  #28                 // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+       152: ldc           #42                 // String hello\n+       154: invokestatic  #93                 // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n        157: aastore\n        158: dup\n        159: iconst_1\n-       160: ldc           #29                 // String {\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"AI\\\"}\n+       160: ldc           #98                 // String {\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"AI\\\"}\n        162: aastore\n-       163: invokestatic  #13                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+       163: invokestatic  #52                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n        166: aastore\n        167: dup\n        168: bipush        6\n        170: iconst_2\n-       171: anewarray     #9                  // class java/lang/Object\n+       171: anewarray     #2                  // class java/lang/Object\n        174: dup\n        175: iconst_0\n        176: iconst_1\n-       177: anewarray     #30                 // class dev/langchain4j/agent/tool/ToolExecutionRequest\n+       177: anewarray     #100                // class dev/langchain4j/agent/tool/ToolExecutionRequest\n        180: dup\n        181: iconst_0\n-       182: invokestatic  #31                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-       185: ldc           #32                 // String weather\n-       187: invokevirtual #33                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-       190: ldc           #34                 // String {\\\"city\\\": \\\"Munich\\\"}\n-       192: invokevirtual #35                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-       195: invokevirtual #36                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+       182: invokestatic  #102                // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+       185: ldc           #106                // String weather\n+       187: invokevirtual #108                // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+       190: ldc           #114                // String {\\\"city\\\": \\\"Munich\\\"}\n+       192: invokevirtual #116                // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+       195: invokevirtual #119                // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n        198: aastore\n-       199: invokestatic  #37                 // Method dev/langchain4j/data/message/AiMessage.from:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n+       199: invokestatic  #123                // Method dev/langchain4j/data/message/AiMessage.from:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n        202: aastore\n        203: dup\n        204: iconst_1\n-       205: ldc           #38                 // String {\\\"toolExecutionRequests\\\":[{\\\"name\\\":\\\"weather\\\",\\\"arguments\\\":\\\"{\\\\\\\"city\\\\\\\": \\\\\\\"Munich\\\\\\\"}\\\"}],\\\"type\\\":\\\"AI\\\"}\n+       205: ldc           #126                // String {\\\"toolExecutionRequests\\\":[{\\\"name\\\":\\\"weather\\\",\\\"arguments\\\":\\\"{\\\\\\\"city\\\\\\\": \\\\\\\"Munich\\\\\\\"}\\\"}],\\\"type\\\":\\\"AI\\\"}\n        207: aastore\n-       208: invokestatic  #13                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+       208: invokestatic  #52                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n        211: aastore\n        212: dup\n        213: bipush        7\n        215: iconst_2\n-       216: anewarray     #9                  // class java/lang/Object\n+       216: anewarray     #2                  // class java/lang/Object\n        219: dup\n        220: iconst_0\n-       221: ldc           #39                 // String 12345\n-       223: ldc           #32                 // String weather\n-       225: ldc           #40                 // String sunny\n-       227: invokestatic  #41                 // Method dev/langchain4j/data/message/ToolExecutionResultMessage.from:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n+       221: ldc           #128                // String 12345\n+       223: ldc           #106                // String weather\n+       225: ldc           #130                // String sunny\n+       227: invokestatic  #132                // Method dev/langchain4j/data/message/ToolExecutionResultMessage.from:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n        230: aastore\n        231: dup\n        232: iconst_1\n-       233: ldc           #42                 // String {\\\"id\\\":\\\"12345\\\",\\\"toolName\\\":\\\"weather\\\",\\\"text\\\":\\\"sunny\\\",\\\"type\\\":\\\"TOOL_EXECUTION_RESULT\\\"}\n+       233: ldc           #137                // String {\\\"id\\\":\\\"12345\\\",\\\"toolName\\\":\\\"weather\\\",\\\"text\\\":\\\"sunny\\\",\\\"type\\\":\\\"TOOL_EXECUTION_RESULT\\\"}\n        235: aastore\n-       236: invokestatic  #13                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+       236: invokestatic  #52                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n        239: aastore\n-       240: invokestatic  #43                 // InterfaceMethod java/util/stream/Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;\n+       240: invokestatic  #139                // InterfaceMethod java/util/stream/Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;\n        243: areturn\n       LineNumberTable:\n         line 34: 0\n         line 36: 15\n         line 35: 24\n         line 40: 38\n         line 39: 47\n@@ -463,63 +463,63 @@\n         line 62: 192\n         line 63: 195\n         line 60: 199\n         line 59: 208\n         line 67: 227\n         line 66: 236\n         line 34: 240\n-    Signature: #79                          // ()Ljava/util/stream/Stream<Lorg/junit/jupiter/params/provider/Arguments;>;\n+    Signature: #210                         // ()Ljava/util/stream/Stream<Lorg/junit/jupiter/params/provider/Arguments;>;\n \n   void should_deserialize_user_message_in_old_schema();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=2, locals=3, args_size=1\n-         0: ldc           #44                 // String {\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"USER\\\"}\n+         0: ldc           #144                // String {\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"USER\\\"}\n          2: astore_1\n          3: aload_1\n-         4: invokestatic  #5                  // Method dev/langchain4j/data/message/ChatMessageDeserializer.messageFromJson:(Ljava/lang/String;)Ldev/langchain4j/data/message/ChatMessage;\n+         4: invokestatic  #25                 // Method dev/langchain4j/data/message/ChatMessageDeserializer.messageFromJson:(Ljava/lang/String;)Ldev/langchain4j/data/message/ChatMessage;\n          7: astore_2\n          8: aload_2\n-         9: invokestatic  #6                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        12: ldc           #10                 // String hello\n-        14: invokestatic  #14                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-        17: invokevirtual #7                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+         9: invokestatic  #31                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        12: ldc           #42                 // String hello\n+        14: invokestatic  #56                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+        17: invokevirtual #34                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         20: pop\n         21: return\n       LineNumberTable:\n         line 76: 0\n         line 78: 3\n         line 80: 8\n         line 81: 21\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      22     0  this   Ldev/langchain4j/data/message/ChatMessageSerializerTest;\n             3      19     1  json   Ljava/lang/String;\n             8      14     2 deserializedMessage   Ldev/langchain4j/data/message/ChatMessage;\n     RuntimeVisibleAnnotations:\n-      0: #81()\n+      0: #212()\n         org.junit.jupiter.api.Test\n \n   void should_serialize_and_deserialize_empty_list();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=4, args_size=1\n-         0: invokestatic  #45                 // Method java/util/Collections.emptyList:()Ljava/util/List;\n+         0: invokestatic  #146                // Method java/util/Collections.emptyList:()Ljava/util/List;\n          3: astore_1\n          4: aload_1\n-         5: invokestatic  #46                 // Method dev/langchain4j/data/message/ChatMessageSerializer.messagesToJson:(Ljava/util/List;)Ljava/lang/String;\n+         5: invokestatic  #152                // Method dev/langchain4j/data/message/ChatMessageSerializer.messagesToJson:(Ljava/util/List;)Ljava/lang/String;\n          8: astore_2\n          9: aload_2\n-        10: invokestatic  #47                 // Method dev/langchain4j/data/message/ChatMessageDeserializer.messagesFromJson:(Ljava/lang/String;)Ljava/util/List;\n+        10: invokestatic  #156                // Method dev/langchain4j/data/message/ChatMessageDeserializer.messagesFromJson:(Ljava/lang/String;)Ljava/util/List;\n         13: astore_3\n         14: aload_3\n-        15: invokestatic  #48                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-        18: invokevirtual #49                 // Method org/assertj/core/api/ListAssert.isEmpty:()V\n+        15: invokestatic  #160                // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+        18: invokevirtual #163                // Method org/assertj/core/api/ListAssert.isEmpty:()V\n         21: return\n       LineNumberTable:\n         line 86: 0\n         line 88: 4\n         line 89: 9\n         line 91: 14\n         line 92: 21\n@@ -530,61 +530,61 @@\n             9      13     2  json   Ljava/lang/String;\n            14       8     3 deserializedMessages   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             4      18     1 messages   Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n            14       8     3 deserializedMessages   Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n     RuntimeVisibleAnnotations:\n-      0: #81()\n+      0: #212()\n         org.junit.jupiter.api.Test\n \n   void should_deserialize_null_as_empty_list();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aconst_null\n-         1: invokestatic  #47                 // Method dev/langchain4j/data/message/ChatMessageDeserializer.messagesFromJson:(Ljava/lang/String;)Ljava/util/List;\n-         4: invokestatic  #48                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-         7: invokevirtual #49                 // Method org/assertj/core/api/ListAssert.isEmpty:()V\n+         1: invokestatic  #156                // Method dev/langchain4j/data/message/ChatMessageDeserializer.messagesFromJson:(Ljava/lang/String;)Ljava/util/List;\n+         4: invokestatic  #160                // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+         7: invokevirtual #163                // Method org/assertj/core/api/ListAssert.isEmpty:()V\n         10: return\n       LineNumberTable:\n         line 96: 0\n         line 97: 10\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      11     0  this   Ldev/langchain4j/data/message/ChatMessageSerializerTest;\n     RuntimeVisibleAnnotations:\n-      0: #81()\n+      0: #212()\n         org.junit.jupiter.api.Test\n \n   void should_serialize_and_deserialize_list_with_one_message();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=2, locals=4, args_size=1\n-         0: ldc           #10                 // String hello\n-         2: invokestatic  #50                 // Method dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-         5: invokestatic  #51                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+         0: ldc           #42                 // String hello\n+         2: invokestatic  #168                // Method dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+         5: invokestatic  #171                // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n          8: astore_1\n          9: aload_1\n-        10: invokestatic  #46                 // Method dev/langchain4j/data/message/ChatMessageSerializer.messagesToJson:(Ljava/util/List;)Ljava/lang/String;\n+        10: invokestatic  #152                // Method dev/langchain4j/data/message/ChatMessageSerializer.messagesToJson:(Ljava/util/List;)Ljava/lang/String;\n         13: astore_2\n         14: aload_2\n-        15: invokestatic  #3                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        18: ldc           #52                 // String [{\\\"contents\\\":[{\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"TEXT\\\"}],\\\"type\\\":\\\"USER\\\"}]\n-        20: invokevirtual #53                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        15: invokestatic  #13                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        18: ldc           #175                // String [{\\\"contents\\\":[{\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"TEXT\\\"}],\\\"type\\\":\\\"USER\\\"}]\n+        20: invokevirtual #177                // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         23: pop\n         24: aload_2\n-        25: invokestatic  #47                 // Method dev/langchain4j/data/message/ChatMessageDeserializer.messagesFromJson:(Ljava/lang/String;)Ljava/util/List;\n+        25: invokestatic  #156                // Method dev/langchain4j/data/message/ChatMessageDeserializer.messagesFromJson:(Ljava/lang/String;)Ljava/util/List;\n         28: astore_3\n         29: aload_3\n-        30: invokestatic  #48                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+        30: invokestatic  #160                // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n         33: aload_1\n-        34: invokevirtual #54                 // Method org/assertj/core/api/ListAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n+        34: invokevirtual #179                // Method org/assertj/core/api/ListAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n         37: pop\n         38: return\n       LineNumberTable:\n         line 102: 0\n         line 104: 9\n         line 105: 14\n         line 107: 24\n@@ -597,37 +597,37 @@\n            14      25     2  json   Ljava/lang/String;\n            29      10     3 deserializedMessages   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             9      30     1 messages   Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n            29      10     3 deserializedMessages   Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n     RuntimeVisibleAnnotations:\n-      0: #81()\n+      0: #212()\n         org.junit.jupiter.api.Test\n \n   void should_serialize_and_deserialize_list_with_one_message_in_old_schema();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=5, locals=3, args_size=1\n-         0: ldc           #55                 // String [{\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"USER\\\"}]\n+         0: ldc           #182                // String [{\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"USER\\\"}]\n          2: astore_1\n          3: aload_1\n-         4: invokestatic  #47                 // Method dev/langchain4j/data/message/ChatMessageDeserializer.messagesFromJson:(Ljava/lang/String;)Ljava/util/List;\n+         4: invokestatic  #156                // Method dev/langchain4j/data/message/ChatMessageDeserializer.messagesFromJson:(Ljava/lang/String;)Ljava/util/List;\n          7: astore_2\n          8: aload_2\n-         9: invokestatic  #48                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+         9: invokestatic  #160                // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n         12: iconst_1\n-        13: anewarray     #56                 // class dev/langchain4j/data/message/ChatMessage\n+        13: anewarray     #184                // class dev/langchain4j/data/message/ChatMessage\n         16: dup\n         17: iconst_0\n-        18: ldc           #10                 // String hello\n-        20: invokestatic  #14                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+        18: ldc           #42                 // String hello\n+        20: invokestatic  #56                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n         23: aastore\n-        24: invokevirtual #57                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+        24: invokevirtual #186                // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n         27: pop\n         28: return\n       LineNumberTable:\n         line 114: 0\n         line 116: 3\n         line 118: 8\n         line 119: 28\n@@ -636,13 +636,13 @@\n             0      29     0  this   Ldev/langchain4j/data/message/ChatMessageSerializerTest;\n             3      26     1  json   Ljava/lang/String;\n             8      21     2 deserializedMessages   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             8      21     2 deserializedMessages   Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n     RuntimeVisibleAnnotations:\n-      0: #81()\n+      0: #212()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"ChatMessageSerializerTest.java\"\n InnerClasses:\n-  public static final #196= #134 of #30;  // Builder=class dev/langchain4j/agent/tool/ToolExecutionRequest$Builder of class dev/langchain4j/agent/tool/ToolExecutionRequest\n+  public static final #225= #109 of #100; // Builder=class dev/langchain4j/agent/tool/ToolExecutionRequest$Builder of class dev/langchain4j/agent/tool/ToolExecutionRequest\n"}]}, {"source1": "dev/langchain4j/data/message/ChatMessageTypeTest.class", "source2": "dev/langchain4j/data/message/ChatMessageTypeTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,74 +1,74 @@\n-  SHA-256 checksum 55eabda04f02ac407c8927dcddd2812e45ff27b8568aac072f2b805c3d6cc4d2\n+  SHA-256 checksum 59a008e950b6272fba537d66a97c08b014b4b68aaed9c16c0b8aa12b9ecd7c75\n   Compiled from \"ChatMessageTypeTest.java\"\n class dev.langchain4j.data.message.ChatMessageTypeTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #13                         // dev/langchain4j/data/message/ChatMessageTypeTest\n-  super_class: #14                        // java/lang/Object\n+  this_class: #18                         // dev/langchain4j/data/message/ChatMessageTypeTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 1\n Constant pool:\n-   #1 = Methodref          #14.#28        // java/lang/Object.\"<init>\":()V\n-   #2 = Fieldref           #29.#30        // dev/langchain4j/data/message/ChatMessageType.SYSTEM:Ldev/langchain4j/data/message/ChatMessageType;\n-   #3 = Methodref          #29.#31        // dev/langchain4j/data/message/ChatMessageType.messageClass:()Ljava/lang/Class;\n-   #4 = Methodref          #13.#32        // dev/langchain4j/data/message/ChatMessageTypeTest.assertThat:(Ljava/lang/Class;)Lorg/assertj/core/api/ClassAssert;\n-   #5 = Class              #33            // dev/langchain4j/data/message/SystemMessage\n-   #6 = Methodref          #34.#35        // org/assertj/core/api/ClassAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #7 = Fieldref           #29.#36        // dev/langchain4j/data/message/ChatMessageType.USER:Ldev/langchain4j/data/message/ChatMessageType;\n-   #8 = Class              #37            // dev/langchain4j/data/message/UserMessage\n-   #9 = Fieldref           #29.#38        // dev/langchain4j/data/message/ChatMessageType.AI:Ldev/langchain4j/data/message/ChatMessageType;\n-  #10 = Class              #39            // dev/langchain4j/data/message/AiMessage\n-  #11 = Fieldref           #29.#40        // dev/langchain4j/data/message/ChatMessageType.TOOL_EXECUTION_RESULT:Ldev/langchain4j/data/message/ChatMessageType;\n-  #12 = Class              #41            // dev/langchain4j/data/message/ToolExecutionResultMessage\n-  #13 = Class              #42            // dev/langchain4j/data/message/ChatMessageTypeTest\n-  #14 = Class              #43            // java/lang/Object\n-  #15 = Class              #44            // org/assertj/core/api/WithAssertions\n-  #16 = Utf8               <init>\n-  #17 = Utf8               ()V\n-  #18 = Utf8               Code\n-  #19 = Utf8               LineNumberTable\n-  #20 = Utf8               LocalVariableTable\n-  #21 = Utf8               this\n-  #22 = Utf8               Ldev/langchain4j/data/message/ChatMessageTypeTest;\n-  #23 = Utf8               test\n-  #24 = Utf8               RuntimeVisibleAnnotations\n-  #25 = Utf8               Lorg/junit/jupiter/api/Test;\n-  #26 = Utf8               SourceFile\n-  #27 = Utf8               ChatMessageTypeTest.java\n-  #28 = NameAndType        #16:#17        // \"<init>\":()V\n-  #29 = Class              #45            // dev/langchain4j/data/message/ChatMessageType\n-  #30 = NameAndType        #46:#47        // SYSTEM:Ldev/langchain4j/data/message/ChatMessageType;\n-  #31 = NameAndType        #48:#49        // messageClass:()Ljava/lang/Class;\n-  #32 = NameAndType        #50:#51        // assertThat:(Ljava/lang/Class;)Lorg/assertj/core/api/ClassAssert;\n-  #33 = Utf8               dev/langchain4j/data/message/SystemMessage\n-  #34 = Class              #52            // org/assertj/core/api/ClassAssert\n-  #35 = NameAndType        #53:#54        // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #36 = NameAndType        #55:#47        // USER:Ldev/langchain4j/data/message/ChatMessageType;\n-  #37 = Utf8               dev/langchain4j/data/message/UserMessage\n-  #38 = NameAndType        #56:#47        // AI:Ldev/langchain4j/data/message/ChatMessageType;\n-  #39 = Utf8               dev/langchain4j/data/message/AiMessage\n-  #40 = NameAndType        #57:#47        // TOOL_EXECUTION_RESULT:Ldev/langchain4j/data/message/ChatMessageType;\n-  #41 = Utf8               dev/langchain4j/data/message/ToolExecutionResultMessage\n-  #42 = Utf8               dev/langchain4j/data/message/ChatMessageTypeTest\n-  #43 = Utf8               java/lang/Object\n-  #44 = Utf8               org/assertj/core/api/WithAssertions\n-  #45 = Utf8               dev/langchain4j/data/message/ChatMessageType\n-  #46 = Utf8               SYSTEM\n-  #47 = Utf8               Ldev/langchain4j/data/message/ChatMessageType;\n-  #48 = Utf8               messageClass\n-  #49 = Utf8               ()Ljava/lang/Class;\n-  #50 = Utf8               assertThat\n-  #51 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/ClassAssert;\n-  #52 = Utf8               org/assertj/core/api/ClassAssert\n-  #53 = Utf8               isEqualTo\n-  #54 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #55 = Utf8               USER\n-  #56 = Utf8               AI\n-  #57 = Utf8               TOOL_EXECUTION_RESULT\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Fieldref           #8.#9          // dev/langchain4j/data/message/ChatMessageType.SYSTEM:Ldev/langchain4j/data/message/ChatMessageType;\n+   #8 = Class              #10            // dev/langchain4j/data/message/ChatMessageType\n+   #9 = NameAndType        #11:#12        // SYSTEM:Ldev/langchain4j/data/message/ChatMessageType;\n+  #10 = Utf8               dev/langchain4j/data/message/ChatMessageType\n+  #11 = Utf8               SYSTEM\n+  #12 = Utf8               Ldev/langchain4j/data/message/ChatMessageType;\n+  #13 = Methodref          #8.#14         // dev/langchain4j/data/message/ChatMessageType.messageClass:()Ljava/lang/Class;\n+  #14 = NameAndType        #15:#16        // messageClass:()Ljava/lang/Class;\n+  #15 = Utf8               messageClass\n+  #16 = Utf8               ()Ljava/lang/Class;\n+  #17 = Methodref          #18.#19        // dev/langchain4j/data/message/ChatMessageTypeTest.assertThat:(Ljava/lang/Class;)Lorg/assertj/core/api/ClassAssert;\n+  #18 = Class              #20            // dev/langchain4j/data/message/ChatMessageTypeTest\n+  #19 = NameAndType        #21:#22        // assertThat:(Ljava/lang/Class;)Lorg/assertj/core/api/ClassAssert;\n+  #20 = Utf8               dev/langchain4j/data/message/ChatMessageTypeTest\n+  #21 = Utf8               assertThat\n+  #22 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/ClassAssert;\n+  #23 = Class              #24            // dev/langchain4j/data/message/SystemMessage\n+  #24 = Utf8               dev/langchain4j/data/message/SystemMessage\n+  #25 = Methodref          #26.#27        // org/assertj/core/api/ClassAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #26 = Class              #28            // org/assertj/core/api/ClassAssert\n+  #27 = NameAndType        #29:#30        // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #28 = Utf8               org/assertj/core/api/ClassAssert\n+  #29 = Utf8               isEqualTo\n+  #30 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #31 = Fieldref           #8.#32         // dev/langchain4j/data/message/ChatMessageType.USER:Ldev/langchain4j/data/message/ChatMessageType;\n+  #32 = NameAndType        #33:#12        // USER:Ldev/langchain4j/data/message/ChatMessageType;\n+  #33 = Utf8               USER\n+  #34 = Class              #35            // dev/langchain4j/data/message/UserMessage\n+  #35 = Utf8               dev/langchain4j/data/message/UserMessage\n+  #36 = Fieldref           #8.#37         // dev/langchain4j/data/message/ChatMessageType.AI:Ldev/langchain4j/data/message/ChatMessageType;\n+  #37 = NameAndType        #38:#12        // AI:Ldev/langchain4j/data/message/ChatMessageType;\n+  #38 = Utf8               AI\n+  #39 = Class              #40            // dev/langchain4j/data/message/AiMessage\n+  #40 = Utf8               dev/langchain4j/data/message/AiMessage\n+  #41 = Fieldref           #8.#42         // dev/langchain4j/data/message/ChatMessageType.TOOL_EXECUTION_RESULT:Ldev/langchain4j/data/message/ChatMessageType;\n+  #42 = NameAndType        #43:#12        // TOOL_EXECUTION_RESULT:Ldev/langchain4j/data/message/ChatMessageType;\n+  #43 = Utf8               TOOL_EXECUTION_RESULT\n+  #44 = Class              #45            // dev/langchain4j/data/message/ToolExecutionResultMessage\n+  #45 = Utf8               dev/langchain4j/data/message/ToolExecutionResultMessage\n+  #46 = Class              #47            // org/assertj/core/api/WithAssertions\n+  #47 = Utf8               org/assertj/core/api/WithAssertions\n+  #48 = Utf8               Code\n+  #49 = Utf8               LineNumberTable\n+  #50 = Utf8               LocalVariableTable\n+  #51 = Utf8               this\n+  #52 = Utf8               Ldev/langchain4j/data/message/ChatMessageTypeTest;\n+  #53 = Utf8               test\n+  #54 = Utf8               RuntimeVisibleAnnotations\n+  #55 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #56 = Utf8               SourceFile\n+  #57 = Utf8               ChatMessageTypeTest.java\n {\n   dev.langchain4j.data.message.ChatMessageTypeTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -82,50 +82,50 @@\n \n   public void test();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=1, args_size=1\n          0: aload_0\n-         1: getstatic     #2                  // Field dev/langchain4j/data/message/ChatMessageType.SYSTEM:Ldev/langchain4j/data/message/ChatMessageType;\n-         4: invokevirtual #3                  // Method dev/langchain4j/data/message/ChatMessageType.messageClass:()Ljava/lang/Class;\n-         7: invokevirtual #4                  // Method assertThat:(Ljava/lang/Class;)Lorg/assertj/core/api/ClassAssert;\n-        10: ldc           #5                  // class dev/langchain4j/data/message/SystemMessage\n-        12: invokevirtual #6                  // Method org/assertj/core/api/ClassAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+         1: getstatic     #7                  // Field dev/langchain4j/data/message/ChatMessageType.SYSTEM:Ldev/langchain4j/data/message/ChatMessageType;\n+         4: invokevirtual #13                 // Method dev/langchain4j/data/message/ChatMessageType.messageClass:()Ljava/lang/Class;\n+         7: invokevirtual #17                 // Method assertThat:(Ljava/lang/Class;)Lorg/assertj/core/api/ClassAssert;\n+        10: ldc           #23                 // class dev/langchain4j/data/message/SystemMessage\n+        12: invokevirtual #25                 // Method org/assertj/core/api/ClassAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         15: pop\n         16: aload_0\n-        17: getstatic     #7                  // Field dev/langchain4j/data/message/ChatMessageType.USER:Ldev/langchain4j/data/message/ChatMessageType;\n-        20: invokevirtual #3                  // Method dev/langchain4j/data/message/ChatMessageType.messageClass:()Ljava/lang/Class;\n-        23: invokevirtual #4                  // Method assertThat:(Ljava/lang/Class;)Lorg/assertj/core/api/ClassAssert;\n-        26: ldc           #8                  // class dev/langchain4j/data/message/UserMessage\n-        28: invokevirtual #6                  // Method org/assertj/core/api/ClassAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        17: getstatic     #31                 // Field dev/langchain4j/data/message/ChatMessageType.USER:Ldev/langchain4j/data/message/ChatMessageType;\n+        20: invokevirtual #13                 // Method dev/langchain4j/data/message/ChatMessageType.messageClass:()Ljava/lang/Class;\n+        23: invokevirtual #17                 // Method assertThat:(Ljava/lang/Class;)Lorg/assertj/core/api/ClassAssert;\n+        26: ldc           #34                 // class dev/langchain4j/data/message/UserMessage\n+        28: invokevirtual #25                 // Method org/assertj/core/api/ClassAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         31: pop\n         32: aload_0\n-        33: getstatic     #9                  // Field dev/langchain4j/data/message/ChatMessageType.AI:Ldev/langchain4j/data/message/ChatMessageType;\n-        36: invokevirtual #3                  // Method dev/langchain4j/data/message/ChatMessageType.messageClass:()Ljava/lang/Class;\n-        39: invokevirtual #4                  // Method assertThat:(Ljava/lang/Class;)Lorg/assertj/core/api/ClassAssert;\n-        42: ldc           #10                 // class dev/langchain4j/data/message/AiMessage\n-        44: invokevirtual #6                  // Method org/assertj/core/api/ClassAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        33: getstatic     #36                 // Field dev/langchain4j/data/message/ChatMessageType.AI:Ldev/langchain4j/data/message/ChatMessageType;\n+        36: invokevirtual #13                 // Method dev/langchain4j/data/message/ChatMessageType.messageClass:()Ljava/lang/Class;\n+        39: invokevirtual #17                 // Method assertThat:(Ljava/lang/Class;)Lorg/assertj/core/api/ClassAssert;\n+        42: ldc           #39                 // class dev/langchain4j/data/message/AiMessage\n+        44: invokevirtual #25                 // Method org/assertj/core/api/ClassAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         47: pop\n         48: aload_0\n-        49: getstatic     #11                 // Field dev/langchain4j/data/message/ChatMessageType.TOOL_EXECUTION_RESULT:Ldev/langchain4j/data/message/ChatMessageType;\n-        52: invokevirtual #3                  // Method dev/langchain4j/data/message/ChatMessageType.messageClass:()Ljava/lang/Class;\n-        55: invokevirtual #4                  // Method assertThat:(Ljava/lang/Class;)Lorg/assertj/core/api/ClassAssert;\n-        58: ldc           #12                 // class dev/langchain4j/data/message/ToolExecutionResultMessage\n-        60: invokevirtual #6                  // Method org/assertj/core/api/ClassAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        49: getstatic     #41                 // Field dev/langchain4j/data/message/ChatMessageType.TOOL_EXECUTION_RESULT:Ldev/langchain4j/data/message/ChatMessageType;\n+        52: invokevirtual #13                 // Method dev/langchain4j/data/message/ChatMessageType.messageClass:()Ljava/lang/Class;\n+        55: invokevirtual #17                 // Method assertThat:(Ljava/lang/Class;)Lorg/assertj/core/api/ClassAssert;\n+        58: ldc           #44                 // class dev/langchain4j/data/message/ToolExecutionResultMessage\n+        60: invokevirtual #25                 // Method org/assertj/core/api/ClassAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         63: pop\n         64: return\n       LineNumberTable:\n         line 9: 0\n         line 10: 16\n         line 11: 32\n         line 12: 48\n         line 13: 60\n         line 14: 64\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      65     0  this   Ldev/langchain4j/data/message/ChatMessageTypeTest;\n     RuntimeVisibleAnnotations:\n-      0: #25()\n+      0: #55()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"ChatMessageTypeTest.java\"\n"}]}, {"source1": "dev/langchain4j/data/message/ImageContentTest.class", "source2": "dev/langchain4j/data/message/ImageContentTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,203 +1,203 @@\n-  SHA-256 checksum 9c97a98cec44361ad5a02a8852008c74a57ef7d8ba4a9626a944cae7e406ec23\n+  SHA-256 checksum 6b662cd0fde8b98041ab9a153d8c6821c7d9a08942172e1f2637fb054f32638a\n   Compiled from \"ImageContentTest.java\"\n class dev.langchain4j.data.message.ImageContentTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #49                         // dev/langchain4j/data/message/ImageContentTest\n-  super_class: #24                        // java/lang/Object\n+  this_class: #46                         // dev/langchain4j/data/message/ImageContentTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 4, attributes: 2\n Constant pool:\n-    #1 = Methodref          #24.#74       // java/lang/Object.\"<init>\":()V\n-    #2 = Methodref          #75.#76       // dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n-    #3 = String             #77           // https://example.com/image.png\n-    #4 = Methodref          #78.#79       // java/net/URI.create:(Ljava/lang/String;)Ljava/net/URI;\n-    #5 = Methodref          #80.#81       // dev/langchain4j/data/image/Image$Builder.url:(Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n-    #6 = Methodref          #80.#82       // dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n-    #7 = Class              #83           // dev/langchain4j/data/message/ImageContent\n-    #8 = Fieldref           #84.#85       // dev/langchain4j/data/message/ImageContent$DetailLevel.HIGH:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n-    #9 = Methodref          #7.#86        // dev/langchain4j/data/message/ImageContent.\"<init>\":(Ldev/langchain4j/data/image/Image;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n-   #10 = Methodref          #7.#87        // dev/langchain4j/data/message/ImageContent.image:()Ldev/langchain4j/data/image/Image;\n-   #11 = Methodref          #49.#88       // dev/langchain4j/data/message/ImageContentTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #12 = Methodref          #22.#89       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #13 = Methodref          #7.#90        // dev/langchain4j/data/message/ImageContent.detailLevel:()Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n-   #14 = Methodref          #49.#91       // dev/langchain4j/data/message/ImageContentTest.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-   #15 = Methodref          #92.#89       // org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #16 = Methodref          #7.#93        // dev/langchain4j/data/message/ImageContent.type:()Ldev/langchain4j/data/message/ContentType;\n-   #17 = Fieldref           #94.#95       // dev/langchain4j/data/message/ContentType.IMAGE:Ldev/langchain4j/data/message/ContentType;\n-   #18 = String             #96           // ImageContent { image = Image { url = \\\"https://example.com/image.png\\\", base64Data = null, mimeType = null, revisedPrompt = null } detailLevel = HIGH }\n-   #19 = Methodref          #22.#97       // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-   #20 = Methodref          #7.#98        // dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n-   #21 = String             #99           // https://example.com/image.jpg\n-   #22 = Class              #100          // org/assertj/core/api/ObjectAssert\n-   #23 = Methodref          #22.#101      // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #24 = Class              #102          // java/lang/Object\n-   #25 = Methodref          #22.#103      // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #26 = Fieldref           #84.#104      // dev/langchain4j/data/message/ImageContent$DetailLevel.LOW:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n-   #27 = Methodref          #7.#105       // dev/langchain4j/data/message/ImageContent.\"<init>\":(Ldev/langchain4j/data/image/Image;)V\n-   #28 = Methodref          #7.#106       // dev/langchain4j/data/message/ImageContent.from:(Ldev/langchain4j/data/image/Image;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n-   #29 = Methodref          #7.#107       // dev/langchain4j/data/message/ImageContent.from:(Ldev/langchain4j/data/image/Image;)Ldev/langchain4j/data/message/ImageContent;\n-   #30 = Methodref          #75.#108      // dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n-   #31 = Methodref          #7.#109       // dev/langchain4j/data/message/ImageContent.\"<init>\":(Ljava/net/URI;)V\n-   #32 = Methodref          #78.#110      // java/net/URI.toString:()Ljava/lang/String;\n-   #33 = Methodref          #7.#111       // dev/langchain4j/data/message/ImageContent.\"<init>\":(Ljava/lang/String;)V\n-   #34 = Methodref          #7.#112       // dev/langchain4j/data/message/ImageContent.\"<init>\":(Ljava/net/URI;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n-   #35 = Methodref          #7.#113       // dev/langchain4j/data/message/ImageContent.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n-   #36 = Methodref          #7.#114       // dev/langchain4j/data/message/ImageContent.from:(Ljava/net/URI;)Ldev/langchain4j/data/message/ImageContent;\n-   #37 = Methodref          #7.#115       // dev/langchain4j/data/message/ImageContent.from:(Ljava/net/URI;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n-   #38 = Methodref          #7.#116       // dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n-   #39 = String             #117          // ff==\n-   #40 = Methodref          #80.#118      // dev/langchain4j/data/image/Image$Builder.base64Data:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-   #41 = String             #119          // mimeType\n-   #42 = Methodref          #80.#120      // dev/langchain4j/data/image/Image$Builder.mimeType:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-   #43 = Methodref          #75.#121      // dev/langchain4j/data/image/Image.base64Data:()Ljava/lang/String;\n-   #44 = Methodref          #75.#122      // dev/langchain4j/data/image/Image.mimeType:()Ljava/lang/String;\n-   #45 = Methodref          #7.#123       // dev/langchain4j/data/message/ImageContent.\"<init>\":(Ljava/lang/String;Ljava/lang/String;)V\n-   #46 = Methodref          #7.#124       // dev/langchain4j/data/message/ImageContent.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n-   #47 = Methodref          #7.#125       // dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n-   #48 = Methodref          #7.#126       // dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n-   #49 = Class              #127          // dev/langchain4j/data/message/ImageContentTest\n-   #50 = Class              #128          // org/assertj/core/api/WithAssertions\n-   #51 = Utf8               <init>\n-   #52 = Utf8               ()V\n-   #53 = Utf8               Code\n-   #54 = Utf8               LineNumberTable\n-   #55 = Utf8               LocalVariableTable\n-   #56 = Utf8               this\n-   #57 = Utf8               Ldev/langchain4j/data/message/ImageContentTest;\n-   #58 = Utf8               test_methods\n-   #59 = Utf8               urlImage\n-   #60 = Utf8               Ldev/langchain4j/data/image/Image;\n-   #61 = Utf8               imageContent\n-   #62 = Utf8               Ldev/langchain4j/data/message/ImageContent;\n-   #63 = Utf8               RuntimeVisibleAnnotations\n-   #64 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #65 = Utf8               test_equals_hashCode\n-   #66 = Utf8               i1\n-   #67 = Utf8               i2\n-   #68 = Utf8               i3\n-   #69 = Utf8               i4\n-   #70 = Utf8               test_builders\n-   #71 = Utf8               base64Image\n-   #72 = Utf8               SourceFile\n-   #73 = Utf8               ImageContentTest.java\n-   #74 = NameAndType        #51:#52       // \"<init>\":()V\n-   #75 = Class              #129          // dev/langchain4j/data/image/Image\n-   #76 = NameAndType        #130:#133     // builder:()Ldev/langchain4j/data/image/Image$Builder;\n-   #77 = Utf8               https://example.com/image.png\n-   #78 = Class              #134          // java/net/URI\n-   #79 = NameAndType        #135:#136     // create:(Ljava/lang/String;)Ljava/net/URI;\n-   #80 = Class              #137          // dev/langchain4j/data/image/Image$Builder\n-   #81 = NameAndType        #138:#139     // url:(Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n-   #82 = NameAndType        #140:#141     // build:()Ldev/langchain4j/data/image/Image;\n-   #83 = Utf8               dev/langchain4j/data/message/ImageContent\n-   #84 = Class              #142          // dev/langchain4j/data/message/ImageContent$DetailLevel\n-   #85 = NameAndType        #144:#145     // HIGH:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n-   #86 = NameAndType        #51:#146      // \"<init>\":(Ldev/langchain4j/data/image/Image;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n-   #87 = NameAndType        #147:#141     // image:()Ldev/langchain4j/data/image/Image;\n-   #88 = NameAndType        #148:#149     // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #89 = NameAndType        #150:#151     // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #90 = NameAndType        #152:#153     // detailLevel:()Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n-   #91 = NameAndType        #148:#154     // assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-   #92 = Class              #155          // org/assertj/core/api/AbstractComparableAssert\n-   #93 = NameAndType        #156:#157     // type:()Ldev/langchain4j/data/message/ContentType;\n-   #94 = Class              #158          // dev/langchain4j/data/message/ContentType\n-   #95 = NameAndType        #159:#160     // IMAGE:Ldev/langchain4j/data/message/ContentType;\n-   #96 = Utf8               ImageContent { image = Image { url = \\\"https://example.com/image.png\\\", base64Data = null, mimeType = null, revisedPrompt = null } detailLevel = HIGH }\n-   #97 = NameAndType        #161:#162     // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-   #98 = NameAndType        #163:#164     // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n-   #99 = Utf8               https://example.com/image.jpg\n-  #100 = Utf8               org/assertj/core/api/ObjectAssert\n-  #101 = NameAndType        #165:#151     // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #102 = Utf8               java/lang/Object\n-  #103 = NameAndType        #166:#151     // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #104 = NameAndType        #167:#145     // LOW:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n-  #105 = NameAndType        #51:#168      // \"<init>\":(Ldev/langchain4j/data/image/Image;)V\n-  #106 = NameAndType        #163:#169     // from:(Ldev/langchain4j/data/image/Image;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n-  #107 = NameAndType        #163:#170     // from:(Ldev/langchain4j/data/image/Image;)Ldev/langchain4j/data/message/ImageContent;\n-  #108 = NameAndType        #138:#171     // url:()Ljava/net/URI;\n-  #109 = NameAndType        #51:#172      // \"<init>\":(Ljava/net/URI;)V\n-  #110 = NameAndType        #173:#174     // toString:()Ljava/lang/String;\n-  #111 = NameAndType        #51:#175      // \"<init>\":(Ljava/lang/String;)V\n-  #112 = NameAndType        #51:#176      // \"<init>\":(Ljava/net/URI;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n-  #113 = NameAndType        #51:#177      // \"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n-  #114 = NameAndType        #163:#178     // from:(Ljava/net/URI;)Ldev/langchain4j/data/message/ImageContent;\n-  #115 = NameAndType        #163:#179     // from:(Ljava/net/URI;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n-  #116 = NameAndType        #163:#180     // from:(Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n-  #117 = Utf8               ff==\n-  #118 = NameAndType        #181:#182     // base64Data:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-  #119 = Utf8               mimeType\n-  #120 = NameAndType        #119:#182     // mimeType:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-  #121 = NameAndType        #181:#174     // base64Data:()Ljava/lang/String;\n-  #122 = NameAndType        #119:#174     // mimeType:()Ljava/lang/String;\n-  #123 = NameAndType        #51:#183      // \"<init>\":(Ljava/lang/String;Ljava/lang/String;)V\n-  #124 = NameAndType        #51:#184      // \"<init>\":(Ljava/lang/String;Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n-  #125 = NameAndType        #163:#185     // from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n-  #126 = NameAndType        #163:#186     // from:(Ljava/lang/String;Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n-  #127 = Utf8               dev/langchain4j/data/message/ImageContentTest\n-  #128 = Utf8               org/assertj/core/api/WithAssertions\n-  #129 = Utf8               dev/langchain4j/data/image/Image\n-  #130 = Utf8               builder\n-  #131 = Utf8               Builder\n-  #132 = Utf8               InnerClasses\n-  #133 = Utf8               ()Ldev/langchain4j/data/image/Image$Builder;\n-  #134 = Utf8               java/net/URI\n-  #135 = Utf8               create\n-  #136 = Utf8               (Ljava/lang/String;)Ljava/net/URI;\n-  #137 = Utf8               dev/langchain4j/data/image/Image$Builder\n-  #138 = Utf8               url\n-  #139 = Utf8               (Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n-  #140 = Utf8               build\n-  #141 = Utf8               ()Ldev/langchain4j/data/image/Image;\n-  #142 = Utf8               dev/langchain4j/data/message/ImageContent$DetailLevel\n-  #143 = Utf8               DetailLevel\n-  #144 = Utf8               HIGH\n-  #145 = Utf8               Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n-  #146 = Utf8               (Ldev/langchain4j/data/image/Image;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n-  #147 = Utf8               image\n-  #148 = Utf8               assertThat\n-  #149 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #150 = Utf8               isEqualTo\n-  #151 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #152 = Utf8               detailLevel\n-  #153 = Utf8               ()Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n-  #154 = Utf8               (Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-  #155 = Utf8               org/assertj/core/api/AbstractComparableAssert\n-  #156 = Utf8               type\n-  #157 = Utf8               ()Ldev/langchain4j/data/message/ContentType;\n-  #158 = Utf8               dev/langchain4j/data/message/ContentType\n-  #159 = Utf8               IMAGE\n-  #160 = Utf8               Ldev/langchain4j/data/message/ContentType;\n-  #161 = Utf8               hasToString\n-  #162 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-  #163 = Utf8               from\n-  #164 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n-  #165 = Utf8               isNotEqualTo\n-  #166 = Utf8               hasSameHashCodeAs\n-  #167 = Utf8               LOW\n-  #168 = Utf8               (Ldev/langchain4j/data/image/Image;)V\n-  #169 = Utf8               (Ldev/langchain4j/data/image/Image;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n-  #170 = Utf8               (Ldev/langchain4j/data/image/Image;)Ldev/langchain4j/data/message/ImageContent;\n-  #171 = Utf8               ()Ljava/net/URI;\n-  #172 = Utf8               (Ljava/net/URI;)V\n-  #173 = Utf8               toString\n-  #174 = Utf8               ()Ljava/lang/String;\n-  #175 = Utf8               (Ljava/lang/String;)V\n-  #176 = Utf8               (Ljava/net/URI;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n-  #177 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n-  #178 = Utf8               (Ljava/net/URI;)Ldev/langchain4j/data/message/ImageContent;\n-  #179 = Utf8               (Ljava/net/URI;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n-  #180 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n-  #181 = Utf8               base64Data\n-  #182 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-  #183 = Utf8               (Ljava/lang/String;Ljava/lang/String;)V\n-  #184 = Utf8               (Ljava/lang/String;Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n-  #185 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n-  #186 = Utf8               (Ljava/lang/String;Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Methodref          #8.#9         // dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n+    #8 = Class              #10           // dev/langchain4j/data/image/Image\n+    #9 = NameAndType        #11:#12       // builder:()Ldev/langchain4j/data/image/Image$Builder;\n+   #10 = Utf8               dev/langchain4j/data/image/Image\n+   #11 = Utf8               builder\n+   #12 = Utf8               ()Ldev/langchain4j/data/image/Image$Builder;\n+   #13 = String             #14           // https://example.com/image.png\n+   #14 = Utf8               https://example.com/image.png\n+   #15 = Methodref          #16.#17       // java/net/URI.create:(Ljava/lang/String;)Ljava/net/URI;\n+   #16 = Class              #18           // java/net/URI\n+   #17 = NameAndType        #19:#20       // create:(Ljava/lang/String;)Ljava/net/URI;\n+   #18 = Utf8               java/net/URI\n+   #19 = Utf8               create\n+   #20 = Utf8               (Ljava/lang/String;)Ljava/net/URI;\n+   #21 = Methodref          #22.#23       // dev/langchain4j/data/image/Image$Builder.url:(Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n+   #22 = Class              #24           // dev/langchain4j/data/image/Image$Builder\n+   #23 = NameAndType        #25:#26       // url:(Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n+   #24 = Utf8               dev/langchain4j/data/image/Image$Builder\n+   #25 = Utf8               url\n+   #26 = Utf8               (Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n+   #27 = Methodref          #22.#28       // dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n+   #28 = NameAndType        #29:#30       // build:()Ldev/langchain4j/data/image/Image;\n+   #29 = Utf8               build\n+   #30 = Utf8               ()Ldev/langchain4j/data/image/Image;\n+   #31 = Class              #32           // dev/langchain4j/data/message/ImageContent\n+   #32 = Utf8               dev/langchain4j/data/message/ImageContent\n+   #33 = Fieldref           #34.#35       // dev/langchain4j/data/message/ImageContent$DetailLevel.HIGH:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n+   #34 = Class              #36           // dev/langchain4j/data/message/ImageContent$DetailLevel\n+   #35 = NameAndType        #37:#38       // HIGH:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n+   #36 = Utf8               dev/langchain4j/data/message/ImageContent$DetailLevel\n+   #37 = Utf8               HIGH\n+   #38 = Utf8               Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n+   #39 = Methodref          #31.#40       // dev/langchain4j/data/message/ImageContent.\"<init>\":(Ldev/langchain4j/data/image/Image;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n+   #40 = NameAndType        #5:#41        // \"<init>\":(Ldev/langchain4j/data/image/Image;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n+   #41 = Utf8               (Ldev/langchain4j/data/image/Image;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n+   #42 = Methodref          #31.#43       // dev/langchain4j/data/message/ImageContent.image:()Ldev/langchain4j/data/image/Image;\n+   #43 = NameAndType        #44:#30       // image:()Ldev/langchain4j/data/image/Image;\n+   #44 = Utf8               image\n+   #45 = Methodref          #46.#47       // dev/langchain4j/data/message/ImageContentTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #46 = Class              #48           // dev/langchain4j/data/message/ImageContentTest\n+   #47 = NameAndType        #49:#50       // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #48 = Utf8               dev/langchain4j/data/message/ImageContentTest\n+   #49 = Utf8               assertThat\n+   #50 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #51 = Methodref          #52.#53       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #52 = Class              #54           // org/assertj/core/api/ObjectAssert\n+   #53 = NameAndType        #55:#56       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #54 = Utf8               org/assertj/core/api/ObjectAssert\n+   #55 = Utf8               isEqualTo\n+   #56 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #57 = Methodref          #31.#58       // dev/langchain4j/data/message/ImageContent.detailLevel:()Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n+   #58 = NameAndType        #59:#60       // detailLevel:()Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n+   #59 = Utf8               detailLevel\n+   #60 = Utf8               ()Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n+   #61 = Methodref          #46.#62       // dev/langchain4j/data/message/ImageContentTest.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+   #62 = NameAndType        #49:#63       // assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+   #63 = Utf8               (Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+   #64 = Methodref          #65.#53       // org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #65 = Class              #66           // org/assertj/core/api/AbstractComparableAssert\n+   #66 = Utf8               org/assertj/core/api/AbstractComparableAssert\n+   #67 = Methodref          #31.#68       // dev/langchain4j/data/message/ImageContent.type:()Ldev/langchain4j/data/message/ContentType;\n+   #68 = NameAndType        #69:#70       // type:()Ldev/langchain4j/data/message/ContentType;\n+   #69 = Utf8               type\n+   #70 = Utf8               ()Ldev/langchain4j/data/message/ContentType;\n+   #71 = Fieldref           #72.#73       // dev/langchain4j/data/message/ContentType.IMAGE:Ldev/langchain4j/data/message/ContentType;\n+   #72 = Class              #74           // dev/langchain4j/data/message/ContentType\n+   #73 = NameAndType        #75:#76       // IMAGE:Ldev/langchain4j/data/message/ContentType;\n+   #74 = Utf8               dev/langchain4j/data/message/ContentType\n+   #75 = Utf8               IMAGE\n+   #76 = Utf8               Ldev/langchain4j/data/message/ContentType;\n+   #77 = String             #78           // ImageContent { image = Image { url = \\\"https://example.com/image.png\\\", base64Data = null, mimeType = null, revisedPrompt = null } detailLevel = HIGH }\n+   #78 = Utf8               ImageContent { image = Image { url = \\\"https://example.com/image.png\\\", base64Data = null, mimeType = null, revisedPrompt = null } detailLevel = HIGH }\n+   #79 = Methodref          #52.#80       // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #80 = NameAndType        #81:#82       // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #81 = Utf8               hasToString\n+   #82 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #83 = Methodref          #31.#84       // dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n+   #84 = NameAndType        #85:#86       // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n+   #85 = Utf8               from\n+   #86 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n+   #87 = String             #88           // https://example.com/image.jpg\n+   #88 = Utf8               https://example.com/image.jpg\n+   #89 = Methodref          #52.#90       // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #90 = NameAndType        #91:#56       // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #91 = Utf8               isNotEqualTo\n+   #92 = Methodref          #52.#93       // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #93 = NameAndType        #94:#56       // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #94 = Utf8               hasSameHashCodeAs\n+   #95 = Fieldref           #34.#96       // dev/langchain4j/data/message/ImageContent$DetailLevel.LOW:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n+   #96 = NameAndType        #97:#38       // LOW:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n+   #97 = Utf8               LOW\n+   #98 = Methodref          #31.#99       // dev/langchain4j/data/message/ImageContent.\"<init>\":(Ldev/langchain4j/data/image/Image;)V\n+   #99 = NameAndType        #5:#100       // \"<init>\":(Ldev/langchain4j/data/image/Image;)V\n+  #100 = Utf8               (Ldev/langchain4j/data/image/Image;)V\n+  #101 = Methodref          #31.#102      // dev/langchain4j/data/message/ImageContent.from:(Ldev/langchain4j/data/image/Image;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n+  #102 = NameAndType        #85:#103      // from:(Ldev/langchain4j/data/image/Image;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n+  #103 = Utf8               (Ldev/langchain4j/data/image/Image;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n+  #104 = Methodref          #31.#105      // dev/langchain4j/data/message/ImageContent.from:(Ldev/langchain4j/data/image/Image;)Ldev/langchain4j/data/message/ImageContent;\n+  #105 = NameAndType        #85:#106      // from:(Ldev/langchain4j/data/image/Image;)Ldev/langchain4j/data/message/ImageContent;\n+  #106 = Utf8               (Ldev/langchain4j/data/image/Image;)Ldev/langchain4j/data/message/ImageContent;\n+  #107 = Methodref          #8.#108       // dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n+  #108 = NameAndType        #25:#109      // url:()Ljava/net/URI;\n+  #109 = Utf8               ()Ljava/net/URI;\n+  #110 = Methodref          #31.#111      // dev/langchain4j/data/message/ImageContent.\"<init>\":(Ljava/net/URI;)V\n+  #111 = NameAndType        #5:#112       // \"<init>\":(Ljava/net/URI;)V\n+  #112 = Utf8               (Ljava/net/URI;)V\n+  #113 = Methodref          #16.#114      // java/net/URI.toString:()Ljava/lang/String;\n+  #114 = NameAndType        #115:#116     // toString:()Ljava/lang/String;\n+  #115 = Utf8               toString\n+  #116 = Utf8               ()Ljava/lang/String;\n+  #117 = Methodref          #31.#118      // dev/langchain4j/data/message/ImageContent.\"<init>\":(Ljava/lang/String;)V\n+  #118 = NameAndType        #5:#119       // \"<init>\":(Ljava/lang/String;)V\n+  #119 = Utf8               (Ljava/lang/String;)V\n+  #120 = Methodref          #31.#121      // dev/langchain4j/data/message/ImageContent.\"<init>\":(Ljava/net/URI;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n+  #121 = NameAndType        #5:#122       // \"<init>\":(Ljava/net/URI;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n+  #122 = Utf8               (Ljava/net/URI;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n+  #123 = Methodref          #31.#124      // dev/langchain4j/data/message/ImageContent.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n+  #124 = NameAndType        #5:#125       // \"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n+  #125 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n+  #126 = Methodref          #31.#127      // dev/langchain4j/data/message/ImageContent.from:(Ljava/net/URI;)Ldev/langchain4j/data/message/ImageContent;\n+  #127 = NameAndType        #85:#128      // from:(Ljava/net/URI;)Ldev/langchain4j/data/message/ImageContent;\n+  #128 = Utf8               (Ljava/net/URI;)Ldev/langchain4j/data/message/ImageContent;\n+  #129 = Methodref          #31.#130      // dev/langchain4j/data/message/ImageContent.from:(Ljava/net/URI;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n+  #130 = NameAndType        #85:#131      // from:(Ljava/net/URI;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n+  #131 = Utf8               (Ljava/net/URI;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n+  #132 = Methodref          #31.#133      // dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n+  #133 = NameAndType        #85:#134      // from:(Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n+  #134 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n+  #135 = String             #136          // ff==\n+  #136 = Utf8               ff==\n+  #137 = Methodref          #22.#138      // dev/langchain4j/data/image/Image$Builder.base64Data:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+  #138 = NameAndType        #139:#140     // base64Data:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+  #139 = Utf8               base64Data\n+  #140 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+  #141 = String             #142          // mimeType\n+  #142 = Utf8               mimeType\n+  #143 = Methodref          #22.#144      // dev/langchain4j/data/image/Image$Builder.mimeType:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+  #144 = NameAndType        #142:#140     // mimeType:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+  #145 = Methodref          #8.#146       // dev/langchain4j/data/image/Image.base64Data:()Ljava/lang/String;\n+  #146 = NameAndType        #139:#116     // base64Data:()Ljava/lang/String;\n+  #147 = Methodref          #8.#148       // dev/langchain4j/data/image/Image.mimeType:()Ljava/lang/String;\n+  #148 = NameAndType        #142:#116     // mimeType:()Ljava/lang/String;\n+  #149 = Methodref          #31.#150      // dev/langchain4j/data/message/ImageContent.\"<init>\":(Ljava/lang/String;Ljava/lang/String;)V\n+  #150 = NameAndType        #5:#151       // \"<init>\":(Ljava/lang/String;Ljava/lang/String;)V\n+  #151 = Utf8               (Ljava/lang/String;Ljava/lang/String;)V\n+  #152 = Methodref          #31.#153      // dev/langchain4j/data/message/ImageContent.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n+  #153 = NameAndType        #5:#154       // \"<init>\":(Ljava/lang/String;Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n+  #154 = Utf8               (Ljava/lang/String;Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n+  #155 = Methodref          #31.#156      // dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n+  #156 = NameAndType        #85:#157      // from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n+  #157 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n+  #158 = Methodref          #31.#159      // dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n+  #159 = NameAndType        #85:#160      // from:(Ljava/lang/String;Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n+  #160 = Utf8               (Ljava/lang/String;Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n+  #161 = Class              #162          // org/assertj/core/api/WithAssertions\n+  #162 = Utf8               org/assertj/core/api/WithAssertions\n+  #163 = Utf8               Code\n+  #164 = Utf8               LineNumberTable\n+  #165 = Utf8               LocalVariableTable\n+  #166 = Utf8               this\n+  #167 = Utf8               Ldev/langchain4j/data/message/ImageContentTest;\n+  #168 = Utf8               test_methods\n+  #169 = Utf8               urlImage\n+  #170 = Utf8               Ldev/langchain4j/data/image/Image;\n+  #171 = Utf8               imageContent\n+  #172 = Utf8               Ldev/langchain4j/data/message/ImageContent;\n+  #173 = Utf8               RuntimeVisibleAnnotations\n+  #174 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #175 = Utf8               test_equals_hashCode\n+  #176 = Utf8               i1\n+  #177 = Utf8               i2\n+  #178 = Utf8               i3\n+  #179 = Utf8               i4\n+  #180 = Utf8               test_builders\n+  #181 = Utf8               base64Image\n+  #182 = Utf8               SourceFile\n+  #183 = Utf8               ImageContentTest.java\n+  #184 = Utf8               InnerClasses\n+  #185 = Utf8               Builder\n+  #186 = Utf8               DetailLevel\n {\n   dev.langchain4j.data.message.ImageContentTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -210,52 +210,52 @@\n             0       5     0  this   Ldev/langchain4j/data/message/ImageContentTest;\n \n   public void test_methods();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=4, locals=3, args_size=1\n-         0: invokestatic  #2                  // Method dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n-         3: ldc           #3                  // String https://example.com/image.png\n-         5: invokestatic  #4                  // Method java/net/URI.create:(Ljava/lang/String;)Ljava/net/URI;\n-         8: invokevirtual #5                  // Method dev/langchain4j/data/image/Image$Builder.url:(Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n-        11: invokevirtual #6                  // Method dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n+         0: invokestatic  #7                  // Method dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n+         3: ldc           #13                 // String https://example.com/image.png\n+         5: invokestatic  #15                 // Method java/net/URI.create:(Ljava/lang/String;)Ljava/net/URI;\n+         8: invokevirtual #21                 // Method dev/langchain4j/data/image/Image$Builder.url:(Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n+        11: invokevirtual #27                 // Method dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n         14: astore_1\n-        15: new           #7                  // class dev/langchain4j/data/message/ImageContent\n+        15: new           #31                 // class dev/langchain4j/data/message/ImageContent\n         18: dup\n         19: aload_1\n-        20: getstatic     #8                  // Field dev/langchain4j/data/message/ImageContent$DetailLevel.HIGH:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n-        23: invokespecial #9                  // Method dev/langchain4j/data/message/ImageContent.\"<init>\":(Ldev/langchain4j/data/image/Image;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n+        20: getstatic     #33                 // Field dev/langchain4j/data/message/ImageContent$DetailLevel.HIGH:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n+        23: invokespecial #39                 // Method dev/langchain4j/data/message/ImageContent.\"<init>\":(Ldev/langchain4j/data/image/Image;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n         26: astore_2\n         27: aload_0\n         28: aload_2\n-        29: invokevirtual #10                 // Method dev/langchain4j/data/message/ImageContent.image:()Ldev/langchain4j/data/image/Image;\n-        32: invokevirtual #11                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        29: invokevirtual #42                 // Method dev/langchain4j/data/message/ImageContent.image:()Ldev/langchain4j/data/image/Image;\n+        32: invokevirtual #45                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         35: aload_1\n-        36: invokevirtual #12                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        36: invokevirtual #51                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         39: pop\n         40: aload_0\n         41: aload_2\n-        42: invokevirtual #13                 // Method dev/langchain4j/data/message/ImageContent.detailLevel:()Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n-        45: invokevirtual #14                 // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-        48: getstatic     #8                  // Field dev/langchain4j/data/message/ImageContent$DetailLevel.HIGH:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n-        51: invokevirtual #15                 // Method org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        42: invokevirtual #57                 // Method dev/langchain4j/data/message/ImageContent.detailLevel:()Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n+        45: invokevirtual #61                 // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+        48: getstatic     #33                 // Field dev/langchain4j/data/message/ImageContent$DetailLevel.HIGH:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n+        51: invokevirtual #64                 // Method org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         54: pop\n         55: aload_0\n         56: aload_2\n-        57: invokevirtual #16                 // Method dev/langchain4j/data/message/ImageContent.type:()Ldev/langchain4j/data/message/ContentType;\n-        60: invokevirtual #14                 // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-        63: getstatic     #17                 // Field dev/langchain4j/data/message/ContentType.IMAGE:Ldev/langchain4j/data/message/ContentType;\n-        66: invokevirtual #15                 // Method org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        57: invokevirtual #67                 // Method dev/langchain4j/data/message/ImageContent.type:()Ldev/langchain4j/data/message/ContentType;\n+        60: invokevirtual #61                 // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+        63: getstatic     #71                 // Field dev/langchain4j/data/message/ContentType.IMAGE:Ldev/langchain4j/data/message/ContentType;\n+        66: invokevirtual #64                 // Method org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         69: pop\n         70: aload_0\n         71: aload_2\n-        72: invokevirtual #11                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        75: ldc           #18                 // String ImageContent { image = Image { url = \\\"https://example.com/image.png\\\", base64Data = null, mimeType = null, revisedPrompt = null } detailLevel = HIGH }\n-        77: invokevirtual #19                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+        72: invokevirtual #45                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        75: ldc           #77                 // String ImageContent { image = Image { url = \\\"https://example.com/image.png\\\", base64Data = null, mimeType = null, revisedPrompt = null } detailLevel = HIGH }\n+        77: invokevirtual #79                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n         80: pop\n         81: return\n       LineNumberTable:\n         line 12: 0\n         line 13: 5\n         line 14: 11\n         line 15: 15\n@@ -267,71 +267,71 @@\n         line 28: 81\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      82     0  this   Ldev/langchain4j/data/message/ImageContentTest;\n            15      67     1 urlImage   Ldev/langchain4j/data/image/Image;\n            27      55     2 imageContent   Ldev/langchain4j/data/message/ImageContent;\n     RuntimeVisibleAnnotations:\n-      0: #64()\n+      0: #174()\n         org.junit.jupiter.api.Test\n \n   public void test_equals_hashCode();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=5, args_size=1\n-         0: ldc           #3                  // String https://example.com/image.png\n-         2: invokestatic  #20                 // Method dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n+         0: ldc           #13                 // String https://example.com/image.png\n+         2: invokestatic  #83                 // Method dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n          5: astore_1\n-         6: ldc           #3                  // String https://example.com/image.png\n-         8: invokestatic  #20                 // Method dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n+         6: ldc           #13                 // String https://example.com/image.png\n+         8: invokestatic  #83                 // Method dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n         11: astore_2\n-        12: ldc           #21                 // String https://example.com/image.jpg\n-        14: invokestatic  #20                 // Method dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n+        12: ldc           #87                 // String https://example.com/image.jpg\n+        14: invokestatic  #83                 // Method dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n         17: astore_3\n-        18: ldc           #21                 // String https://example.com/image.jpg\n-        20: invokestatic  #20                 // Method dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n+        18: ldc           #87                 // String https://example.com/image.jpg\n+        20: invokestatic  #83                 // Method dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n         23: astore        4\n         25: aload_0\n         26: aload_1\n-        27: invokevirtual #11                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        27: invokevirtual #45                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         30: aload_1\n-        31: invokevirtual #12                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        34: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n+        31: invokevirtual #51                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        34: checkcast     #52                 // class org/assertj/core/api/ObjectAssert\n         37: aconst_null\n-        38: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        41: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n-        44: new           #24                 // class java/lang/Object\n+        38: invokevirtual #89                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        41: checkcast     #52                 // class org/assertj/core/api/ObjectAssert\n+        44: new           #2                  // class java/lang/Object\n         47: dup\n         48: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n-        51: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        54: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n+        51: invokevirtual #89                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        54: checkcast     #52                 // class org/assertj/core/api/ObjectAssert\n         57: aload_2\n-        58: invokevirtual #12                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        61: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n+        58: invokevirtual #51                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        61: checkcast     #52                 // class org/assertj/core/api/ObjectAssert\n         64: aload_2\n-        65: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        68: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n+        65: invokevirtual #92                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        68: checkcast     #52                 // class org/assertj/core/api/ObjectAssert\n         71: aload_3\n-        72: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        75: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n+        72: invokevirtual #89                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        75: checkcast     #52                 // class org/assertj/core/api/ObjectAssert\n         78: aload         4\n-        80: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        80: invokevirtual #89                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         83: pop\n         84: aload_0\n         85: aload_3\n-        86: invokevirtual #11                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        86: invokevirtual #45                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         89: aload_3\n-        90: invokevirtual #12                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        93: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n+        90: invokevirtual #51                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        93: checkcast     #52                 // class org/assertj/core/api/ObjectAssert\n         96: aload         4\n-        98: invokevirtual #12                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       101: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n+        98: invokevirtual #51                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       101: checkcast     #52                 // class org/assertj/core/api/ObjectAssert\n        104: aload         4\n-       106: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       106: invokevirtual #92                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        109: pop\n        110: return\n       LineNumberTable:\n         line 32: 0\n         line 33: 6\n         line 35: 12\n         line 36: 18\n@@ -352,168 +352,168 @@\n         Start  Length  Slot  Name   Signature\n             0     111     0  this   Ldev/langchain4j/data/message/ImageContentTest;\n             6     105     1    i1   Ldev/langchain4j/data/message/ImageContent;\n            12      99     2    i2   Ldev/langchain4j/data/message/ImageContent;\n            18      93     3    i3   Ldev/langchain4j/data/message/ImageContent;\n            25      86     4    i4   Ldev/langchain4j/data/message/ImageContent;\n     RuntimeVisibleAnnotations:\n-      0: #64()\n+      0: #174()\n         org.junit.jupiter.api.Test\n \n   public void test_builders();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=6, locals=3, args_size=1\n-         0: invokestatic  #2                  // Method dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n-         3: ldc           #3                  // String https://example.com/image.png\n-         5: invokestatic  #4                  // Method java/net/URI.create:(Ljava/lang/String;)Ljava/net/URI;\n-         8: invokevirtual #5                  // Method dev/langchain4j/data/image/Image$Builder.url:(Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n-        11: invokevirtual #6                  // Method dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n+         0: invokestatic  #7                  // Method dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n+         3: ldc           #13                 // String https://example.com/image.png\n+         5: invokestatic  #15                 // Method java/net/URI.create:(Ljava/lang/String;)Ljava/net/URI;\n+         8: invokevirtual #21                 // Method dev/langchain4j/data/image/Image$Builder.url:(Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n+        11: invokevirtual #27                 // Method dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n         14: astore_1\n         15: aload_0\n-        16: new           #7                  // class dev/langchain4j/data/message/ImageContent\n+        16: new           #31                 // class dev/langchain4j/data/message/ImageContent\n         19: dup\n         20: aload_1\n-        21: getstatic     #26                 // Field dev/langchain4j/data/message/ImageContent$DetailLevel.LOW:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n-        24: invokespecial #9                  // Method dev/langchain4j/data/message/ImageContent.\"<init>\":(Ldev/langchain4j/data/image/Image;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n-        27: invokevirtual #11                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        30: new           #7                  // class dev/langchain4j/data/message/ImageContent\n+        21: getstatic     #95                 // Field dev/langchain4j/data/message/ImageContent$DetailLevel.LOW:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n+        24: invokespecial #39                 // Method dev/langchain4j/data/message/ImageContent.\"<init>\":(Ldev/langchain4j/data/image/Image;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n+        27: invokevirtual #45                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        30: new           #31                 // class dev/langchain4j/data/message/ImageContent\n         33: dup\n         34: aload_1\n-        35: invokespecial #27                 // Method dev/langchain4j/data/message/ImageContent.\"<init>\":(Ldev/langchain4j/data/image/Image;)V\n-        38: invokevirtual #12                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        41: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n+        35: invokespecial #98                 // Method dev/langchain4j/data/message/ImageContent.\"<init>\":(Ldev/langchain4j/data/image/Image;)V\n+        38: invokevirtual #51                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        41: checkcast     #52                 // class org/assertj/core/api/ObjectAssert\n         44: aload_1\n-        45: getstatic     #26                 // Field dev/langchain4j/data/message/ImageContent$DetailLevel.LOW:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n-        48: invokestatic  #28                 // Method dev/langchain4j/data/message/ImageContent.from:(Ldev/langchain4j/data/image/Image;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n-        51: invokevirtual #12                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        54: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n+        45: getstatic     #95                 // Field dev/langchain4j/data/message/ImageContent$DetailLevel.LOW:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n+        48: invokestatic  #101                // Method dev/langchain4j/data/message/ImageContent.from:(Ldev/langchain4j/data/image/Image;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n+        51: invokevirtual #51                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        54: checkcast     #52                 // class org/assertj/core/api/ObjectAssert\n         57: aload_1\n-        58: invokestatic  #29                 // Method dev/langchain4j/data/message/ImageContent.from:(Ldev/langchain4j/data/image/Image;)Ldev/langchain4j/data/message/ImageContent;\n-        61: invokevirtual #12                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        64: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n-        67: new           #7                  // class dev/langchain4j/data/message/ImageContent\n+        58: invokestatic  #104                // Method dev/langchain4j/data/message/ImageContent.from:(Ldev/langchain4j/data/image/Image;)Ldev/langchain4j/data/message/ImageContent;\n+        61: invokevirtual #51                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        64: checkcast     #52                 // class org/assertj/core/api/ObjectAssert\n+        67: new           #31                 // class dev/langchain4j/data/message/ImageContent\n         70: dup\n         71: aload_1\n-        72: invokevirtual #30                 // Method dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n-        75: invokespecial #31                 // Method dev/langchain4j/data/message/ImageContent.\"<init>\":(Ljava/net/URI;)V\n-        78: invokevirtual #12                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        81: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n-        84: new           #7                  // class dev/langchain4j/data/message/ImageContent\n+        72: invokevirtual #107                // Method dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n+        75: invokespecial #110                // Method dev/langchain4j/data/message/ImageContent.\"<init>\":(Ljava/net/URI;)V\n+        78: invokevirtual #51                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        81: checkcast     #52                 // class org/assertj/core/api/ObjectAssert\n+        84: new           #31                 // class dev/langchain4j/data/message/ImageContent\n         87: dup\n         88: aload_1\n-        89: invokevirtual #30                 // Method dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n-        92: invokevirtual #32                 // Method java/net/URI.toString:()Ljava/lang/String;\n-        95: invokespecial #33                 // Method dev/langchain4j/data/message/ImageContent.\"<init>\":(Ljava/lang/String;)V\n-        98: invokevirtual #12                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       101: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n-       104: new           #7                  // class dev/langchain4j/data/message/ImageContent\n+        89: invokevirtual #107                // Method dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n+        92: invokevirtual #113                // Method java/net/URI.toString:()Ljava/lang/String;\n+        95: invokespecial #117                // Method dev/langchain4j/data/message/ImageContent.\"<init>\":(Ljava/lang/String;)V\n+        98: invokevirtual #51                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       101: checkcast     #52                 // class org/assertj/core/api/ObjectAssert\n+       104: new           #31                 // class dev/langchain4j/data/message/ImageContent\n        107: dup\n        108: aload_1\n-       109: invokevirtual #30                 // Method dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n-       112: getstatic     #26                 // Field dev/langchain4j/data/message/ImageContent$DetailLevel.LOW:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n-       115: invokespecial #34                 // Method dev/langchain4j/data/message/ImageContent.\"<init>\":(Ljava/net/URI;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n-       118: invokevirtual #12                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       121: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n-       124: new           #7                  // class dev/langchain4j/data/message/ImageContent\n+       109: invokevirtual #107                // Method dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n+       112: getstatic     #95                 // Field dev/langchain4j/data/message/ImageContent$DetailLevel.LOW:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n+       115: invokespecial #120                // Method dev/langchain4j/data/message/ImageContent.\"<init>\":(Ljava/net/URI;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n+       118: invokevirtual #51                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       121: checkcast     #52                 // class org/assertj/core/api/ObjectAssert\n+       124: new           #31                 // class dev/langchain4j/data/message/ImageContent\n        127: dup\n        128: aload_1\n-       129: invokevirtual #30                 // Method dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n-       132: invokevirtual #32                 // Method java/net/URI.toString:()Ljava/lang/String;\n-       135: getstatic     #26                 // Field dev/langchain4j/data/message/ImageContent$DetailLevel.LOW:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n-       138: invokespecial #35                 // Method dev/langchain4j/data/message/ImageContent.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n-       141: invokevirtual #12                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       144: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n+       129: invokevirtual #107                // Method dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n+       132: invokevirtual #113                // Method java/net/URI.toString:()Ljava/lang/String;\n+       135: getstatic     #95                 // Field dev/langchain4j/data/message/ImageContent$DetailLevel.LOW:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n+       138: invokespecial #123                // Method dev/langchain4j/data/message/ImageContent.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n+       141: invokevirtual #51                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       144: checkcast     #52                 // class org/assertj/core/api/ObjectAssert\n        147: aload_1\n-       148: invokevirtual #30                 // Method dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n-       151: invokestatic  #36                 // Method dev/langchain4j/data/message/ImageContent.from:(Ljava/net/URI;)Ldev/langchain4j/data/message/ImageContent;\n-       154: invokevirtual #12                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       157: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n+       148: invokevirtual #107                // Method dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n+       151: invokestatic  #126                // Method dev/langchain4j/data/message/ImageContent.from:(Ljava/net/URI;)Ldev/langchain4j/data/message/ImageContent;\n+       154: invokevirtual #51                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       157: checkcast     #52                 // class org/assertj/core/api/ObjectAssert\n        160: aload_1\n-       161: invokevirtual #30                 // Method dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n-       164: invokevirtual #32                 // Method java/net/URI.toString:()Ljava/lang/String;\n-       167: invokestatic  #20                 // Method dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n-       170: invokevirtual #12                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       173: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n+       161: invokevirtual #107                // Method dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n+       164: invokevirtual #113                // Method java/net/URI.toString:()Ljava/lang/String;\n+       167: invokestatic  #83                 // Method dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n+       170: invokevirtual #51                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       173: checkcast     #52                 // class org/assertj/core/api/ObjectAssert\n        176: aload_1\n-       177: invokevirtual #30                 // Method dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n-       180: getstatic     #26                 // Field dev/langchain4j/data/message/ImageContent$DetailLevel.LOW:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n-       183: invokestatic  #37                 // Method dev/langchain4j/data/message/ImageContent.from:(Ljava/net/URI;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n-       186: invokevirtual #12                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       189: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n+       177: invokevirtual #107                // Method dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n+       180: getstatic     #95                 // Field dev/langchain4j/data/message/ImageContent$DetailLevel.LOW:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n+       183: invokestatic  #129                // Method dev/langchain4j/data/message/ImageContent.from:(Ljava/net/URI;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n+       186: invokevirtual #51                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       189: checkcast     #52                 // class org/assertj/core/api/ObjectAssert\n        192: aload_1\n-       193: invokevirtual #30                 // Method dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n-       196: invokevirtual #32                 // Method java/net/URI.toString:()Ljava/lang/String;\n-       199: getstatic     #26                 // Field dev/langchain4j/data/message/ImageContent$DetailLevel.LOW:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n-       202: invokestatic  #38                 // Method dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n-       205: invokevirtual #12                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       193: invokevirtual #107                // Method dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n+       196: invokevirtual #113                // Method java/net/URI.toString:()Ljava/lang/String;\n+       199: getstatic     #95                 // Field dev/langchain4j/data/message/ImageContent$DetailLevel.LOW:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n+       202: invokestatic  #132                // Method dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n+       205: invokevirtual #51                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        208: pop\n-       209: invokestatic  #2                  // Method dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n-       212: ldc           #39                 // String ff==\n-       214: invokevirtual #40                 // Method dev/langchain4j/data/image/Image$Builder.base64Data:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-       217: ldc           #41                 // String mimeType\n-       219: invokevirtual #42                 // Method dev/langchain4j/data/image/Image$Builder.mimeType:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-       222: invokevirtual #6                  // Method dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n+       209: invokestatic  #7                  // Method dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n+       212: ldc           #135                // String ff==\n+       214: invokevirtual #137                // Method dev/langchain4j/data/image/Image$Builder.base64Data:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+       217: ldc           #141                // String mimeType\n+       219: invokevirtual #143                // Method dev/langchain4j/data/image/Image$Builder.mimeType:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+       222: invokevirtual #27                 // Method dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n        225: astore_2\n        226: aload_0\n-       227: new           #7                  // class dev/langchain4j/data/message/ImageContent\n+       227: new           #31                 // class dev/langchain4j/data/message/ImageContent\n        230: dup\n        231: aload_2\n-       232: getstatic     #26                 // Field dev/langchain4j/data/message/ImageContent$DetailLevel.LOW:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n-       235: invokespecial #9                  // Method dev/langchain4j/data/message/ImageContent.\"<init>\":(Ldev/langchain4j/data/image/Image;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n-       238: invokevirtual #11                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-       241: new           #7                  // class dev/langchain4j/data/message/ImageContent\n+       232: getstatic     #95                 // Field dev/langchain4j/data/message/ImageContent$DetailLevel.LOW:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n+       235: invokespecial #39                 // Method dev/langchain4j/data/message/ImageContent.\"<init>\":(Ldev/langchain4j/data/image/Image;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n+       238: invokevirtual #45                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       241: new           #31                 // class dev/langchain4j/data/message/ImageContent\n        244: dup\n        245: aload_2\n-       246: invokespecial #27                 // Method dev/langchain4j/data/message/ImageContent.\"<init>\":(Ldev/langchain4j/data/image/Image;)V\n-       249: invokevirtual #12                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       252: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n+       246: invokespecial #98                 // Method dev/langchain4j/data/message/ImageContent.\"<init>\":(Ldev/langchain4j/data/image/Image;)V\n+       249: invokevirtual #51                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       252: checkcast     #52                 // class org/assertj/core/api/ObjectAssert\n        255: aload_2\n-       256: getstatic     #26                 // Field dev/langchain4j/data/message/ImageContent$DetailLevel.LOW:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n-       259: invokestatic  #28                 // Method dev/langchain4j/data/message/ImageContent.from:(Ldev/langchain4j/data/image/Image;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n-       262: invokevirtual #12                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       265: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n+       256: getstatic     #95                 // Field dev/langchain4j/data/message/ImageContent$DetailLevel.LOW:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n+       259: invokestatic  #101                // Method dev/langchain4j/data/message/ImageContent.from:(Ldev/langchain4j/data/image/Image;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n+       262: invokevirtual #51                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       265: checkcast     #52                 // class org/assertj/core/api/ObjectAssert\n        268: aload_2\n-       269: invokestatic  #29                 // Method dev/langchain4j/data/message/ImageContent.from:(Ldev/langchain4j/data/image/Image;)Ldev/langchain4j/data/message/ImageContent;\n-       272: invokevirtual #12                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       275: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n-       278: new           #7                  // class dev/langchain4j/data/message/ImageContent\n+       269: invokestatic  #104                // Method dev/langchain4j/data/message/ImageContent.from:(Ldev/langchain4j/data/image/Image;)Ldev/langchain4j/data/message/ImageContent;\n+       272: invokevirtual #51                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       275: checkcast     #52                 // class org/assertj/core/api/ObjectAssert\n+       278: new           #31                 // class dev/langchain4j/data/message/ImageContent\n        281: dup\n        282: aload_2\n-       283: invokevirtual #43                 // Method dev/langchain4j/data/image/Image.base64Data:()Ljava/lang/String;\n+       283: invokevirtual #145                // Method dev/langchain4j/data/image/Image.base64Data:()Ljava/lang/String;\n        286: aload_2\n-       287: invokevirtual #44                 // Method dev/langchain4j/data/image/Image.mimeType:()Ljava/lang/String;\n-       290: invokespecial #45                 // Method dev/langchain4j/data/message/ImageContent.\"<init>\":(Ljava/lang/String;Ljava/lang/String;)V\n-       293: invokevirtual #12                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       296: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n-       299: new           #7                  // class dev/langchain4j/data/message/ImageContent\n+       287: invokevirtual #147                // Method dev/langchain4j/data/image/Image.mimeType:()Ljava/lang/String;\n+       290: invokespecial #149                // Method dev/langchain4j/data/message/ImageContent.\"<init>\":(Ljava/lang/String;Ljava/lang/String;)V\n+       293: invokevirtual #51                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       296: checkcast     #52                 // class org/assertj/core/api/ObjectAssert\n+       299: new           #31                 // class dev/langchain4j/data/message/ImageContent\n        302: dup\n        303: aload_2\n-       304: invokevirtual #43                 // Method dev/langchain4j/data/image/Image.base64Data:()Ljava/lang/String;\n+       304: invokevirtual #145                // Method dev/langchain4j/data/image/Image.base64Data:()Ljava/lang/String;\n        307: aload_2\n-       308: invokevirtual #44                 // Method dev/langchain4j/data/image/Image.mimeType:()Ljava/lang/String;\n-       311: getstatic     #26                 // Field dev/langchain4j/data/message/ImageContent$DetailLevel.LOW:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n-       314: invokespecial #46                 // Method dev/langchain4j/data/message/ImageContent.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n-       317: invokevirtual #12                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       320: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n+       308: invokevirtual #147                // Method dev/langchain4j/data/image/Image.mimeType:()Ljava/lang/String;\n+       311: getstatic     #95                 // Field dev/langchain4j/data/message/ImageContent$DetailLevel.LOW:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n+       314: invokespecial #152                // Method dev/langchain4j/data/message/ImageContent.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n+       317: invokevirtual #51                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       320: checkcast     #52                 // class org/assertj/core/api/ObjectAssert\n        323: aload_2\n-       324: invokevirtual #43                 // Method dev/langchain4j/data/image/Image.base64Data:()Ljava/lang/String;\n+       324: invokevirtual #145                // Method dev/langchain4j/data/image/Image.base64Data:()Ljava/lang/String;\n        327: aload_2\n-       328: invokevirtual #44                 // Method dev/langchain4j/data/image/Image.mimeType:()Ljava/lang/String;\n-       331: invokestatic  #47                 // Method dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n-       334: invokevirtual #12                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       337: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n+       328: invokevirtual #147                // Method dev/langchain4j/data/image/Image.mimeType:()Ljava/lang/String;\n+       331: invokestatic  #155                // Method dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n+       334: invokevirtual #51                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       337: checkcast     #52                 // class org/assertj/core/api/ObjectAssert\n        340: aload_2\n-       341: invokevirtual #43                 // Method dev/langchain4j/data/image/Image.base64Data:()Ljava/lang/String;\n+       341: invokevirtual #145                // Method dev/langchain4j/data/image/Image.base64Data:()Ljava/lang/String;\n        344: aload_2\n-       345: invokevirtual #44                 // Method dev/langchain4j/data/image/Image.mimeType:()Ljava/lang/String;\n-       348: getstatic     #26                 // Field dev/langchain4j/data/message/ImageContent$DetailLevel.LOW:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n-       351: invokestatic  #48                 // Method dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n-       354: invokevirtual #12                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       345: invokevirtual #147                // Method dev/langchain4j/data/image/Image.mimeType:()Ljava/lang/String;\n+       348: getstatic     #95                 // Field dev/langchain4j/data/message/ImageContent$DetailLevel.LOW:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n+       351: invokestatic  #158                // Method dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n+       354: invokevirtual #51                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        357: pop\n        358: return\n       LineNumberTable:\n         line 55: 0\n         line 56: 5\n         line 57: 11\n         line 58: 15\n@@ -543,14 +543,14 @@\n         line 83: 358\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     359     0  this   Ldev/langchain4j/data/message/ImageContentTest;\n            15     344     1 urlImage   Ldev/langchain4j/data/image/Image;\n           226     133     2 base64Image   Ldev/langchain4j/data/image/Image;\n     RuntimeVisibleAnnotations:\n-      0: #64()\n+      0: #174()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"ImageContentTest.java\"\n InnerClasses:\n-  public static #131= #80 of #75;         // Builder=class dev/langchain4j/data/image/Image$Builder of class dev/langchain4j/data/image/Image\n-  public static final #143= #84 of #7;    // DetailLevel=class dev/langchain4j/data/message/ImageContent$DetailLevel of class dev/langchain4j/data/message/ImageContent\n+  public static #185= #22 of #8;          // Builder=class dev/langchain4j/data/image/Image$Builder of class dev/langchain4j/data/image/Image\n+  public static final #186= #34 of #31;   // DetailLevel=class dev/langchain4j/data/message/ImageContent$DetailLevel of class dev/langchain4j/data/message/ImageContent\n"}]}, {"source1": "dev/langchain4j/data/message/SystemMessageTest.class", "source2": "dev/langchain4j/data/message/SystemMessageTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,112 +1,112 @@\n-  SHA-256 checksum f418be9fbcd46c82108c854dde9d91b753c17d4510fb418fa61b3b228886cd16\n+  SHA-256 checksum e7b3bb2a3d10c09434bdb785dc125e3c44cfc6fe924d14f62ae63ebaf3c094d5\n   Compiled from \"SystemMessageTest.java\"\n class dev.langchain4j.data.message.SystemMessageTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #24                         // dev/langchain4j/data/message/SystemMessageTest\n-  super_class: #21                        // java/lang/Object\n+  this_class: #15                         // dev/langchain4j/data/message/SystemMessageTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 4, attributes: 1\n Constant pool:\n-   #1 = Methodref          #21.#46        // java/lang/Object.\"<init>\":()V\n-   #2 = Class              #47            // dev/langchain4j/data/message/SystemMessage\n-   #3 = String             #48            // text\n-   #4 = Methodref          #2.#49         // dev/langchain4j/data/message/SystemMessage.\"<init>\":(Ljava/lang/String;)V\n-   #5 = Methodref          #24.#50        // dev/langchain4j/data/message/SystemMessageTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #6 = Methodref          #2.#51         // dev/langchain4j/data/message/SystemMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n-   #7 = Methodref          #8.#52         // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #8 = Class              #53            // org/assertj/core/api/ObjectAssert\n-   #9 = Methodref          #2.#54         // dev/langchain4j/data/message/SystemMessage.systemMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n-  #10 = Methodref          #2.#55         // dev/langchain4j/data/message/SystemMessage.text:()Ljava/lang/String;\n-  #11 = Methodref          #24.#56        // dev/langchain4j/data/message/SystemMessageTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #12 = Methodref          #57.#58        // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #13 = Methodref          #2.#59         // dev/langchain4j/data/message/SystemMessage.type:()Ldev/langchain4j/data/message/ChatMessageType;\n-  #14 = Methodref          #24.#60        // dev/langchain4j/data/message/SystemMessageTest.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-  #15 = Fieldref           #61.#62        // dev/langchain4j/data/message/ChatMessageType.SYSTEM:Ldev/langchain4j/data/message/ChatMessageType;\n-  #16 = Methodref          #63.#52        // org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #17 = String             #64            // SystemMessage { text = \\\"text\\\" }\n-  #18 = Methodref          #8.#65         // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-  #19 = String             #66            // text2\n-  #20 = Methodref          #8.#67         // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #21 = Class              #68            // java/lang/Object\n-  #22 = Methodref          #8.#69         // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #23 = Methodref          #8.#70         // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #24 = Class              #71            // dev/langchain4j/data/message/SystemMessageTest\n-  #25 = Class              #72            // org/assertj/core/api/WithAssertions\n-  #26 = Utf8               <init>\n-  #27 = Utf8               ()V\n-  #28 = Utf8               Code\n-  #29 = Utf8               LineNumberTable\n-  #30 = Utf8               LocalVariableTable\n-  #31 = Utf8               this\n-  #32 = Utf8               Ldev/langchain4j/data/message/SystemMessageTest;\n-  #33 = Utf8               test_builders\n-  #34 = Utf8               RuntimeVisibleAnnotations\n-  #35 = Utf8               Lorg/junit/jupiter/api/Test;\n-  #36 = Utf8               test_methods\n-  #37 = Utf8               message\n-  #38 = Utf8               Ldev/langchain4j/data/message/SystemMessage;\n-  #39 = Utf8               test_equals_hashCode\n-  #40 = Utf8               s1\n-  #41 = Utf8               s2\n-  #42 = Utf8               s3\n-  #43 = Utf8               s4\n-  #44 = Utf8               SourceFile\n-  #45 = Utf8               SystemMessageTest.java\n-  #46 = NameAndType        #26:#27        // \"<init>\":()V\n-  #47 = Utf8               dev/langchain4j/data/message/SystemMessage\n-  #48 = Utf8               text\n-  #49 = NameAndType        #26:#73        // \"<init>\":(Ljava/lang/String;)V\n-  #50 = NameAndType        #74:#75        // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #51 = NameAndType        #76:#77        // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n-  #52 = NameAndType        #78:#79        // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #53 = Utf8               org/assertj/core/api/ObjectAssert\n-  #54 = NameAndType        #80:#77        // systemMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n-  #55 = NameAndType        #48:#81        // text:()Ljava/lang/String;\n-  #56 = NameAndType        #74:#82        // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #57 = Class              #83            // org/assertj/core/api/AbstractStringAssert\n-  #58 = NameAndType        #78:#82        // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #59 = NameAndType        #84:#85        // type:()Ldev/langchain4j/data/message/ChatMessageType;\n-  #60 = NameAndType        #74:#86        // assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-  #61 = Class              #87            // dev/langchain4j/data/message/ChatMessageType\n-  #62 = NameAndType        #88:#89        // SYSTEM:Ldev/langchain4j/data/message/ChatMessageType;\n-  #63 = Class              #90            // org/assertj/core/api/AbstractComparableAssert\n-  #64 = Utf8               SystemMessage { text = \\\"text\\\" }\n-  #65 = NameAndType        #91:#92        // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Class              #8             // dev/langchain4j/data/message/SystemMessage\n+   #8 = Utf8               dev/langchain4j/data/message/SystemMessage\n+   #9 = String             #10            // text\n+  #10 = Utf8               text\n+  #11 = Methodref          #7.#12         // dev/langchain4j/data/message/SystemMessage.\"<init>\":(Ljava/lang/String;)V\n+  #12 = NameAndType        #5:#13         // \"<init>\":(Ljava/lang/String;)V\n+  #13 = Utf8               (Ljava/lang/String;)V\n+  #14 = Methodref          #15.#16        // dev/langchain4j/data/message/SystemMessageTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+  #15 = Class              #17            // dev/langchain4j/data/message/SystemMessageTest\n+  #16 = NameAndType        #18:#19        // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+  #17 = Utf8               dev/langchain4j/data/message/SystemMessageTest\n+  #18 = Utf8               assertThat\n+  #19 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+  #20 = Methodref          #7.#21         // dev/langchain4j/data/message/SystemMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n+  #21 = NameAndType        #22:#23        // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n+  #22 = Utf8               from\n+  #23 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n+  #24 = Methodref          #25.#26        // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #25 = Class              #27            // org/assertj/core/api/ObjectAssert\n+  #26 = NameAndType        #28:#29        // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #27 = Utf8               org/assertj/core/api/ObjectAssert\n+  #28 = Utf8               isEqualTo\n+  #29 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #30 = Methodref          #7.#31         // dev/langchain4j/data/message/SystemMessage.systemMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n+  #31 = NameAndType        #32:#23        // systemMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n+  #32 = Utf8               systemMessage\n+  #33 = Methodref          #7.#34         // dev/langchain4j/data/message/SystemMessage.text:()Ljava/lang/String;\n+  #34 = NameAndType        #10:#35        // text:()Ljava/lang/String;\n+  #35 = Utf8               ()Ljava/lang/String;\n+  #36 = Methodref          #15.#37        // dev/langchain4j/data/message/SystemMessageTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #37 = NameAndType        #18:#38        // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #38 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #39 = Methodref          #40.#41        // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #40 = Class              #42            // org/assertj/core/api/AbstractStringAssert\n+  #41 = NameAndType        #28:#38        // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #42 = Utf8               org/assertj/core/api/AbstractStringAssert\n+  #43 = Methodref          #7.#44         // dev/langchain4j/data/message/SystemMessage.type:()Ldev/langchain4j/data/message/ChatMessageType;\n+  #44 = NameAndType        #45:#46        // type:()Ldev/langchain4j/data/message/ChatMessageType;\n+  #45 = Utf8               type\n+  #46 = Utf8               ()Ldev/langchain4j/data/message/ChatMessageType;\n+  #47 = Methodref          #15.#48        // dev/langchain4j/data/message/SystemMessageTest.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+  #48 = NameAndType        #18:#49        // assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+  #49 = Utf8               (Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+  #50 = Fieldref           #51.#52        // dev/langchain4j/data/message/ChatMessageType.SYSTEM:Ldev/langchain4j/data/message/ChatMessageType;\n+  #51 = Class              #53            // dev/langchain4j/data/message/ChatMessageType\n+  #52 = NameAndType        #54:#55        // SYSTEM:Ldev/langchain4j/data/message/ChatMessageType;\n+  #53 = Utf8               dev/langchain4j/data/message/ChatMessageType\n+  #54 = Utf8               SYSTEM\n+  #55 = Utf8               Ldev/langchain4j/data/message/ChatMessageType;\n+  #56 = Methodref          #57.#26        // org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #57 = Class              #58            // org/assertj/core/api/AbstractComparableAssert\n+  #58 = Utf8               org/assertj/core/api/AbstractComparableAssert\n+  #59 = String             #60            // SystemMessage { text = \\\"text\\\" }\n+  #60 = Utf8               SystemMessage { text = \\\"text\\\" }\n+  #61 = Methodref          #25.#62        // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+  #62 = NameAndType        #63:#64        // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+  #63 = Utf8               hasToString\n+  #64 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+  #65 = String             #66            // text2\n   #66 = Utf8               text2\n-  #67 = NameAndType        #93:#79        // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #68 = Utf8               java/lang/Object\n-  #69 = NameAndType        #94:#79        // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #70 = NameAndType        #95:#79        // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #71 = Utf8               dev/langchain4j/data/message/SystemMessageTest\n-  #72 = Utf8               org/assertj/core/api/WithAssertions\n-  #73 = Utf8               (Ljava/lang/String;)V\n-  #74 = Utf8               assertThat\n-  #75 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #76 = Utf8               from\n-  #77 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n-  #78 = Utf8               isEqualTo\n-  #79 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #80 = Utf8               systemMessage\n-  #81 = Utf8               ()Ljava/lang/String;\n-  #82 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #83 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #84 = Utf8               type\n-  #85 = Utf8               ()Ldev/langchain4j/data/message/ChatMessageType;\n-  #86 = Utf8               (Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-  #87 = Utf8               dev/langchain4j/data/message/ChatMessageType\n-  #88 = Utf8               SYSTEM\n-  #89 = Utf8               Ldev/langchain4j/data/message/ChatMessageType;\n-  #90 = Utf8               org/assertj/core/api/AbstractComparableAssert\n-  #91 = Utf8               hasToString\n-  #92 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-  #93 = Utf8               isNotEqualTo\n-  #94 = Utf8               hasSameHashCodeAs\n-  #95 = Utf8               doesNotHaveSameHashCodeAs\n+  #67 = Methodref          #25.#68        // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #68 = NameAndType        #69:#29        // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #69 = Utf8               isNotEqualTo\n+  #70 = Methodref          #25.#71        // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #71 = NameAndType        #72:#29        // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #72 = Utf8               hasSameHashCodeAs\n+  #73 = Methodref          #25.#74        // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #74 = NameAndType        #75:#29        // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #75 = Utf8               doesNotHaveSameHashCodeAs\n+  #76 = Class              #77            // org/assertj/core/api/WithAssertions\n+  #77 = Utf8               org/assertj/core/api/WithAssertions\n+  #78 = Utf8               Code\n+  #79 = Utf8               LineNumberTable\n+  #80 = Utf8               LocalVariableTable\n+  #81 = Utf8               this\n+  #82 = Utf8               Ldev/langchain4j/data/message/SystemMessageTest;\n+  #83 = Utf8               test_builders\n+  #84 = Utf8               RuntimeVisibleAnnotations\n+  #85 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #86 = Utf8               test_methods\n+  #87 = Utf8               message\n+  #88 = Utf8               Ldev/langchain4j/data/message/SystemMessage;\n+  #89 = Utf8               test_equals_hashCode\n+  #90 = Utf8               s1\n+  #91 = Utf8               s2\n+  #92 = Utf8               s3\n+  #93 = Utf8               s4\n+  #94 = Utf8               SourceFile\n+  #95 = Utf8               SystemMessageTest.java\n {\n   dev.langchain4j.data.message.SystemMessageTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -120,147 +120,147 @@\n \n   public void test_builders();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=4, locals=1, args_size=1\n          0: aload_0\n-         1: new           #2                  // class dev/langchain4j/data/message/SystemMessage\n+         1: new           #7                  // class dev/langchain4j/data/message/SystemMessage\n          4: dup\n-         5: ldc           #3                  // String text\n-         7: invokespecial #4                  // Method dev/langchain4j/data/message/SystemMessage.\"<init>\":(Ljava/lang/String;)V\n-        10: invokevirtual #5                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        13: ldc           #3                  // String text\n-        15: invokestatic  #6                  // Method dev/langchain4j/data/message/SystemMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n-        18: invokevirtual #7                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        21: checkcast     #8                  // class org/assertj/core/api/ObjectAssert\n-        24: ldc           #3                  // String text\n-        26: invokestatic  #9                  // Method dev/langchain4j/data/message/SystemMessage.systemMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n-        29: invokevirtual #7                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+         5: ldc           #9                  // String text\n+         7: invokespecial #11                 // Method dev/langchain4j/data/message/SystemMessage.\"<init>\":(Ljava/lang/String;)V\n+        10: invokevirtual #14                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        13: ldc           #9                  // String text\n+        15: invokestatic  #20                 // Method dev/langchain4j/data/message/SystemMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n+        18: invokevirtual #24                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        21: checkcast     #25                 // class org/assertj/core/api/ObjectAssert\n+        24: ldc           #9                  // String text\n+        26: invokestatic  #30                 // Method dev/langchain4j/data/message/SystemMessage.systemMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n+        29: invokevirtual #24                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         32: pop\n         33: return\n       LineNumberTable:\n         line 9: 0\n         line 10: 15\n         line 11: 26\n         line 12: 33\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      34     0  this   Ldev/langchain4j/data/message/SystemMessageTest;\n     RuntimeVisibleAnnotations:\n-      0: #35()\n+      0: #85()\n         org.junit.jupiter.api.Test\n \n   public void test_methods();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=2, args_size=1\n-         0: new           #2                  // class dev/langchain4j/data/message/SystemMessage\n+         0: new           #7                  // class dev/langchain4j/data/message/SystemMessage\n          3: dup\n-         4: ldc           #3                  // String text\n-         6: invokespecial #4                  // Method dev/langchain4j/data/message/SystemMessage.\"<init>\":(Ljava/lang/String;)V\n+         4: ldc           #9                  // String text\n+         6: invokespecial #11                 // Method dev/langchain4j/data/message/SystemMessage.\"<init>\":(Ljava/lang/String;)V\n          9: astore_1\n         10: aload_0\n         11: aload_1\n-        12: invokevirtual #10                 // Method dev/langchain4j/data/message/SystemMessage.text:()Ljava/lang/String;\n-        15: invokevirtual #11                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        18: ldc           #3                  // String text\n-        20: invokevirtual #12                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        12: invokevirtual #33                 // Method dev/langchain4j/data/message/SystemMessage.text:()Ljava/lang/String;\n+        15: invokevirtual #36                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        18: ldc           #9                  // String text\n+        20: invokevirtual #39                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         23: pop\n         24: aload_0\n         25: aload_1\n-        26: invokevirtual #13                 // Method dev/langchain4j/data/message/SystemMessage.type:()Ldev/langchain4j/data/message/ChatMessageType;\n-        29: invokevirtual #14                 // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-        32: getstatic     #15                 // Field dev/langchain4j/data/message/ChatMessageType.SYSTEM:Ldev/langchain4j/data/message/ChatMessageType;\n-        35: invokevirtual #16                 // Method org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        26: invokevirtual #43                 // Method dev/langchain4j/data/message/SystemMessage.type:()Ldev/langchain4j/data/message/ChatMessageType;\n+        29: invokevirtual #47                 // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+        32: getstatic     #50                 // Field dev/langchain4j/data/message/ChatMessageType.SYSTEM:Ldev/langchain4j/data/message/ChatMessageType;\n+        35: invokevirtual #56                 // Method org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         38: pop\n         39: aload_0\n         40: aload_1\n-        41: invokevirtual #5                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        44: ldc           #17                 // String SystemMessage { text = \\\"text\\\" }\n-        46: invokevirtual #18                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+        41: invokevirtual #14                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        44: ldc           #59                 // String SystemMessage { text = \\\"text\\\" }\n+        46: invokevirtual #61                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n         49: pop\n         50: return\n       LineNumberTable:\n         line 16: 0\n         line 17: 10\n         line 18: 24\n         line 20: 39\n         line 21: 50\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      51     0  this   Ldev/langchain4j/data/message/SystemMessageTest;\n            10      41     1 message   Ldev/langchain4j/data/message/SystemMessage;\n     RuntimeVisibleAnnotations:\n-      0: #35()\n+      0: #85()\n         org.junit.jupiter.api.Test\n \n   public void test_equals_hashCode();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=5, args_size=1\n-         0: new           #2                  // class dev/langchain4j/data/message/SystemMessage\n+         0: new           #7                  // class dev/langchain4j/data/message/SystemMessage\n          3: dup\n-         4: ldc           #3                  // String text\n-         6: invokespecial #4                  // Method dev/langchain4j/data/message/SystemMessage.\"<init>\":(Ljava/lang/String;)V\n+         4: ldc           #9                  // String text\n+         6: invokespecial #11                 // Method dev/langchain4j/data/message/SystemMessage.\"<init>\":(Ljava/lang/String;)V\n          9: astore_1\n-        10: new           #2                  // class dev/langchain4j/data/message/SystemMessage\n+        10: new           #7                  // class dev/langchain4j/data/message/SystemMessage\n         13: dup\n-        14: ldc           #3                  // String text\n-        16: invokespecial #4                  // Method dev/langchain4j/data/message/SystemMessage.\"<init>\":(Ljava/lang/String;)V\n+        14: ldc           #9                  // String text\n+        16: invokespecial #11                 // Method dev/langchain4j/data/message/SystemMessage.\"<init>\":(Ljava/lang/String;)V\n         19: astore_2\n-        20: new           #2                  // class dev/langchain4j/data/message/SystemMessage\n+        20: new           #7                  // class dev/langchain4j/data/message/SystemMessage\n         23: dup\n-        24: ldc           #19                 // String text2\n-        26: invokespecial #4                  // Method dev/langchain4j/data/message/SystemMessage.\"<init>\":(Ljava/lang/String;)V\n+        24: ldc           #65                 // String text2\n+        26: invokespecial #11                 // Method dev/langchain4j/data/message/SystemMessage.\"<init>\":(Ljava/lang/String;)V\n         29: astore_3\n-        30: new           #2                  // class dev/langchain4j/data/message/SystemMessage\n+        30: new           #7                  // class dev/langchain4j/data/message/SystemMessage\n         33: dup\n-        34: ldc           #19                 // String text2\n-        36: invokespecial #4                  // Method dev/langchain4j/data/message/SystemMessage.\"<init>\":(Ljava/lang/String;)V\n+        34: ldc           #65                 // String text2\n+        36: invokespecial #11                 // Method dev/langchain4j/data/message/SystemMessage.\"<init>\":(Ljava/lang/String;)V\n         39: astore        4\n         41: aload_0\n         42: aload_1\n-        43: invokevirtual #5                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        43: invokevirtual #14                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         46: aload_1\n-        47: invokevirtual #7                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        50: checkcast     #8                  // class org/assertj/core/api/ObjectAssert\n+        47: invokevirtual #24                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        50: checkcast     #25                 // class org/assertj/core/api/ObjectAssert\n         53: aconst_null\n-        54: invokevirtual #20                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        57: checkcast     #8                  // class org/assertj/core/api/ObjectAssert\n-        60: new           #21                 // class java/lang/Object\n+        54: invokevirtual #67                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        57: checkcast     #25                 // class org/assertj/core/api/ObjectAssert\n+        60: new           #2                  // class java/lang/Object\n         63: dup\n         64: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n-        67: invokevirtual #20                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        70: checkcast     #8                  // class org/assertj/core/api/ObjectAssert\n+        67: invokevirtual #67                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        70: checkcast     #25                 // class org/assertj/core/api/ObjectAssert\n         73: aload_2\n-        74: invokevirtual #7                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        77: checkcast     #8                  // class org/assertj/core/api/ObjectAssert\n+        74: invokevirtual #24                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        77: checkcast     #25                 // class org/assertj/core/api/ObjectAssert\n         80: aload_2\n-        81: invokevirtual #22                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        84: checkcast     #8                  // class org/assertj/core/api/ObjectAssert\n+        81: invokevirtual #70                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        84: checkcast     #25                 // class org/assertj/core/api/ObjectAssert\n         87: aload_3\n-        88: invokevirtual #20                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        91: checkcast     #8                  // class org/assertj/core/api/ObjectAssert\n+        88: invokevirtual #67                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        91: checkcast     #25                 // class org/assertj/core/api/ObjectAssert\n         94: aload_3\n-        95: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        95: invokevirtual #73                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         98: pop\n         99: aload_0\n        100: aload_3\n-       101: invokevirtual #5                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       101: invokevirtual #14                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        104: aload_3\n-       105: invokevirtual #7                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       108: checkcast     #8                  // class org/assertj/core/api/ObjectAssert\n+       105: invokevirtual #24                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       108: checkcast     #25                 // class org/assertj/core/api/ObjectAssert\n        111: aload         4\n-       113: invokevirtual #7                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       116: checkcast     #8                  // class org/assertj/core/api/ObjectAssert\n+       113: invokevirtual #24                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       116: checkcast     #25                 // class org/assertj/core/api/ObjectAssert\n        119: aload         4\n-       121: invokevirtual #22                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       121: invokevirtual #70                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        124: pop\n        125: return\n       LineNumberTable:\n         line 25: 0\n         line 26: 10\n         line 28: 20\n         line 29: 30\n@@ -281,11 +281,11 @@\n         Start  Length  Slot  Name   Signature\n             0     126     0  this   Ldev/langchain4j/data/message/SystemMessageTest;\n            10     116     1    s1   Ldev/langchain4j/data/message/SystemMessage;\n            20     106     2    s2   Ldev/langchain4j/data/message/SystemMessage;\n            30      96     3    s3   Ldev/langchain4j/data/message/SystemMessage;\n            41      85     4    s4   Ldev/langchain4j/data/message/SystemMessage;\n     RuntimeVisibleAnnotations:\n-      0: #35()\n+      0: #85()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"SystemMessageTest.java\"\n"}]}, {"source1": "dev/langchain4j/data/message/ToolExecutionResultMessageTest.class", "source2": "dev/langchain4j/data/message/ToolExecutionResultMessageTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,153 +1,153 @@\n-  SHA-256 checksum 1fb397d6979f371b3a808d220a24672b12b29ce42526f122e78b8b3a00f56199\n+  SHA-256 checksum f608717a1fae5e8eebf55260ee427a1ad89dd681748e8a4bb962e4ebd07cc9fa\n   Compiled from \"ToolExecutionResultMessageTest.java\"\n class dev.langchain4j.data.message.ToolExecutionResultMessageTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #37                         // dev/langchain4j/data/message/ToolExecutionResultMessageTest\n-  super_class: #23                        // java/lang/Object\n+  this_class: #22                         // dev/langchain4j/data/message/ToolExecutionResultMessageTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 4, attributes: 2\n Constant pool:\n-    #1 = Methodref          #23.#61       // java/lang/Object.\"<init>\":()V\n-    #2 = Class              #62           // dev/langchain4j/data/message/ToolExecutionResultMessage\n-    #3 = String             #63           // id\n-    #4 = String             #64           // toolName\n-    #5 = String             #65           // text\n-    #6 = Methodref          #2.#66        // dev/langchain4j/data/message/ToolExecutionResultMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V\n-    #7 = Methodref          #2.#67        // dev/langchain4j/data/message/ToolExecutionResultMessage.id:()Ljava/lang/String;\n-    #8 = Methodref          #37.#68       // dev/langchain4j/data/message/ToolExecutionResultMessageTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-    #9 = Methodref          #69.#70       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #10 = Methodref          #2.#71        // dev/langchain4j/data/message/ToolExecutionResultMessage.toolName:()Ljava/lang/String;\n-   #11 = Methodref          #2.#72        // dev/langchain4j/data/message/ToolExecutionResultMessage.text:()Ljava/lang/String;\n-   #12 = Methodref          #2.#73        // dev/langchain4j/data/message/ToolExecutionResultMessage.type:()Ldev/langchain4j/data/message/ChatMessageType;\n-   #13 = Methodref          #37.#74       // dev/langchain4j/data/message/ToolExecutionResultMessageTest.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-   #14 = Fieldref           #75.#76       // dev/langchain4j/data/message/ChatMessageType.TOOL_EXECUTION_RESULT:Ldev/langchain4j/data/message/ChatMessageType;\n-   #15 = Methodref          #77.#78       // org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #16 = Methodref          #37.#79       // dev/langchain4j/data/message/ToolExecutionResultMessageTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #17 = String             #80           // ToolExecutionResultMessage { id = \\\"id\\\" toolName = \\\"toolName\\\" text = \\\"text\\\" }\n-   #18 = Methodref          #21.#81       // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-   #19 = String             #82           // foo\n-   #20 = Methodref          #21.#78       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #21 = Class              #83           // org/assertj/core/api/ObjectAssert\n-   #22 = Methodref          #21.#84       // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #23 = Class              #85           // java/lang/Object\n-   #24 = Methodref          #21.#86       // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #25 = String             #87           // changed\n-   #26 = Methodref          #2.#88        // dev/langchain4j/data/message/ToolExecutionResultMessage.from:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n-   #27 = Methodref          #21.#89       // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #28 = Methodref          #90.#91       // dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #29 = Methodref          #92.#93       // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #30 = Methodref          #92.#94       // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #31 = String             #95           // arguments\n-   #32 = Methodref          #92.#96       // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #33 = Methodref          #92.#97       // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-   #34 = Methodref          #2.#98        // dev/langchain4j/data/message/ToolExecutionResultMessage.from:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n-   #35 = Methodref          #2.#99        // dev/langchain4j/data/message/ToolExecutionResultMessage.toolExecutionResultMessage:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n-   #36 = Methodref          #2.#100       // dev/langchain4j/data/message/ToolExecutionResultMessage.toolExecutionResultMessage:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n-   #37 = Class              #101          // dev/langchain4j/data/message/ToolExecutionResultMessageTest\n-   #38 = Class              #102          // org/assertj/core/api/WithAssertions\n-   #39 = Utf8               <init>\n-   #40 = Utf8               ()V\n-   #41 = Utf8               Code\n-   #42 = Utf8               LineNumberTable\n-   #43 = Utf8               LocalVariableTable\n-   #44 = Utf8               this\n-   #45 = Utf8               Ldev/langchain4j/data/message/ToolExecutionResultMessageTest;\n-   #46 = Utf8               test_methods\n-   #47 = Utf8               tm\n-   #48 = Utf8               Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n-   #49 = Utf8               RuntimeVisibleAnnotations\n-   #50 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #51 = Utf8               test_equals_hashCode\n-   #52 = Utf8               t1\n-   #53 = Utf8               t2\n-   #54 = Utf8               t3\n-   #55 = Utf8               t4\n-   #56 = Utf8               test_builders\n-   #57 = Utf8               request\n-   #58 = Utf8               Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-   #59 = Utf8               SourceFile\n-   #60 = Utf8               ToolExecutionResultMessageTest.java\n-   #61 = NameAndType        #39:#40       // \"<init>\":()V\n-   #62 = Utf8               dev/langchain4j/data/message/ToolExecutionResultMessage\n-   #63 = Utf8               id\n-   #64 = Utf8               toolName\n-   #65 = Utf8               text\n-   #66 = NameAndType        #39:#103      // \"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V\n-   #67 = NameAndType        #63:#104      // id:()Ljava/lang/String;\n-   #68 = NameAndType        #105:#106     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #69 = Class              #107          // org/assertj/core/api/AbstractStringAssert\n-   #70 = NameAndType        #108:#106     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #71 = NameAndType        #64:#104      // toolName:()Ljava/lang/String;\n-   #72 = NameAndType        #65:#104      // text:()Ljava/lang/String;\n-   #73 = NameAndType        #109:#110     // type:()Ldev/langchain4j/data/message/ChatMessageType;\n-   #74 = NameAndType        #105:#111     // assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-   #75 = Class              #112          // dev/langchain4j/data/message/ChatMessageType\n-   #76 = NameAndType        #113:#114     // TOOL_EXECUTION_RESULT:Ldev/langchain4j/data/message/ChatMessageType;\n-   #77 = Class              #115          // org/assertj/core/api/AbstractComparableAssert\n-   #78 = NameAndType        #108:#116     // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #79 = NameAndType        #105:#117     // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #80 = Utf8               ToolExecutionResultMessage { id = \\\"id\\\" toolName = \\\"toolName\\\" text = \\\"text\\\" }\n-   #81 = NameAndType        #118:#119     // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-   #82 = Utf8               foo\n-   #83 = Utf8               org/assertj/core/api/ObjectAssert\n-   #84 = NameAndType        #120:#116     // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #85 = Utf8               java/lang/Object\n-   #86 = NameAndType        #121:#116     // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #87 = Utf8               changed\n-   #88 = NameAndType        #122:#123     // from:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n-   #89 = NameAndType        #124:#116     // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #90 = Class              #125          // dev/langchain4j/agent/tool/ToolExecutionRequest\n-   #91 = NameAndType        #126:#129     // builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #92 = Class              #130          // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n-   #93 = NameAndType        #63:#131      // id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #94 = NameAndType        #132:#131     // name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #95 = Utf8               arguments\n-   #96 = NameAndType        #95:#131      // arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #97 = NameAndType        #133:#134     // build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-   #98 = NameAndType        #122:#135     // from:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n-   #99 = NameAndType        #136:#123     // toolExecutionResultMessage:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n-  #100 = NameAndType        #136:#135     // toolExecutionResultMessage:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n-  #101 = Utf8               dev/langchain4j/data/message/ToolExecutionResultMessageTest\n-  #102 = Utf8               org/assertj/core/api/WithAssertions\n-  #103 = Utf8               (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V\n-  #104 = Utf8               ()Ljava/lang/String;\n-  #105 = Utf8               assertThat\n-  #106 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #107 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #108 = Utf8               isEqualTo\n-  #109 = Utf8               type\n-  #110 = Utf8               ()Ldev/langchain4j/data/message/ChatMessageType;\n-  #111 = Utf8               (Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-  #112 = Utf8               dev/langchain4j/data/message/ChatMessageType\n-  #113 = Utf8               TOOL_EXECUTION_RESULT\n-  #114 = Utf8               Ldev/langchain4j/data/message/ChatMessageType;\n-  #115 = Utf8               org/assertj/core/api/AbstractComparableAssert\n-  #116 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #117 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #118 = Utf8               hasToString\n-  #119 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-  #120 = Utf8               isNotEqualTo\n-  #121 = Utf8               hasSameHashCodeAs\n-  #122 = Utf8               from\n-  #123 = Utf8               (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n-  #124 = Utf8               doesNotHaveSameHashCodeAs\n-  #125 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest\n-  #126 = Utf8               builder\n-  #127 = Utf8               Builder\n-  #128 = Utf8               InnerClasses\n-  #129 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #130 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n-  #131 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #132 = Utf8               name\n-  #133 = Utf8               build\n-  #134 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-  #135 = Utf8               (Ldev/langchain4j/agent/tool/ToolExecutionRequest;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n-  #136 = Utf8               toolExecutionResultMessage\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Class              #8            // dev/langchain4j/data/message/ToolExecutionResultMessage\n+    #8 = Utf8               dev/langchain4j/data/message/ToolExecutionResultMessage\n+    #9 = String             #10           // id\n+   #10 = Utf8               id\n+   #11 = String             #12           // toolName\n+   #12 = Utf8               toolName\n+   #13 = String             #14           // text\n+   #14 = Utf8               text\n+   #15 = Methodref          #7.#16        // dev/langchain4j/data/message/ToolExecutionResultMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V\n+   #16 = NameAndType        #5:#17        // \"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V\n+   #17 = Utf8               (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V\n+   #18 = Methodref          #7.#19        // dev/langchain4j/data/message/ToolExecutionResultMessage.id:()Ljava/lang/String;\n+   #19 = NameAndType        #10:#20       // id:()Ljava/lang/String;\n+   #20 = Utf8               ()Ljava/lang/String;\n+   #21 = Methodref          #22.#23       // dev/langchain4j/data/message/ToolExecutionResultMessageTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #22 = Class              #24           // dev/langchain4j/data/message/ToolExecutionResultMessageTest\n+   #23 = NameAndType        #25:#26       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #24 = Utf8               dev/langchain4j/data/message/ToolExecutionResultMessageTest\n+   #25 = Utf8               assertThat\n+   #26 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #27 = Methodref          #28.#29       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #28 = Class              #30           // org/assertj/core/api/AbstractStringAssert\n+   #29 = NameAndType        #31:#26       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #30 = Utf8               org/assertj/core/api/AbstractStringAssert\n+   #31 = Utf8               isEqualTo\n+   #32 = Methodref          #7.#33        // dev/langchain4j/data/message/ToolExecutionResultMessage.toolName:()Ljava/lang/String;\n+   #33 = NameAndType        #12:#20       // toolName:()Ljava/lang/String;\n+   #34 = Methodref          #7.#35        // dev/langchain4j/data/message/ToolExecutionResultMessage.text:()Ljava/lang/String;\n+   #35 = NameAndType        #14:#20       // text:()Ljava/lang/String;\n+   #36 = Methodref          #7.#37        // dev/langchain4j/data/message/ToolExecutionResultMessage.type:()Ldev/langchain4j/data/message/ChatMessageType;\n+   #37 = NameAndType        #38:#39       // type:()Ldev/langchain4j/data/message/ChatMessageType;\n+   #38 = Utf8               type\n+   #39 = Utf8               ()Ldev/langchain4j/data/message/ChatMessageType;\n+   #40 = Methodref          #22.#41       // dev/langchain4j/data/message/ToolExecutionResultMessageTest.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+   #41 = NameAndType        #25:#42       // assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+   #42 = Utf8               (Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+   #43 = Fieldref           #44.#45       // dev/langchain4j/data/message/ChatMessageType.TOOL_EXECUTION_RESULT:Ldev/langchain4j/data/message/ChatMessageType;\n+   #44 = Class              #46           // dev/langchain4j/data/message/ChatMessageType\n+   #45 = NameAndType        #47:#48       // TOOL_EXECUTION_RESULT:Ldev/langchain4j/data/message/ChatMessageType;\n+   #46 = Utf8               dev/langchain4j/data/message/ChatMessageType\n+   #47 = Utf8               TOOL_EXECUTION_RESULT\n+   #48 = Utf8               Ldev/langchain4j/data/message/ChatMessageType;\n+   #49 = Methodref          #50.#51       // org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #50 = Class              #52           // org/assertj/core/api/AbstractComparableAssert\n+   #51 = NameAndType        #31:#53       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #52 = Utf8               org/assertj/core/api/AbstractComparableAssert\n+   #53 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #54 = Methodref          #22.#55       // dev/langchain4j/data/message/ToolExecutionResultMessageTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #55 = NameAndType        #25:#56       // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #56 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #57 = String             #58           // ToolExecutionResultMessage { id = \\\"id\\\" toolName = \\\"toolName\\\" text = \\\"text\\\" }\n+   #58 = Utf8               ToolExecutionResultMessage { id = \\\"id\\\" toolName = \\\"toolName\\\" text = \\\"text\\\" }\n+   #59 = Methodref          #60.#61       // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #60 = Class              #62           // org/assertj/core/api/ObjectAssert\n+   #61 = NameAndType        #63:#64       // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #62 = Utf8               org/assertj/core/api/ObjectAssert\n+   #63 = Utf8               hasToString\n+   #64 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #65 = String             #66           // foo\n+   #66 = Utf8               foo\n+   #67 = Methodref          #60.#51       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #68 = Methodref          #60.#69       // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #69 = NameAndType        #70:#53       // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #70 = Utf8               isNotEqualTo\n+   #71 = Methodref          #60.#72       // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #72 = NameAndType        #73:#53       // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #73 = Utf8               hasSameHashCodeAs\n+   #74 = String             #75           // changed\n+   #75 = Utf8               changed\n+   #76 = Methodref          #7.#77        // dev/langchain4j/data/message/ToolExecutionResultMessage.from:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n+   #77 = NameAndType        #78:#79       // from:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n+   #78 = Utf8               from\n+   #79 = Utf8               (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n+   #80 = Methodref          #60.#81       // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #81 = NameAndType        #82:#53       // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #82 = Utf8               doesNotHaveSameHashCodeAs\n+   #83 = Methodref          #84.#85       // dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #84 = Class              #86           // dev/langchain4j/agent/tool/ToolExecutionRequest\n+   #85 = NameAndType        #87:#88       // builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #86 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest\n+   #87 = Utf8               builder\n+   #88 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #89 = Methodref          #90.#91       // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #90 = Class              #92           // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n+   #91 = NameAndType        #10:#93       // id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #92 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n+   #93 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #94 = Methodref          #90.#95       // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #95 = NameAndType        #96:#93       // name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #96 = Utf8               name\n+   #97 = String             #98           // arguments\n+   #98 = Utf8               arguments\n+   #99 = Methodref          #90.#100      // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #100 = NameAndType        #98:#93       // arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #101 = Methodref          #90.#102      // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+  #102 = NameAndType        #103:#104     // build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+  #103 = Utf8               build\n+  #104 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+  #105 = Methodref          #7.#106       // dev/langchain4j/data/message/ToolExecutionResultMessage.from:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n+  #106 = NameAndType        #78:#107      // from:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n+  #107 = Utf8               (Ldev/langchain4j/agent/tool/ToolExecutionRequest;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n+  #108 = Methodref          #7.#109       // dev/langchain4j/data/message/ToolExecutionResultMessage.toolExecutionResultMessage:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n+  #109 = NameAndType        #110:#79      // toolExecutionResultMessage:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n+  #110 = Utf8               toolExecutionResultMessage\n+  #111 = Methodref          #7.#112       // dev/langchain4j/data/message/ToolExecutionResultMessage.toolExecutionResultMessage:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n+  #112 = NameAndType        #110:#107     // toolExecutionResultMessage:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n+  #113 = Class              #114          // org/assertj/core/api/WithAssertions\n+  #114 = Utf8               org/assertj/core/api/WithAssertions\n+  #115 = Utf8               Code\n+  #116 = Utf8               LineNumberTable\n+  #117 = Utf8               LocalVariableTable\n+  #118 = Utf8               this\n+  #119 = Utf8               Ldev/langchain4j/data/message/ToolExecutionResultMessageTest;\n+  #120 = Utf8               test_methods\n+  #121 = Utf8               tm\n+  #122 = Utf8               Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n+  #123 = Utf8               RuntimeVisibleAnnotations\n+  #124 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #125 = Utf8               test_equals_hashCode\n+  #126 = Utf8               t1\n+  #127 = Utf8               t2\n+  #128 = Utf8               t3\n+  #129 = Utf8               t4\n+  #130 = Utf8               test_builders\n+  #131 = Utf8               request\n+  #132 = Utf8               Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+  #133 = Utf8               SourceFile\n+  #134 = Utf8               ToolExecutionResultMessageTest.java\n+  #135 = Utf8               InnerClasses\n+  #136 = Utf8               Builder\n {\n   dev.langchain4j.data.message.ToolExecutionResultMessageTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -160,54 +160,54 @@\n             0       5     0  this   Ldev/langchain4j/data/message/ToolExecutionResultMessageTest;\n \n   public void test_methods();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=5, locals=2, args_size=1\n-         0: new           #2                  // class dev/langchain4j/data/message/ToolExecutionResultMessage\n+         0: new           #7                  // class dev/langchain4j/data/message/ToolExecutionResultMessage\n          3: dup\n-         4: ldc           #3                  // String id\n-         6: ldc           #4                  // String toolName\n-         8: ldc           #5                  // String text\n-        10: invokespecial #6                  // Method dev/langchain4j/data/message/ToolExecutionResultMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V\n+         4: ldc           #9                  // String id\n+         6: ldc           #11                 // String toolName\n+         8: ldc           #13                 // String text\n+        10: invokespecial #15                 // Method dev/langchain4j/data/message/ToolExecutionResultMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V\n         13: astore_1\n         14: aload_0\n         15: aload_1\n-        16: invokevirtual #7                  // Method dev/langchain4j/data/message/ToolExecutionResultMessage.id:()Ljava/lang/String;\n-        19: invokevirtual #8                  // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        22: ldc           #3                  // String id\n-        24: invokevirtual #9                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        16: invokevirtual #18                 // Method dev/langchain4j/data/message/ToolExecutionResultMessage.id:()Ljava/lang/String;\n+        19: invokevirtual #21                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        22: ldc           #9                  // String id\n+        24: invokevirtual #27                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         27: pop\n         28: aload_0\n         29: aload_1\n-        30: invokevirtual #10                 // Method dev/langchain4j/data/message/ToolExecutionResultMessage.toolName:()Ljava/lang/String;\n-        33: invokevirtual #8                  // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        36: ldc           #4                  // String toolName\n-        38: invokevirtual #9                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        30: invokevirtual #32                 // Method dev/langchain4j/data/message/ToolExecutionResultMessage.toolName:()Ljava/lang/String;\n+        33: invokevirtual #21                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        36: ldc           #11                 // String toolName\n+        38: invokevirtual #27                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         41: pop\n         42: aload_0\n         43: aload_1\n-        44: invokevirtual #11                 // Method dev/langchain4j/data/message/ToolExecutionResultMessage.text:()Ljava/lang/String;\n-        47: invokevirtual #8                  // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        50: ldc           #5                  // String text\n-        52: invokevirtual #9                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        44: invokevirtual #34                 // Method dev/langchain4j/data/message/ToolExecutionResultMessage.text:()Ljava/lang/String;\n+        47: invokevirtual #21                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        50: ldc           #13                 // String text\n+        52: invokevirtual #27                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         55: pop\n         56: aload_0\n         57: aload_1\n-        58: invokevirtual #12                 // Method dev/langchain4j/data/message/ToolExecutionResultMessage.type:()Ldev/langchain4j/data/message/ChatMessageType;\n-        61: invokevirtual #13                 // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-        64: getstatic     #14                 // Field dev/langchain4j/data/message/ChatMessageType.TOOL_EXECUTION_RESULT:Ldev/langchain4j/data/message/ChatMessageType;\n-        67: invokevirtual #15                 // Method org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        58: invokevirtual #36                 // Method dev/langchain4j/data/message/ToolExecutionResultMessage.type:()Ldev/langchain4j/data/message/ChatMessageType;\n+        61: invokevirtual #40                 // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+        64: getstatic     #43                 // Field dev/langchain4j/data/message/ChatMessageType.TOOL_EXECUTION_RESULT:Ldev/langchain4j/data/message/ChatMessageType;\n+        67: invokevirtual #49                 // Method org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         70: pop\n         71: aload_0\n         72: aload_1\n-        73: invokevirtual #16                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        76: ldc           #17                 // String ToolExecutionResultMessage { id = \\\"id\\\" toolName = \\\"toolName\\\" text = \\\"text\\\" }\n-        78: invokevirtual #18                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+        73: invokevirtual #54                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        76: ldc           #57                 // String ToolExecutionResultMessage { id = \\\"id\\\" toolName = \\\"toolName\\\" text = \\\"text\\\" }\n+        78: invokevirtual #59                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n         81: pop\n         82: return\n       LineNumberTable:\n         line 10: 0\n         line 11: 14\n         line 12: 28\n         line 13: 42\n@@ -216,105 +216,105 @@\n         line 17: 78\n         line 20: 82\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      83     0  this   Ldev/langchain4j/data/message/ToolExecutionResultMessageTest;\n            14      69     1    tm   Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n     RuntimeVisibleAnnotations:\n-      0: #50()\n+      0: #124()\n         org.junit.jupiter.api.Test\n \n   public void test_equals_hashCode();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=5, locals=5, args_size=1\n-         0: new           #2                  // class dev/langchain4j/data/message/ToolExecutionResultMessage\n+         0: new           #7                  // class dev/langchain4j/data/message/ToolExecutionResultMessage\n          3: dup\n-         4: ldc           #3                  // String id\n-         6: ldc           #4                  // String toolName\n-         8: ldc           #5                  // String text\n-        10: invokespecial #6                  // Method dev/langchain4j/data/message/ToolExecutionResultMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V\n+         4: ldc           #9                  // String id\n+         6: ldc           #11                 // String toolName\n+         8: ldc           #13                 // String text\n+        10: invokespecial #15                 // Method dev/langchain4j/data/message/ToolExecutionResultMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V\n         13: astore_1\n-        14: new           #2                  // class dev/langchain4j/data/message/ToolExecutionResultMessage\n+        14: new           #7                  // class dev/langchain4j/data/message/ToolExecutionResultMessage\n         17: dup\n-        18: ldc           #3                  // String id\n-        20: ldc           #4                  // String toolName\n-        22: ldc           #5                  // String text\n-        24: invokespecial #6                  // Method dev/langchain4j/data/message/ToolExecutionResultMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V\n+        18: ldc           #9                  // String id\n+        20: ldc           #11                 // String toolName\n+        22: ldc           #13                 // String text\n+        24: invokespecial #15                 // Method dev/langchain4j/data/message/ToolExecutionResultMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V\n         27: astore_2\n-        28: new           #2                  // class dev/langchain4j/data/message/ToolExecutionResultMessage\n+        28: new           #7                  // class dev/langchain4j/data/message/ToolExecutionResultMessage\n         31: dup\n-        32: ldc           #19                 // String foo\n-        34: ldc           #4                  // String toolName\n-        36: ldc           #5                  // String text\n-        38: invokespecial #6                  // Method dev/langchain4j/data/message/ToolExecutionResultMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V\n+        32: ldc           #65                 // String foo\n+        34: ldc           #11                 // String toolName\n+        36: ldc           #13                 // String text\n+        38: invokespecial #15                 // Method dev/langchain4j/data/message/ToolExecutionResultMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V\n         41: astore_3\n-        42: new           #2                  // class dev/langchain4j/data/message/ToolExecutionResultMessage\n+        42: new           #7                  // class dev/langchain4j/data/message/ToolExecutionResultMessage\n         45: dup\n-        46: ldc           #19                 // String foo\n-        48: ldc           #4                  // String toolName\n-        50: ldc           #5                  // String text\n-        52: invokespecial #6                  // Method dev/langchain4j/data/message/ToolExecutionResultMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V\n+        46: ldc           #65                 // String foo\n+        48: ldc           #11                 // String toolName\n+        50: ldc           #13                 // String text\n+        52: invokespecial #15                 // Method dev/langchain4j/data/message/ToolExecutionResultMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V\n         55: astore        4\n         57: aload_0\n         58: aload_1\n-        59: invokevirtual #16                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        59: invokevirtual #54                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         62: aload_1\n-        63: invokevirtual #20                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        66: checkcast     #21                 // class org/assertj/core/api/ObjectAssert\n+        63: invokevirtual #67                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        66: checkcast     #60                 // class org/assertj/core/api/ObjectAssert\n         69: aconst_null\n-        70: invokevirtual #22                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        73: checkcast     #21                 // class org/assertj/core/api/ObjectAssert\n-        76: new           #23                 // class java/lang/Object\n+        70: invokevirtual #68                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        73: checkcast     #60                 // class org/assertj/core/api/ObjectAssert\n+        76: new           #2                  // class java/lang/Object\n         79: dup\n         80: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n-        83: invokevirtual #22                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        86: checkcast     #21                 // class org/assertj/core/api/ObjectAssert\n+        83: invokevirtual #68                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        86: checkcast     #60                 // class org/assertj/core/api/ObjectAssert\n         89: aload_2\n-        90: invokevirtual #20                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        93: checkcast     #21                 // class org/assertj/core/api/ObjectAssert\n+        90: invokevirtual #67                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        93: checkcast     #60                 // class org/assertj/core/api/ObjectAssert\n         96: aload_2\n-        97: invokevirtual #24                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       100: checkcast     #21                 // class org/assertj/core/api/ObjectAssert\n-       103: ldc           #25                 // String changed\n-       105: ldc           #4                  // String toolName\n-       107: ldc           #5                  // String text\n-       109: invokestatic  #26                 // Method dev/langchain4j/data/message/ToolExecutionResultMessage.from:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n-       112: invokevirtual #22                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       115: checkcast     #21                 // class org/assertj/core/api/ObjectAssert\n-       118: ldc           #3                  // String id\n-       120: ldc           #25                 // String changed\n-       122: ldc           #5                  // String text\n-       124: invokestatic  #26                 // Method dev/langchain4j/data/message/ToolExecutionResultMessage.from:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n-       127: invokevirtual #22                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       130: checkcast     #21                 // class org/assertj/core/api/ObjectAssert\n-       133: ldc           #3                  // String id\n-       135: ldc           #4                  // String toolName\n-       137: ldc           #25                 // String changed\n-       139: invokestatic  #26                 // Method dev/langchain4j/data/message/ToolExecutionResultMessage.from:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n-       142: invokevirtual #22                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       145: checkcast     #21                 // class org/assertj/core/api/ObjectAssert\n+        97: invokevirtual #71                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       100: checkcast     #60                 // class org/assertj/core/api/ObjectAssert\n+       103: ldc           #74                 // String changed\n+       105: ldc           #11                 // String toolName\n+       107: ldc           #13                 // String text\n+       109: invokestatic  #76                 // Method dev/langchain4j/data/message/ToolExecutionResultMessage.from:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n+       112: invokevirtual #68                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       115: checkcast     #60                 // class org/assertj/core/api/ObjectAssert\n+       118: ldc           #9                  // String id\n+       120: ldc           #74                 // String changed\n+       122: ldc           #13                 // String text\n+       124: invokestatic  #76                 // Method dev/langchain4j/data/message/ToolExecutionResultMessage.from:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n+       127: invokevirtual #68                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       130: checkcast     #60                 // class org/assertj/core/api/ObjectAssert\n+       133: ldc           #9                  // String id\n+       135: ldc           #11                 // String toolName\n+       137: ldc           #74                 // String changed\n+       139: invokestatic  #76                 // Method dev/langchain4j/data/message/ToolExecutionResultMessage.from:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n+       142: invokevirtual #68                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       145: checkcast     #60                 // class org/assertj/core/api/ObjectAssert\n        148: aload_3\n-       149: invokevirtual #22                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       152: checkcast     #21                 // class org/assertj/core/api/ObjectAssert\n+       149: invokevirtual #68                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       152: checkcast     #60                 // class org/assertj/core/api/ObjectAssert\n        155: aload_3\n-       156: invokevirtual #27                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       156: invokevirtual #80                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        159: pop\n        160: aload_0\n        161: aload_3\n-       162: invokevirtual #16                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       162: invokevirtual #54                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        165: aload_3\n-       166: invokevirtual #20                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       169: checkcast     #21                 // class org/assertj/core/api/ObjectAssert\n+       166: invokevirtual #67                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       169: checkcast     #60                 // class org/assertj/core/api/ObjectAssert\n        172: aload         4\n-       174: invokevirtual #20                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       177: checkcast     #21                 // class org/assertj/core/api/ObjectAssert\n+       174: invokevirtual #67                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       177: checkcast     #60                 // class org/assertj/core/api/ObjectAssert\n        180: aload         4\n-       182: invokevirtual #24                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       182: invokevirtual #71                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        185: pop\n        186: return\n       LineNumberTable:\n         line 24: 0\n         line 25: 14\n         line 27: 28\n         line 28: 42\n@@ -338,60 +338,60 @@\n         Start  Length  Slot  Name   Signature\n             0     187     0  this   Ldev/langchain4j/data/message/ToolExecutionResultMessageTest;\n            14     173     1    t1   Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n            28     159     2    t2   Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n            42     145     3    t3   Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n            57     130     4    t4   Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n     RuntimeVisibleAnnotations:\n-      0: #50()\n+      0: #124()\n         org.junit.jupiter.api.Test\n \n   public void test_builders();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=6, locals=2, args_size=1\n-         0: invokestatic  #28                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-         3: ldc           #3                  // String id\n-         5: invokevirtual #29                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-         8: ldc           #4                  // String toolName\n-        10: invokevirtual #30                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        13: ldc           #31                 // String arguments\n-        15: invokevirtual #32                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        18: invokevirtual #33                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+         0: invokestatic  #83                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+         3: ldc           #9                  // String id\n+         5: invokevirtual #89                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+         8: ldc           #11                 // String toolName\n+        10: invokevirtual #94                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        13: ldc           #97                 // String arguments\n+        15: invokevirtual #99                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        18: invokevirtual #101                // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n         21: astore_1\n         22: aload_0\n-        23: new           #2                  // class dev/langchain4j/data/message/ToolExecutionResultMessage\n+        23: new           #7                  // class dev/langchain4j/data/message/ToolExecutionResultMessage\n         26: dup\n-        27: ldc           #3                  // String id\n-        29: ldc           #4                  // String toolName\n-        31: ldc           #5                  // String text\n-        33: invokespecial #6                  // Method dev/langchain4j/data/message/ToolExecutionResultMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V\n-        36: invokevirtual #16                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        39: ldc           #3                  // String id\n-        41: ldc           #4                  // String toolName\n-        43: ldc           #5                  // String text\n-        45: invokestatic  #26                 // Method dev/langchain4j/data/message/ToolExecutionResultMessage.from:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n-        48: invokevirtual #20                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        51: checkcast     #21                 // class org/assertj/core/api/ObjectAssert\n+        27: ldc           #9                  // String id\n+        29: ldc           #11                 // String toolName\n+        31: ldc           #13                 // String text\n+        33: invokespecial #15                 // Method dev/langchain4j/data/message/ToolExecutionResultMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V\n+        36: invokevirtual #54                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        39: ldc           #9                  // String id\n+        41: ldc           #11                 // String toolName\n+        43: ldc           #13                 // String text\n+        45: invokestatic  #76                 // Method dev/langchain4j/data/message/ToolExecutionResultMessage.from:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n+        48: invokevirtual #67                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        51: checkcast     #60                 // class org/assertj/core/api/ObjectAssert\n         54: aload_1\n-        55: ldc           #5                  // String text\n-        57: invokestatic  #34                 // Method dev/langchain4j/data/message/ToolExecutionResultMessage.from:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n-        60: invokevirtual #20                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        63: checkcast     #21                 // class org/assertj/core/api/ObjectAssert\n-        66: ldc           #3                  // String id\n-        68: ldc           #4                  // String toolName\n-        70: ldc           #5                  // String text\n-        72: invokestatic  #35                 // Method dev/langchain4j/data/message/ToolExecutionResultMessage.toolExecutionResultMessage:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n-        75: invokevirtual #20                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        78: checkcast     #21                 // class org/assertj/core/api/ObjectAssert\n+        55: ldc           #13                 // String text\n+        57: invokestatic  #105                // Method dev/langchain4j/data/message/ToolExecutionResultMessage.from:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n+        60: invokevirtual #67                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        63: checkcast     #60                 // class org/assertj/core/api/ObjectAssert\n+        66: ldc           #9                  // String id\n+        68: ldc           #11                 // String toolName\n+        70: ldc           #13                 // String text\n+        72: invokestatic  #108                // Method dev/langchain4j/data/message/ToolExecutionResultMessage.toolExecutionResultMessage:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n+        75: invokevirtual #67                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        78: checkcast     #60                 // class org/assertj/core/api/ObjectAssert\n         81: aload_1\n-        82: ldc           #5                  // String text\n-        84: invokestatic  #36                 // Method dev/langchain4j/data/message/ToolExecutionResultMessage.toolExecutionResultMessage:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n-        87: invokevirtual #20                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        82: ldc           #13                 // String text\n+        84: invokestatic  #111                // Method dev/langchain4j/data/message/ToolExecutionResultMessage.toolExecutionResultMessage:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n+        87: invokevirtual #67                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         90: pop\n         91: return\n       LineNumberTable:\n         line 53: 0\n         line 54: 5\n         line 55: 10\n         line 56: 15\n@@ -403,13 +403,13 @@\n         line 64: 84\n         line 66: 91\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      92     0  this   Ldev/langchain4j/data/message/ToolExecutionResultMessageTest;\n            22      70     1 request   Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n     RuntimeVisibleAnnotations:\n-      0: #50()\n+      0: #124()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"ToolExecutionResultMessageTest.java\"\n InnerClasses:\n-  public static final #127= #92 of #90;   // Builder=class dev/langchain4j/agent/tool/ToolExecutionRequest$Builder of class dev/langchain4j/agent/tool/ToolExecutionRequest\n+  public static final #136= #90 of #84;   // Builder=class dev/langchain4j/agent/tool/ToolExecutionRequest$Builder of class dev/langchain4j/agent/tool/ToolExecutionRequest\n"}]}, {"source1": "dev/langchain4j/data/message/UserMessageTest.class", "source2": "dev/langchain4j/data/message/UserMessageTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,270 +1,270 @@\n-  SHA-256 checksum f4081e9781aaa502b4bd70129a8629d1fd3d672c990bd9db725c626308a61be0\n+  SHA-256 checksum 7ce22034292cf82b28595c7cc1933b3d8dfbbe10c8fd32079ac68d8e6bcec49d\n   Compiled from \"UserMessageTest.java\"\n class dev.langchain4j.data.message.UserMessageTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #63                         // dev/langchain4j/data/message/UserMessageTest\n-  super_class: #26                        // java/lang/Object\n+  this_class: #21                         // dev/langchain4j/data/message/UserMessageTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 7, attributes: 3\n Constant pool:\n-    #1 = Methodref          #26.#98       // java/lang/Object.\"<init>\":()V\n-    #2 = Class              #99           // dev/langchain4j/data/message/UserMessage\n-    #3 = String             #100          // name\n-    #4 = String             #101          // text\n-    #5 = Methodref          #2.#102       // dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;)V\n-    #6 = Methodref          #2.#103       // dev/langchain4j/data/message/UserMessage.type:()Ldev/langchain4j/data/message/ChatMessageType;\n-    #7 = Methodref          #63.#104      // dev/langchain4j/data/message/UserMessageTest.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-    #8 = Fieldref           #105.#106     // dev/langchain4j/data/message/ChatMessageType.USER:Ldev/langchain4j/data/message/ChatMessageType;\n-    #9 = Methodref          #107.#108     // org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #10 = Methodref          #2.#109       // dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n-   #11 = Methodref          #63.#110      // dev/langchain4j/data/message/UserMessageTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #12 = Methodref          #111.#112     // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #13 = Methodref          #2.#113       // dev/langchain4j/data/message/UserMessage.contents:()Ljava/util/List;\n-   #14 = Methodref          #63.#114      // dev/langchain4j/data/message/UserMessageTest.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-   #15 = Class              #115          // dev/langchain4j/data/message/Content\n-   #16 = Methodref          #37.#116      // dev/langchain4j/data/message/TextContent.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/TextContent;\n-   #17 = Methodref          #117.#118     // org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-   #18 = Methodref          #2.#119       // dev/langchain4j/data/message/UserMessage.name:()Ljava/lang/String;\n-   #19 = Methodref          #63.#120      // dev/langchain4j/data/message/UserMessageTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #20 = String             #121          // UserMessage { name = \\\"name\\\" contents = [TextContent { text = \\\"text\\\" }] }\n-   #21 = Methodref          #24.#122      // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-   #22 = Methodref          #2.#123       // dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n-   #23 = Methodref          #24.#108      // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #24 = Class              #124          // org/assertj/core/api/ObjectAssert\n-   #25 = Methodref          #24.#125      // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #26 = Class              #126          // java/lang/Object\n-   #27 = Methodref          #24.#127      // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #28 = Methodref          #24.#128      // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #29 = String             #129          // foo\n-   #30 = Class              #130          // java/util/ArrayList\n-   #31 = Methodref          #131.#132     // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-   #32 = Methodref          #30.#133      // java/util/ArrayList.\"<init>\":(Ljava/util/Collection;)V\n-   #33 = Methodref          #134.#135     // java/util/Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;\n-   #34 = Methodref          #2.#136       // dev/langchain4j/data/message/UserMessage.hasSingleText:()Z\n-   #35 = Methodref          #63.#137      // dev/langchain4j/data/message/UserMessageTest.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-   #36 = Methodref          #138.#139     // org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n-   #37 = Class              #140          // dev/langchain4j/data/message/TextContent\n-   #38 = Methodref          #37.#123      // dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n-   #39 = Methodref          #63.#141      // dev/langchain4j/data/message/UserMessageTest.listOf:([Ljava/lang/Object;)Ljava/util/List;\n-   #40 = Methodref          #2.#142       // dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;Ljava/util/List;)V\n-   #41 = String             #143          // abc\n-   #42 = String             #144          // def\n-   #43 = Methodref          #138.#145     // org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n-   #44 = Methodref          #2.#146       // dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/util/List;)V\n-   #45 = Class              #147          // java/lang/RuntimeException\n-   #46 = Methodref          #63.#148      // dev/langchain4j/data/message/UserMessageTest.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-   #47 = InvokeDynamic      #0:#153       // #0:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #48 = Methodref          #154.#155     // org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #49 = String             #156          // Expecting single text content, but got:\n-   #50 = Methodref          #157.#158     // org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #51 = Methodref          #2.#159       // dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-   #52 = Methodref          #2.#160       // dev/langchain4j/data/message/UserMessage.from:([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n-   #53 = Methodref          #2.#161       // dev/langchain4j/data/message/UserMessage.from:(Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n-   #54 = Methodref          #2.#162       // dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-   #55 = Methodref          #2.#163       // dev/langchain4j/data/message/UserMessage.userMessage:([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n-   #56 = Methodref          #2.#164       // dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n-   #57 = Methodref          #2.#165       // dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-   #58 = Methodref          #2.#166       // dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;[Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n-   #59 = Methodref          #2.#167       // dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n-   #60 = Methodref          #2.#168       // dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-   #61 = Methodref          #2.#169       // dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/lang/String;[Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n-   #62 = Methodref          #2.#170       // dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/lang/String;Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n-   #63 = Class              #171          // dev/langchain4j/data/message/UserMessageTest\n-   #64 = Class              #172          // org/assertj/core/api/WithAssertions\n-   #65 = Utf8               <init>\n-   #66 = Utf8               ()V\n-   #67 = Utf8               Code\n-   #68 = Utf8               LineNumberTable\n-   #69 = Utf8               LocalVariableTable\n-   #70 = Utf8               this\n-   #71 = Utf8               Ldev/langchain4j/data/message/UserMessageTest;\n-   #72 = Utf8               test_accessors\n-   #73 = Utf8               m\n-   #74 = Utf8               Ldev/langchain4j/data/message/UserMessage;\n-   #75 = Utf8               RuntimeVisibleAnnotations\n-   #76 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #77 = Utf8               test_equals_hashCode\n-   #78 = Utf8               m1\n-   #79 = Utf8               m2\n-   #80 = Utf8               m3\n-   #81 = Utf8               m4\n-   #82 = Utf8               listOf\n-   #83 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n-   #84 = Utf8               elements\n-   #85 = Utf8               [Ljava/lang/Object;\n-   #86 = Utf8               LocalVariableTypeTable\n-   #87 = Utf8               [TT;\n-   #88 = Utf8               Signature\n-   #89 = Utf8               <T:Ljava/lang/Object;>([TT;)Ljava/util/List<TT;>;\n-   #90 = Utf8               Ljava/lang/SafeVarargs;\n-   #91 = Utf8               test_hasSingleText\n-   #92 = Utf8               test_builders\n-   #93 = Utf8               lambda$test_hasSingleText$0\n-   #94 = Utf8               Exceptions\n-   #95 = Class              #173          // java/lang/Throwable\n-   #96 = Utf8               SourceFile\n-   #97 = Utf8               UserMessageTest.java\n-   #98 = NameAndType        #65:#66       // \"<init>\":()V\n-   #99 = Utf8               dev/langchain4j/data/message/UserMessage\n-  #100 = Utf8               name\n-  #101 = Utf8               text\n-  #102 = NameAndType        #65:#174      // \"<init>\":(Ljava/lang/String;Ljava/lang/String;)V\n-  #103 = NameAndType        #175:#176     // type:()Ldev/langchain4j/data/message/ChatMessageType;\n-  #104 = NameAndType        #177:#178     // assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-  #105 = Class              #179          // dev/langchain4j/data/message/ChatMessageType\n-  #106 = NameAndType        #180:#181     // USER:Ldev/langchain4j/data/message/ChatMessageType;\n-  #107 = Class              #182          // org/assertj/core/api/AbstractComparableAssert\n-  #108 = NameAndType        #183:#184     // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #109 = NameAndType        #101:#185     // text:()Ljava/lang/String;\n-  #110 = NameAndType        #177:#186     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #111 = Class              #187          // org/assertj/core/api/AbstractStringAssert\n-  #112 = NameAndType        #183:#186     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #113 = NameAndType        #188:#189     // contents:()Ljava/util/List;\n-  #114 = NameAndType        #177:#190     // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #115 = Utf8               dev/langchain4j/data/message/Content\n-  #116 = NameAndType        #191:#192     // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/TextContent;\n-  #117 = Class              #193          // org/assertj/core/api/ListAssert\n-  #118 = NameAndType        #194:#195     // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #119 = NameAndType        #100:#185     // name:()Ljava/lang/String;\n-  #120 = NameAndType        #177:#196     // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #121 = Utf8               UserMessage { name = \\\"name\\\" contents = [TextContent { text = \\\"text\\\" }] }\n-  #122 = NameAndType        #197:#198     // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-  #123 = NameAndType        #65:#199      // \"<init>\":(Ljava/lang/String;)V\n-  #124 = Utf8               org/assertj/core/api/ObjectAssert\n-  #125 = NameAndType        #200:#184     // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #126 = Utf8               java/lang/Object\n-  #127 = NameAndType        #201:#184     // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #128 = NameAndType        #202:#184     // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #129 = Utf8               foo\n-  #130 = Utf8               java/util/ArrayList\n-  #131 = Class              #203          // java/util/Arrays\n-  #132 = NameAndType        #204:#83      // asList:([Ljava/lang/Object;)Ljava/util/List;\n-  #133 = NameAndType        #65:#205      // \"<init>\":(Ljava/util/Collection;)V\n-  #134 = Class              #206          // java/util/Collections\n-  #135 = NameAndType        #207:#208     // unmodifiableList:(Ljava/util/List;)Ljava/util/List;\n-  #136 = NameAndType        #209:#210     // hasSingleText:()Z\n-  #137 = NameAndType        #177:#211     // assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-  #138 = Class              #212          // org/assertj/core/api/AbstractBooleanAssert\n-  #139 = NameAndType        #213:#214     // isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n-  #140 = Utf8               dev/langchain4j/data/message/TextContent\n-  #141 = NameAndType        #82:#83       // listOf:([Ljava/lang/Object;)Ljava/util/List;\n-  #142 = NameAndType        #65:#215      // \"<init>\":(Ljava/lang/String;Ljava/util/List;)V\n-  #143 = Utf8               abc\n-  #144 = Utf8               def\n-  #145 = NameAndType        #216:#214     // isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n-  #146 = NameAndType        #65:#217      // \"<init>\":(Ljava/util/List;)V\n-  #147 = Utf8               java/lang/RuntimeException\n-  #148 = NameAndType        #218:#219     // assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-  #149 = Utf8               BootstrapMethods\n-  #150 = MethodHandle       6:#220        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #151 = MethodType         #66           //  ()V\n-  #152 = MethodHandle       6:#221        // REF_invokeStatic dev/langchain4j/data/message/UserMessageTest.lambda$test_hasSingleText$0:()V\n-  #153 = NameAndType        #222:#226     // call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-  #154 = Class              #227          // org/assertj/core/api/ThrowableTypeAssert\n-  #155 = NameAndType        #228:#229     // isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #156 = Utf8               Expecting single text content, but got:\n-  #157 = Class              #230          // org/assertj/core/api/ThrowableAssertAlternative\n-  #158 = NameAndType        #231:#232     // withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #159 = NameAndType        #191:#233     // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-  #160 = NameAndType        #191:#234     // from:([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n-  #161 = NameAndType        #191:#235     // from:(Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n-  #162 = NameAndType        #236:#233     // userMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-  #163 = NameAndType        #236:#234     // userMessage:([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n-  #164 = NameAndType        #236:#235     // userMessage:(Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n-  #165 = NameAndType        #191:#237     // from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-  #166 = NameAndType        #191:#238     // from:(Ljava/lang/String;[Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n-  #167 = NameAndType        #191:#239     // from:(Ljava/lang/String;Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n-  #168 = NameAndType        #236:#237     // userMessage:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-  #169 = NameAndType        #236:#238     // userMessage:(Ljava/lang/String;[Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n-  #170 = NameAndType        #236:#239     // userMessage:(Ljava/lang/String;Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n-  #171 = Utf8               dev/langchain4j/data/message/UserMessageTest\n-  #172 = Utf8               org/assertj/core/api/WithAssertions\n-  #173 = Utf8               java/lang/Throwable\n-  #174 = Utf8               (Ljava/lang/String;Ljava/lang/String;)V\n-  #175 = Utf8               type\n-  #176 = Utf8               ()Ldev/langchain4j/data/message/ChatMessageType;\n-  #177 = Utf8               assertThat\n-  #178 = Utf8               (Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-  #179 = Utf8               dev/langchain4j/data/message/ChatMessageType\n-  #180 = Utf8               USER\n-  #181 = Utf8               Ldev/langchain4j/data/message/ChatMessageType;\n-  #182 = Utf8               org/assertj/core/api/AbstractComparableAssert\n-  #183 = Utf8               isEqualTo\n-  #184 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #185 = Utf8               ()Ljava/lang/String;\n-  #186 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #187 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #188 = Utf8               contents\n-  #189 = Utf8               ()Ljava/util/List;\n-  #190 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #191 = Utf8               from\n-  #192 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/TextContent;\n-  #193 = Utf8               org/assertj/core/api/ListAssert\n-  #194 = Utf8               containsExactly\n-  #195 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #196 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #197 = Utf8               hasToString\n-  #198 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-  #199 = Utf8               (Ljava/lang/String;)V\n-  #200 = Utf8               isNotEqualTo\n-  #201 = Utf8               hasSameHashCodeAs\n-  #202 = Utf8               doesNotHaveSameHashCodeAs\n-  #203 = Utf8               java/util/Arrays\n-  #204 = Utf8               asList\n-  #205 = Utf8               (Ljava/util/Collection;)V\n-  #206 = Utf8               java/util/Collections\n-  #207 = Utf8               unmodifiableList\n-  #208 = Utf8               (Ljava/util/List;)Ljava/util/List;\n-  #209 = Utf8               hasSingleText\n-  #210 = Utf8               ()Z\n-  #211 = Utf8               (Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-  #212 = Utf8               org/assertj/core/api/AbstractBooleanAssert\n-  #213 = Utf8               isTrue\n-  #214 = Utf8               ()Lorg/assertj/core/api/AbstractBooleanAssert;\n-  #215 = Utf8               (Ljava/lang/String;Ljava/util/List;)V\n-  #216 = Utf8               isFalse\n-  #217 = Utf8               (Ljava/util/List;)V\n-  #218 = Utf8               assertThatExceptionOfType\n-  #219 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-  #220 = Methodref          #240.#241     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #221 = Methodref          #63.#242      // dev/langchain4j/data/message/UserMessageTest.lambda$test_hasSingleText$0:()V\n-  #222 = Utf8               call\n-  #223 = Class              #244          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #224 = Utf8               ThrowingCallable\n-  #225 = Utf8               InnerClasses\n-  #226 = Utf8               ()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-  #227 = Utf8               org/assertj/core/api/ThrowableTypeAssert\n-  #228 = Utf8               isThrownBy\n-  #229 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #230 = Utf8               org/assertj/core/api/ThrowableAssertAlternative\n-  #231 = Utf8               withMessageContaining\n-  #232 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #233 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-  #234 = Utf8               ([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n-  #235 = Utf8               (Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n-  #236 = Utf8               userMessage\n-  #237 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-  #238 = Utf8               (Ljava/lang/String;[Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n-  #239 = Utf8               (Ljava/lang/String;Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n-  #240 = Class              #245          // java/lang/invoke/LambdaMetafactory\n-  #241 = NameAndType        #246:#249     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #242 = NameAndType        #93:#66       // lambda$test_hasSingleText$0:()V\n-  #243 = Class              #250          // org/assertj/core/api/ThrowableAssert\n-  #244 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #245 = Utf8               java/lang/invoke/LambdaMetafactory\n-  #246 = Utf8               metafactory\n-  #247 = Class              #252          // java/lang/invoke/MethodHandles$Lookup\n-  #248 = Utf8               Lookup\n-  #249 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #250 = Utf8               org/assertj/core/api/ThrowableAssert\n-  #251 = Class              #253          // java/lang/invoke/MethodHandles\n-  #252 = Utf8               java/lang/invoke/MethodHandles$Lookup\n-  #253 = Utf8               java/lang/invoke/MethodHandles\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Class              #8            // dev/langchain4j/data/message/UserMessage\n+    #8 = Utf8               dev/langchain4j/data/message/UserMessage\n+    #9 = String             #10           // name\n+   #10 = Utf8               name\n+   #11 = String             #12           // text\n+   #12 = Utf8               text\n+   #13 = Methodref          #7.#14        // dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;)V\n+   #14 = NameAndType        #5:#15        // \"<init>\":(Ljava/lang/String;Ljava/lang/String;)V\n+   #15 = Utf8               (Ljava/lang/String;Ljava/lang/String;)V\n+   #16 = Methodref          #7.#17        // dev/langchain4j/data/message/UserMessage.type:()Ldev/langchain4j/data/message/ChatMessageType;\n+   #17 = NameAndType        #18:#19       // type:()Ldev/langchain4j/data/message/ChatMessageType;\n+   #18 = Utf8               type\n+   #19 = Utf8               ()Ldev/langchain4j/data/message/ChatMessageType;\n+   #20 = Methodref          #21.#22       // dev/langchain4j/data/message/UserMessageTest.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+   #21 = Class              #23           // dev/langchain4j/data/message/UserMessageTest\n+   #22 = NameAndType        #24:#25       // assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+   #23 = Utf8               dev/langchain4j/data/message/UserMessageTest\n+   #24 = Utf8               assertThat\n+   #25 = Utf8               (Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+   #26 = Fieldref           #27.#28       // dev/langchain4j/data/message/ChatMessageType.USER:Ldev/langchain4j/data/message/ChatMessageType;\n+   #27 = Class              #29           // dev/langchain4j/data/message/ChatMessageType\n+   #28 = NameAndType        #30:#31       // USER:Ldev/langchain4j/data/message/ChatMessageType;\n+   #29 = Utf8               dev/langchain4j/data/message/ChatMessageType\n+   #30 = Utf8               USER\n+   #31 = Utf8               Ldev/langchain4j/data/message/ChatMessageType;\n+   #32 = Methodref          #33.#34       // org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #33 = Class              #35           // org/assertj/core/api/AbstractComparableAssert\n+   #34 = NameAndType        #36:#37       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #35 = Utf8               org/assertj/core/api/AbstractComparableAssert\n+   #36 = Utf8               isEqualTo\n+   #37 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #38 = Methodref          #7.#39        // dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n+   #39 = NameAndType        #12:#40       // text:()Ljava/lang/String;\n+   #40 = Utf8               ()Ljava/lang/String;\n+   #41 = Methodref          #21.#42       // dev/langchain4j/data/message/UserMessageTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #42 = NameAndType        #24:#43       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #43 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #44 = Methodref          #45.#46       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #45 = Class              #47           // org/assertj/core/api/AbstractStringAssert\n+   #46 = NameAndType        #36:#43       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #47 = Utf8               org/assertj/core/api/AbstractStringAssert\n+   #48 = Methodref          #7.#49        // dev/langchain4j/data/message/UserMessage.contents:()Ljava/util/List;\n+   #49 = NameAndType        #50:#51       // contents:()Ljava/util/List;\n+   #50 = Utf8               contents\n+   #51 = Utf8               ()Ljava/util/List;\n+   #52 = Methodref          #21.#53       // dev/langchain4j/data/message/UserMessageTest.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+   #53 = NameAndType        #24:#54       // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+   #54 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+   #55 = Class              #56           // dev/langchain4j/data/message/Content\n+   #56 = Utf8               dev/langchain4j/data/message/Content\n+   #57 = Methodref          #58.#59       // dev/langchain4j/data/message/TextContent.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/TextContent;\n+   #58 = Class              #60           // dev/langchain4j/data/message/TextContent\n+   #59 = NameAndType        #61:#62       // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/TextContent;\n+   #60 = Utf8               dev/langchain4j/data/message/TextContent\n+   #61 = Utf8               from\n+   #62 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/TextContent;\n+   #63 = Methodref          #64.#65       // org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #64 = Class              #66           // org/assertj/core/api/ListAssert\n+   #65 = NameAndType        #67:#68       // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #66 = Utf8               org/assertj/core/api/ListAssert\n+   #67 = Utf8               containsExactly\n+   #68 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #69 = Methodref          #7.#70        // dev/langchain4j/data/message/UserMessage.name:()Ljava/lang/String;\n+   #70 = NameAndType        #10:#40       // name:()Ljava/lang/String;\n+   #71 = Methodref          #21.#72       // dev/langchain4j/data/message/UserMessageTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #72 = NameAndType        #24:#73       // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #73 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #74 = String             #75           // UserMessage { name = \\\"name\\\" contents = [TextContent { text = \\\"text\\\" }] }\n+   #75 = Utf8               UserMessage { name = \\\"name\\\" contents = [TextContent { text = \\\"text\\\" }] }\n+   #76 = Methodref          #77.#78       // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #77 = Class              #79           // org/assertj/core/api/ObjectAssert\n+   #78 = NameAndType        #80:#81       // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #79 = Utf8               org/assertj/core/api/ObjectAssert\n+   #80 = Utf8               hasToString\n+   #81 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #82 = Methodref          #7.#83        // dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n+   #83 = NameAndType        #5:#84        // \"<init>\":(Ljava/lang/String;)V\n+   #84 = Utf8               (Ljava/lang/String;)V\n+   #85 = Methodref          #77.#34       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #86 = Methodref          #77.#87       // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #87 = NameAndType        #88:#37       // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #88 = Utf8               isNotEqualTo\n+   #89 = Methodref          #77.#90       // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #90 = NameAndType        #91:#37       // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #91 = Utf8               hasSameHashCodeAs\n+   #92 = Methodref          #77.#93       // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #93 = NameAndType        #94:#37       // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #94 = Utf8               doesNotHaveSameHashCodeAs\n+   #95 = String             #96           // foo\n+   #96 = Utf8               foo\n+   #97 = Class              #98           // java/util/ArrayList\n+   #98 = Utf8               java/util/ArrayList\n+   #99 = Methodref          #100.#101     // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+  #100 = Class              #102          // java/util/Arrays\n+  #101 = NameAndType        #103:#104     // asList:([Ljava/lang/Object;)Ljava/util/List;\n+  #102 = Utf8               java/util/Arrays\n+  #103 = Utf8               asList\n+  #104 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n+  #105 = Methodref          #97.#106      // java/util/ArrayList.\"<init>\":(Ljava/util/Collection;)V\n+  #106 = NameAndType        #5:#107       // \"<init>\":(Ljava/util/Collection;)V\n+  #107 = Utf8               (Ljava/util/Collection;)V\n+  #108 = Methodref          #109.#110     // java/util/Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;\n+  #109 = Class              #111          // java/util/Collections\n+  #110 = NameAndType        #112:#113     // unmodifiableList:(Ljava/util/List;)Ljava/util/List;\n+  #111 = Utf8               java/util/Collections\n+  #112 = Utf8               unmodifiableList\n+  #113 = Utf8               (Ljava/util/List;)Ljava/util/List;\n+  #114 = Methodref          #7.#115       // dev/langchain4j/data/message/UserMessage.hasSingleText:()Z\n+  #115 = NameAndType        #116:#117     // hasSingleText:()Z\n+  #116 = Utf8               hasSingleText\n+  #117 = Utf8               ()Z\n+  #118 = Methodref          #21.#119      // dev/langchain4j/data/message/UserMessageTest.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+  #119 = NameAndType        #24:#120      // assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+  #120 = Utf8               (Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+  #121 = Methodref          #122.#123     // org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+  #122 = Class              #124          // org/assertj/core/api/AbstractBooleanAssert\n+  #123 = NameAndType        #125:#126     // isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+  #124 = Utf8               org/assertj/core/api/AbstractBooleanAssert\n+  #125 = Utf8               isTrue\n+  #126 = Utf8               ()Lorg/assertj/core/api/AbstractBooleanAssert;\n+  #127 = Methodref          #58.#83       // dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+  #128 = Methodref          #21.#129      // dev/langchain4j/data/message/UserMessageTest.listOf:([Ljava/lang/Object;)Ljava/util/List;\n+  #129 = NameAndType        #130:#104     // listOf:([Ljava/lang/Object;)Ljava/util/List;\n+  #130 = Utf8               listOf\n+  #131 = Methodref          #7.#132       // dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;Ljava/util/List;)V\n+  #132 = NameAndType        #5:#133       // \"<init>\":(Ljava/lang/String;Ljava/util/List;)V\n+  #133 = Utf8               (Ljava/lang/String;Ljava/util/List;)V\n+  #134 = String             #135          // abc\n+  #135 = Utf8               abc\n+  #136 = String             #137          // def\n+  #137 = Utf8               def\n+  #138 = Methodref          #122.#139     // org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+  #139 = NameAndType        #140:#126     // isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+  #140 = Utf8               isFalse\n+  #141 = Methodref          #7.#142       // dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/util/List;)V\n+  #142 = NameAndType        #5:#143       // \"<init>\":(Ljava/util/List;)V\n+  #143 = Utf8               (Ljava/util/List;)V\n+  #144 = Class              #145          // java/lang/RuntimeException\n+  #145 = Utf8               java/lang/RuntimeException\n+  #146 = Methodref          #21.#147      // dev/langchain4j/data/message/UserMessageTest.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+  #147 = NameAndType        #148:#149     // assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+  #148 = Utf8               assertThatExceptionOfType\n+  #149 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+  #150 = InvokeDynamic      #0:#151       // #0:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+  #151 = NameAndType        #152:#153     // call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+  #152 = Utf8               call\n+  #153 = Utf8               ()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+  #154 = Methodref          #155.#156     // org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+  #155 = Class              #157          // org/assertj/core/api/ThrowableTypeAssert\n+  #156 = NameAndType        #158:#159     // isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+  #157 = Utf8               org/assertj/core/api/ThrowableTypeAssert\n+  #158 = Utf8               isThrownBy\n+  #159 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+  #160 = String             #161          // Expecting single text content, but got:\n+  #161 = Utf8               Expecting single text content, but got:\n+  #162 = Methodref          #163.#164     // org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+  #163 = Class              #165          // org/assertj/core/api/ThrowableAssertAlternative\n+  #164 = NameAndType        #166:#167     // withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+  #165 = Utf8               org/assertj/core/api/ThrowableAssertAlternative\n+  #166 = Utf8               withMessageContaining\n+  #167 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+  #168 = Methodref          #7.#169       // dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+  #169 = NameAndType        #61:#170      // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+  #170 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+  #171 = Methodref          #7.#172       // dev/langchain4j/data/message/UserMessage.from:([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n+  #172 = NameAndType        #61:#173      // from:([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n+  #173 = Utf8               ([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n+  #174 = Methodref          #7.#175       // dev/langchain4j/data/message/UserMessage.from:(Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n+  #175 = NameAndType        #61:#176      // from:(Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n+  #176 = Utf8               (Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n+  #177 = Methodref          #7.#178       // dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+  #178 = NameAndType        #179:#170     // userMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+  #179 = Utf8               userMessage\n+  #180 = Methodref          #7.#181       // dev/langchain4j/data/message/UserMessage.userMessage:([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n+  #181 = NameAndType        #179:#173     // userMessage:([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n+  #182 = Methodref          #7.#183       // dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n+  #183 = NameAndType        #179:#176     // userMessage:(Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n+  #184 = Methodref          #7.#185       // dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+  #185 = NameAndType        #61:#186      // from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+  #186 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+  #187 = Methodref          #7.#188       // dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;[Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n+  #188 = NameAndType        #61:#189      // from:(Ljava/lang/String;[Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n+  #189 = Utf8               (Ljava/lang/String;[Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n+  #190 = Methodref          #7.#191       // dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n+  #191 = NameAndType        #61:#192      // from:(Ljava/lang/String;Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n+  #192 = Utf8               (Ljava/lang/String;Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n+  #193 = Methodref          #7.#194       // dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+  #194 = NameAndType        #179:#186     // userMessage:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+  #195 = Methodref          #7.#196       // dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/lang/String;[Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n+  #196 = NameAndType        #179:#189     // userMessage:(Ljava/lang/String;[Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n+  #197 = Methodref          #7.#198       // dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/lang/String;Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n+  #198 = NameAndType        #179:#192     // userMessage:(Ljava/lang/String;Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n+  #199 = Class              #200          // org/assertj/core/api/WithAssertions\n+  #200 = Utf8               org/assertj/core/api/WithAssertions\n+  #201 = Utf8               Code\n+  #202 = Utf8               LineNumberTable\n+  #203 = Utf8               LocalVariableTable\n+  #204 = Utf8               this\n+  #205 = Utf8               Ldev/langchain4j/data/message/UserMessageTest;\n+  #206 = Utf8               test_accessors\n+  #207 = Utf8               m\n+  #208 = Utf8               Ldev/langchain4j/data/message/UserMessage;\n+  #209 = Utf8               RuntimeVisibleAnnotations\n+  #210 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #211 = Utf8               test_equals_hashCode\n+  #212 = Utf8               m1\n+  #213 = Utf8               m2\n+  #214 = Utf8               m3\n+  #215 = Utf8               m4\n+  #216 = Utf8               elements\n+  #217 = Utf8               [Ljava/lang/Object;\n+  #218 = Utf8               LocalVariableTypeTable\n+  #219 = Utf8               [TT;\n+  #220 = Utf8               Signature\n+  #221 = Utf8               <T:Ljava/lang/Object;>([TT;)Ljava/util/List<TT;>;\n+  #222 = Utf8               Ljava/lang/SafeVarargs;\n+  #223 = Utf8               test_hasSingleText\n+  #224 = Utf8               test_builders\n+  #225 = Utf8               lambda$test_hasSingleText$0\n+  #226 = Utf8               Exceptions\n+  #227 = Class              #228          // java/lang/Throwable\n+  #228 = Utf8               java/lang/Throwable\n+  #229 = Utf8               SourceFile\n+  #230 = Utf8               UserMessageTest.java\n+  #231 = Utf8               BootstrapMethods\n+  #232 = MethodHandle       6:#233        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #233 = Methodref          #234.#235     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #234 = Class              #236          // java/lang/invoke/LambdaMetafactory\n+  #235 = NameAndType        #237:#238     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #236 = Utf8               java/lang/invoke/LambdaMetafactory\n+  #237 = Utf8               metafactory\n+  #238 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #239 = MethodType         #6            //  ()V\n+  #240 = MethodHandle       6:#241        // REF_invokeStatic dev/langchain4j/data/message/UserMessageTest.lambda$test_hasSingleText$0:()V\n+  #241 = Methodref          #21.#242      // dev/langchain4j/data/message/UserMessageTest.lambda$test_hasSingleText$0:()V\n+  #242 = NameAndType        #225:#6       // lambda$test_hasSingleText$0:()V\n+  #243 = Utf8               InnerClasses\n+  #244 = Class              #245          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n+  #245 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n+  #246 = Class              #247          // org/assertj/core/api/ThrowableAssert\n+  #247 = Utf8               org/assertj/core/api/ThrowableAssert\n+  #248 = Utf8               ThrowingCallable\n+  #249 = Class              #250          // java/lang/invoke/MethodHandles$Lookup\n+  #250 = Utf8               java/lang/invoke/MethodHandles$Lookup\n+  #251 = Class              #252          // java/lang/invoke/MethodHandles\n+  #252 = Utf8               java/lang/invoke/MethodHandles\n+  #253 = Utf8               Lookup\n {\n   dev.langchain4j.data.message.UserMessageTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -277,59 +277,59 @@\n             0       5     0  this   Ldev/langchain4j/data/message/UserMessageTest;\n \n   public void test_accessors();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=5, locals=2, args_size=1\n-         0: new           #2                  // class dev/langchain4j/data/message/UserMessage\n+         0: new           #7                  // class dev/langchain4j/data/message/UserMessage\n          3: dup\n-         4: ldc           #3                  // String name\n-         6: ldc           #4                  // String text\n-         8: invokespecial #5                  // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;)V\n+         4: ldc           #9                  // String name\n+         6: ldc           #11                 // String text\n+         8: invokespecial #13                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;)V\n         11: astore_1\n         12: aload_0\n         13: aload_1\n-        14: invokevirtual #6                  // Method dev/langchain4j/data/message/UserMessage.type:()Ldev/langchain4j/data/message/ChatMessageType;\n-        17: invokevirtual #7                  // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-        20: getstatic     #8                  // Field dev/langchain4j/data/message/ChatMessageType.USER:Ldev/langchain4j/data/message/ChatMessageType;\n-        23: invokevirtual #9                  // Method org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        14: invokevirtual #16                 // Method dev/langchain4j/data/message/UserMessage.type:()Ldev/langchain4j/data/message/ChatMessageType;\n+        17: invokevirtual #20                 // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+        20: getstatic     #26                 // Field dev/langchain4j/data/message/ChatMessageType.USER:Ldev/langchain4j/data/message/ChatMessageType;\n+        23: invokevirtual #32                 // Method org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         26: pop\n         27: aload_0\n         28: aload_1\n-        29: invokevirtual #10                 // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n-        32: invokevirtual #11                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        35: ldc           #4                  // String text\n-        37: invokevirtual #12                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        29: invokevirtual #38                 // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n+        32: invokevirtual #41                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        35: ldc           #11                 // String text\n+        37: invokevirtual #44                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         40: pop\n         41: aload_0\n         42: aload_1\n-        43: invokevirtual #13                 // Method dev/langchain4j/data/message/UserMessage.contents:()Ljava/util/List;\n-        46: invokevirtual #14                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+        43: invokevirtual #48                 // Method dev/langchain4j/data/message/UserMessage.contents:()Ljava/util/List;\n+        46: invokevirtual #52                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n         49: iconst_1\n-        50: anewarray     #15                 // class dev/langchain4j/data/message/Content\n+        50: anewarray     #55                 // class dev/langchain4j/data/message/Content\n         53: dup\n         54: iconst_0\n-        55: ldc           #4                  // String text\n-        57: invokestatic  #16                 // Method dev/langchain4j/data/message/TextContent.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/TextContent;\n+        55: ldc           #11                 // String text\n+        57: invokestatic  #57                 // Method dev/langchain4j/data/message/TextContent.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/TextContent;\n         60: aastore\n-        61: invokevirtual #17                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+        61: invokevirtual #63                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n         64: pop\n         65: aload_0\n         66: aload_1\n-        67: invokevirtual #18                 // Method dev/langchain4j/data/message/UserMessage.name:()Ljava/lang/String;\n-        70: invokevirtual #11                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        73: ldc           #3                  // String name\n-        75: invokevirtual #12                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        67: invokevirtual #69                 // Method dev/langchain4j/data/message/UserMessage.name:()Ljava/lang/String;\n+        70: invokevirtual #41                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        73: ldc           #9                  // String name\n+        75: invokevirtual #44                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         78: pop\n         79: aload_0\n         80: aload_1\n-        81: invokevirtual #19                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        84: ldc           #20                 // String UserMessage { name = \\\"name\\\" contents = [TextContent { text = \\\"text\\\" }] }\n-        86: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+        81: invokevirtual #71                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        84: ldc           #74                 // String UserMessage { name = \\\"name\\\" contents = [TextContent { text = \\\"text\\\" }] }\n+        86: invokevirtual #76                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n         89: pop\n         90: return\n       LineNumberTable:\n         line 15: 0\n         line 16: 12\n         line 17: 27\n         line 18: 41\n@@ -337,103 +337,103 @@\n         line 20: 79\n         line 21: 90\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      91     0  this   Ldev/langchain4j/data/message/UserMessageTest;\n            12      79     1     m   Ldev/langchain4j/data/message/UserMessage;\n     RuntimeVisibleAnnotations:\n-      0: #76()\n+      0: #210()\n         org.junit.jupiter.api.Test\n \n   public void test_equals_hashCode();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=5, locals=5, args_size=1\n-         0: new           #2                  // class dev/langchain4j/data/message/UserMessage\n+         0: new           #7                  // class dev/langchain4j/data/message/UserMessage\n          3: dup\n-         4: ldc           #3                  // String name\n-         6: ldc           #4                  // String text\n-         8: invokespecial #5                  // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;)V\n+         4: ldc           #9                  // String name\n+         6: ldc           #11                 // String text\n+         8: invokespecial #13                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;)V\n         11: astore_1\n-        12: new           #2                  // class dev/langchain4j/data/message/UserMessage\n+        12: new           #7                  // class dev/langchain4j/data/message/UserMessage\n         15: dup\n-        16: ldc           #3                  // String name\n-        18: ldc           #4                  // String text\n-        20: invokespecial #5                  // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;)V\n+        16: ldc           #9                  // String name\n+        18: ldc           #11                 // String text\n+        20: invokespecial #13                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;)V\n         23: astore_2\n-        24: new           #2                  // class dev/langchain4j/data/message/UserMessage\n+        24: new           #7                  // class dev/langchain4j/data/message/UserMessage\n         27: dup\n-        28: ldc           #4                  // String text\n-        30: invokespecial #22                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n+        28: ldc           #11                 // String text\n+        30: invokespecial #82                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n         33: astore_3\n-        34: new           #2                  // class dev/langchain4j/data/message/UserMessage\n+        34: new           #7                  // class dev/langchain4j/data/message/UserMessage\n         37: dup\n-        38: ldc           #4                  // String text\n-        40: invokespecial #22                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n+        38: ldc           #11                 // String text\n+        40: invokespecial #82                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n         43: astore        4\n         45: aload_0\n         46: aload_1\n-        47: invokevirtual #19                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        47: invokevirtual #71                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         50: aload_1\n-        51: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        54: checkcast     #24                 // class org/assertj/core/api/ObjectAssert\n+        51: invokevirtual #85                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        54: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n         57: aconst_null\n-        58: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        61: checkcast     #24                 // class org/assertj/core/api/ObjectAssert\n-        64: new           #26                 // class java/lang/Object\n+        58: invokevirtual #86                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        61: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n+        64: new           #2                  // class java/lang/Object\n         67: dup\n         68: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n-        71: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        74: checkcast     #24                 // class org/assertj/core/api/ObjectAssert\n+        71: invokevirtual #86                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        74: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n         77: aload_2\n-        78: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        81: checkcast     #24                 // class org/assertj/core/api/ObjectAssert\n+        78: invokevirtual #85                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        81: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n         84: aload_2\n-        85: invokevirtual #27                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        88: checkcast     #24                 // class org/assertj/core/api/ObjectAssert\n+        85: invokevirtual #89                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        88: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n         91: aload_3\n-        92: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        95: checkcast     #24                 // class org/assertj/core/api/ObjectAssert\n+        92: invokevirtual #86                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        95: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n         98: aload_3\n-        99: invokevirtual #28                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       102: checkcast     #24                 // class org/assertj/core/api/ObjectAssert\n-       105: new           #2                  // class dev/langchain4j/data/message/UserMessage\n+        99: invokevirtual #92                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       102: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n+       105: new           #7                  // class dev/langchain4j/data/message/UserMessage\n        108: dup\n-       109: ldc           #29                 // String foo\n-       111: ldc           #4                  // String text\n-       113: invokespecial #5                  // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;)V\n-       116: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       119: checkcast     #24                 // class org/assertj/core/api/ObjectAssert\n-       122: new           #2                  // class dev/langchain4j/data/message/UserMessage\n+       109: ldc           #95                 // String foo\n+       111: ldc           #11                 // String text\n+       113: invokespecial #13                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;)V\n+       116: invokevirtual #86                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       119: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n+       122: new           #7                  // class dev/langchain4j/data/message/UserMessage\n        125: dup\n-       126: ldc           #3                  // String name\n-       128: ldc           #29                 // String foo\n-       130: invokespecial #5                  // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;)V\n-       133: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       126: ldc           #9                  // String name\n+       128: ldc           #95                 // String foo\n+       130: invokespecial #13                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;)V\n+       133: invokevirtual #86                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        136: pop\n        137: aload_0\n        138: aload_3\n-       139: invokevirtual #19                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       139: invokevirtual #71                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        142: aload_3\n-       143: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       146: checkcast     #24                 // class org/assertj/core/api/ObjectAssert\n+       143: invokevirtual #85                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       146: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n        149: aconst_null\n-       150: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       153: checkcast     #24                 // class org/assertj/core/api/ObjectAssert\n-       156: new           #26                 // class java/lang/Object\n+       150: invokevirtual #86                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       153: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n+       156: new           #2                  // class java/lang/Object\n        159: dup\n        160: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n-       163: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       166: checkcast     #24                 // class org/assertj/core/api/ObjectAssert\n+       163: invokevirtual #86                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       166: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n        169: aload         4\n-       171: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       174: checkcast     #24                 // class org/assertj/core/api/ObjectAssert\n+       171: invokevirtual #85                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       174: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n        177: aload         4\n-       179: invokevirtual #27                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       179: invokevirtual #89                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        182: pop\n        183: return\n       LineNumberTable:\n         line 25: 0\n         line 26: 12\n         line 27: 24\n         line 28: 34\n@@ -458,171 +458,171 @@\n         Start  Length  Slot  Name   Signature\n             0     184     0  this   Ldev/langchain4j/data/message/UserMessageTest;\n            12     172     1    m1   Ldev/langchain4j/data/message/UserMessage;\n            24     160     2    m2   Ldev/langchain4j/data/message/UserMessage;\n            34     150     3    m3   Ldev/langchain4j/data/message/UserMessage;\n            45     139     4    m4   Ldev/langchain4j/data/message/UserMessage;\n     RuntimeVisibleAnnotations:\n-      0: #76()\n+      0: #210()\n         org.junit.jupiter.api.Test\n \n   public static <T extends java.lang.Object> java.util.List<T> listOf(T...);\n     descriptor: ([Ljava/lang/Object;)Ljava/util/List;\n     flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS\n     Code:\n       stack=3, locals=1, args_size=1\n-         0: new           #30                 // class java/util/ArrayList\n+         0: new           #97                 // class java/util/ArrayList\n          3: dup\n          4: aload_0\n-         5: invokestatic  #31                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-         8: invokespecial #32                 // Method java/util/ArrayList.\"<init>\":(Ljava/util/Collection;)V\n-        11: invokestatic  #33                 // Method java/util/Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;\n+         5: invokestatic  #99                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+         8: invokespecial #105                // Method java/util/ArrayList.\"<init>\":(Ljava/util/Collection;)V\n+        11: invokestatic  #108                // Method java/util/Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;\n         14: areturn\n       LineNumberTable:\n         line 51: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      15     0 elements   [Ljava/lang/Object;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0      15     0 elements   [TT;\n-    Signature: #89                          // <T:Ljava/lang/Object;>([TT;)Ljava/util/List<TT;>;\n+    Signature: #221                         // <T:Ljava/lang/Object;>([TT;)Ljava/util/List<TT;>;\n     RuntimeVisibleAnnotations:\n-      0: #90()\n+      0: #222()\n         java.lang.SafeVarargs\n \n   public void test_hasSingleText();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=10, locals=1, args_size=1\n          0: aload_0\n-         1: new           #2                  // class dev/langchain4j/data/message/UserMessage\n+         1: new           #7                  // class dev/langchain4j/data/message/UserMessage\n          4: dup\n-         5: ldc           #4                  // String text\n-         7: invokespecial #22                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n-        10: invokevirtual #34                 // Method dev/langchain4j/data/message/UserMessage.hasSingleText:()Z\n-        13: invokevirtual #35                 // Method assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-        16: invokevirtual #36                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+         5: ldc           #11                 // String text\n+         7: invokespecial #82                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n+        10: invokevirtual #114                // Method dev/langchain4j/data/message/UserMessage.hasSingleText:()Z\n+        13: invokevirtual #118                // Method assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+        16: invokevirtual #121                // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n         19: pop\n         20: aload_0\n-        21: new           #2                  // class dev/langchain4j/data/message/UserMessage\n+        21: new           #7                  // class dev/langchain4j/data/message/UserMessage\n         24: dup\n-        25: ldc           #3                  // String name\n-        27: ldc           #4                  // String text\n-        29: invokespecial #5                  // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;)V\n-        32: invokevirtual #34                 // Method dev/langchain4j/data/message/UserMessage.hasSingleText:()Z\n-        35: invokevirtual #35                 // Method assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-        38: invokevirtual #36                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+        25: ldc           #9                  // String name\n+        27: ldc           #11                 // String text\n+        29: invokespecial #13                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;)V\n+        32: invokevirtual #114                // Method dev/langchain4j/data/message/UserMessage.hasSingleText:()Z\n+        35: invokevirtual #118                // Method assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+        38: invokevirtual #121                // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n         41: pop\n         42: aload_0\n-        43: new           #2                  // class dev/langchain4j/data/message/UserMessage\n+        43: new           #7                  // class dev/langchain4j/data/message/UserMessage\n         46: dup\n-        47: ldc           #3                  // String name\n+        47: ldc           #9                  // String name\n         49: iconst_1\n-        50: anewarray     #15                 // class dev/langchain4j/data/message/Content\n+        50: anewarray     #55                 // class dev/langchain4j/data/message/Content\n         53: dup\n         54: iconst_0\n-        55: new           #37                 // class dev/langchain4j/data/message/TextContent\n+        55: new           #58                 // class dev/langchain4j/data/message/TextContent\n         58: dup\n-        59: ldc           #4                  // String text\n-        61: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+        59: ldc           #11                 // String text\n+        61: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n         64: aastore\n-        65: invokestatic  #39                 // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n-        68: invokespecial #40                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;Ljava/util/List;)V\n-        71: invokevirtual #34                 // Method dev/langchain4j/data/message/UserMessage.hasSingleText:()Z\n-        74: invokevirtual #35                 // Method assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-        77: invokevirtual #36                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+        65: invokestatic  #128                // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n+        68: invokespecial #131                // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;Ljava/util/List;)V\n+        71: invokevirtual #114                // Method dev/langchain4j/data/message/UserMessage.hasSingleText:()Z\n+        74: invokevirtual #118                // Method assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+        77: invokevirtual #121                // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n         80: pop\n         81: aload_0\n-        82: new           #2                  // class dev/langchain4j/data/message/UserMessage\n+        82: new           #7                  // class dev/langchain4j/data/message/UserMessage\n         85: dup\n-        86: ldc           #3                  // String name\n+        86: ldc           #9                  // String name\n         88: iconst_2\n-        89: anewarray     #15                 // class dev/langchain4j/data/message/Content\n+        89: anewarray     #55                 // class dev/langchain4j/data/message/Content\n         92: dup\n         93: iconst_0\n-        94: new           #37                 // class dev/langchain4j/data/message/TextContent\n+        94: new           #58                 // class dev/langchain4j/data/message/TextContent\n         97: dup\n-        98: ldc           #41                 // String abc\n-       100: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+        98: ldc           #134                // String abc\n+       100: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        103: aastore\n        104: dup\n        105: iconst_1\n-       106: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       106: new           #58                 // class dev/langchain4j/data/message/TextContent\n        109: dup\n-       110: ldc           #42                 // String def\n-       112: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       110: ldc           #136                // String def\n+       112: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        115: aastore\n-       116: invokestatic  #39                 // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n-       119: invokespecial #40                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;Ljava/util/List;)V\n-       122: invokevirtual #34                 // Method dev/langchain4j/data/message/UserMessage.hasSingleText:()Z\n-       125: invokevirtual #35                 // Method assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-       128: invokevirtual #43                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+       116: invokestatic  #128                // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n+       119: invokespecial #131                // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;Ljava/util/List;)V\n+       122: invokevirtual #114                // Method dev/langchain4j/data/message/UserMessage.hasSingleText:()Z\n+       125: invokevirtual #118                // Method assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+       128: invokevirtual #138                // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n        131: pop\n        132: aload_0\n-       133: new           #2                  // class dev/langchain4j/data/message/UserMessage\n+       133: new           #7                  // class dev/langchain4j/data/message/UserMessage\n        136: dup\n        137: iconst_1\n-       138: anewarray     #15                 // class dev/langchain4j/data/message/Content\n+       138: anewarray     #55                 // class dev/langchain4j/data/message/Content\n        141: dup\n        142: iconst_0\n-       143: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       143: new           #58                 // class dev/langchain4j/data/message/TextContent\n        146: dup\n-       147: ldc           #4                  // String text\n-       149: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       147: ldc           #11                 // String text\n+       149: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        152: aastore\n-       153: invokestatic  #39                 // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n-       156: invokespecial #44                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/util/List;)V\n-       159: invokevirtual #34                 // Method dev/langchain4j/data/message/UserMessage.hasSingleText:()Z\n-       162: invokevirtual #35                 // Method assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-       165: invokevirtual #36                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+       153: invokestatic  #128                // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n+       156: invokespecial #141                // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/util/List;)V\n+       159: invokevirtual #114                // Method dev/langchain4j/data/message/UserMessage.hasSingleText:()Z\n+       162: invokevirtual #118                // Method assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+       165: invokevirtual #121                // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n        168: pop\n        169: aload_0\n-       170: new           #2                  // class dev/langchain4j/data/message/UserMessage\n+       170: new           #7                  // class dev/langchain4j/data/message/UserMessage\n        173: dup\n        174: iconst_2\n-       175: anewarray     #15                 // class dev/langchain4j/data/message/Content\n+       175: anewarray     #55                 // class dev/langchain4j/data/message/Content\n        178: dup\n        179: iconst_0\n-       180: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       180: new           #58                 // class dev/langchain4j/data/message/TextContent\n        183: dup\n-       184: ldc           #41                 // String abc\n-       186: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       184: ldc           #134                // String abc\n+       186: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        189: aastore\n        190: dup\n        191: iconst_1\n-       192: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       192: new           #58                 // class dev/langchain4j/data/message/TextContent\n        195: dup\n-       196: ldc           #42                 // String def\n-       198: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       196: ldc           #136                // String def\n+       198: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        201: aastore\n-       202: invokestatic  #39                 // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n-       205: invokespecial #44                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/util/List;)V\n-       208: invokevirtual #34                 // Method dev/langchain4j/data/message/UserMessage.hasSingleText:()Z\n-       211: invokevirtual #35                 // Method assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-       214: invokevirtual #43                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+       202: invokestatic  #128                // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n+       205: invokespecial #141                // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/util/List;)V\n+       208: invokevirtual #114                // Method dev/langchain4j/data/message/UserMessage.hasSingleText:()Z\n+       211: invokevirtual #118                // Method assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+       214: invokevirtual #138                // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n        217: pop\n        218: aload_0\n-       219: new           #2                  // class dev/langchain4j/data/message/UserMessage\n+       219: new           #7                  // class dev/langchain4j/data/message/UserMessage\n        222: dup\n-       223: ldc           #4                  // String text\n-       225: invokespecial #22                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n-       228: invokevirtual #10                 // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n-       231: invokevirtual #11                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       234: ldc           #4                  // String text\n-       236: invokevirtual #12                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       223: ldc           #11                 // String text\n+       225: invokespecial #82                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n+       228: invokevirtual #38                 // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n+       231: invokevirtual #41                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       234: ldc           #11                 // String text\n+       236: invokevirtual #44                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n        239: pop\n        240: aload_0\n-       241: ldc           #45                 // class java/lang/RuntimeException\n-       243: invokevirtual #46                 // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-       246: invokedynamic #47,  0             // InvokeDynamic #0:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-       251: invokevirtual #48                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-       254: ldc           #49                 // String Expecting single text content, but got:\n-       256: invokevirtual #50                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+       241: ldc           #144                // class java/lang/RuntimeException\n+       243: invokevirtual #146                // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+       246: invokedynamic #150,  0            // InvokeDynamic #0:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+       251: invokevirtual #154                // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+       254: ldc           #160                // String Expecting single text content, but got:\n+       256: invokevirtual #162                // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n        259: pop\n        260: return\n       LineNumberTable:\n         line 56: 0\n         line 57: 20\n         line 58: 42\n         line 59: 81\n@@ -633,361 +633,361 @@\n         line 66: 251\n         line 67: 256\n         line 68: 260\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     261     0  this   Ldev/langchain4j/data/message/UserMessageTest;\n     RuntimeVisibleAnnotations:\n-      0: #76()\n+      0: #210()\n         org.junit.jupiter.api.Test\n \n   public void test_builders();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=10, locals=1, args_size=1\n          0: aload_0\n-         1: new           #2                  // class dev/langchain4j/data/message/UserMessage\n+         1: new           #7                  // class dev/langchain4j/data/message/UserMessage\n          4: dup\n-         5: ldc           #4                  // String text\n-         7: invokespecial #22                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n-        10: invokevirtual #19                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        13: ldc           #4                  // String text\n-        15: invokestatic  #51                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-        18: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        21: checkcast     #24                 // class org/assertj/core/api/ObjectAssert\n+         5: ldc           #11                 // String text\n+         7: invokespecial #82                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n+        10: invokevirtual #71                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        13: ldc           #11                 // String text\n+        15: invokestatic  #168                // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+        18: invokevirtual #85                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        21: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n         24: iconst_1\n-        25: anewarray     #15                 // class dev/langchain4j/data/message/Content\n+        25: anewarray     #55                 // class dev/langchain4j/data/message/Content\n         28: dup\n         29: iconst_0\n-        30: new           #37                 // class dev/langchain4j/data/message/TextContent\n+        30: new           #58                 // class dev/langchain4j/data/message/TextContent\n         33: dup\n-        34: ldc           #4                  // String text\n-        36: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+        34: ldc           #11                 // String text\n+        36: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n         39: aastore\n-        40: invokestatic  #52                 // Method dev/langchain4j/data/message/UserMessage.from:([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n-        43: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        46: checkcast     #24                 // class org/assertj/core/api/ObjectAssert\n+        40: invokestatic  #171                // Method dev/langchain4j/data/message/UserMessage.from:([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n+        43: invokevirtual #85                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        46: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n         49: iconst_1\n-        50: anewarray     #15                 // class dev/langchain4j/data/message/Content\n+        50: anewarray     #55                 // class dev/langchain4j/data/message/Content\n         53: dup\n         54: iconst_0\n-        55: new           #37                 // class dev/langchain4j/data/message/TextContent\n+        55: new           #58                 // class dev/langchain4j/data/message/TextContent\n         58: dup\n-        59: ldc           #4                  // String text\n-        61: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+        59: ldc           #11                 // String text\n+        61: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n         64: aastore\n-        65: invokestatic  #39                 // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n-        68: invokestatic  #53                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n-        71: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        74: checkcast     #24                 // class org/assertj/core/api/ObjectAssert\n-        77: ldc           #4                  // String text\n-        79: invokestatic  #54                 // Method dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-        82: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        85: checkcast     #24                 // class org/assertj/core/api/ObjectAssert\n+        65: invokestatic  #128                // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n+        68: invokestatic  #174                // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n+        71: invokevirtual #85                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        74: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n+        77: ldc           #11                 // String text\n+        79: invokestatic  #177                // Method dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+        82: invokevirtual #85                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        85: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n         88: iconst_1\n-        89: anewarray     #15                 // class dev/langchain4j/data/message/Content\n+        89: anewarray     #55                 // class dev/langchain4j/data/message/Content\n         92: dup\n         93: iconst_0\n-        94: new           #37                 // class dev/langchain4j/data/message/TextContent\n+        94: new           #58                 // class dev/langchain4j/data/message/TextContent\n         97: dup\n-        98: ldc           #4                  // String text\n-       100: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+        98: ldc           #11                 // String text\n+       100: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        103: aastore\n-       104: invokestatic  #55                 // Method dev/langchain4j/data/message/UserMessage.userMessage:([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n-       107: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       110: checkcast     #24                 // class org/assertj/core/api/ObjectAssert\n+       104: invokestatic  #180                // Method dev/langchain4j/data/message/UserMessage.userMessage:([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n+       107: invokevirtual #85                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       110: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n        113: iconst_1\n-       114: anewarray     #15                 // class dev/langchain4j/data/message/Content\n+       114: anewarray     #55                 // class dev/langchain4j/data/message/Content\n        117: dup\n        118: iconst_0\n-       119: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       119: new           #58                 // class dev/langchain4j/data/message/TextContent\n        122: dup\n-       123: ldc           #4                  // String text\n-       125: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       123: ldc           #11                 // String text\n+       125: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        128: aastore\n-       129: invokestatic  #39                 // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n-       132: invokestatic  #56                 // Method dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n-       135: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       129: invokestatic  #128                // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n+       132: invokestatic  #182                // Method dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n+       135: invokevirtual #85                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        138: pop\n        139: aload_0\n-       140: new           #2                  // class dev/langchain4j/data/message/UserMessage\n+       140: new           #7                  // class dev/langchain4j/data/message/UserMessage\n        143: dup\n-       144: ldc           #3                  // String name\n-       146: ldc           #4                  // String text\n-       148: invokespecial #5                  // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;)V\n-       151: invokevirtual #19                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-       154: ldc           #3                  // String name\n-       156: ldc           #4                  // String text\n-       158: invokestatic  #57                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-       161: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       164: checkcast     #24                 // class org/assertj/core/api/ObjectAssert\n-       167: ldc           #3                  // String name\n+       144: ldc           #9                  // String name\n+       146: ldc           #11                 // String text\n+       148: invokespecial #13                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;)V\n+       151: invokevirtual #71                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       154: ldc           #9                  // String name\n+       156: ldc           #11                 // String text\n+       158: invokestatic  #184                // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+       161: invokevirtual #85                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       164: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n+       167: ldc           #9                  // String name\n        169: iconst_1\n-       170: anewarray     #15                 // class dev/langchain4j/data/message/Content\n+       170: anewarray     #55                 // class dev/langchain4j/data/message/Content\n        173: dup\n        174: iconst_0\n-       175: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       175: new           #58                 // class dev/langchain4j/data/message/TextContent\n        178: dup\n-       179: ldc           #4                  // String text\n-       181: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       179: ldc           #11                 // String text\n+       181: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        184: aastore\n-       185: invokestatic  #58                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;[Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n-       188: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       191: checkcast     #24                 // class org/assertj/core/api/ObjectAssert\n-       194: ldc           #3                  // String name\n+       185: invokestatic  #187                // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;[Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n+       188: invokevirtual #85                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       191: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n+       194: ldc           #9                  // String name\n        196: iconst_1\n-       197: anewarray     #15                 // class dev/langchain4j/data/message/Content\n+       197: anewarray     #55                 // class dev/langchain4j/data/message/Content\n        200: dup\n        201: iconst_0\n-       202: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       202: new           #58                 // class dev/langchain4j/data/message/TextContent\n        205: dup\n-       206: ldc           #4                  // String text\n-       208: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       206: ldc           #11                 // String text\n+       208: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        211: aastore\n-       212: invokestatic  #39                 // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n-       215: invokestatic  #59                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n-       218: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       221: checkcast     #24                 // class org/assertj/core/api/ObjectAssert\n-       224: ldc           #3                  // String name\n-       226: ldc           #4                  // String text\n-       228: invokestatic  #60                 // Method dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-       231: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       234: checkcast     #24                 // class org/assertj/core/api/ObjectAssert\n-       237: ldc           #3                  // String name\n+       212: invokestatic  #128                // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n+       215: invokestatic  #190                // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n+       218: invokevirtual #85                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       221: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n+       224: ldc           #9                  // String name\n+       226: ldc           #11                 // String text\n+       228: invokestatic  #193                // Method dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+       231: invokevirtual #85                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       234: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n+       237: ldc           #9                  // String name\n        239: iconst_1\n-       240: anewarray     #15                 // class dev/langchain4j/data/message/Content\n+       240: anewarray     #55                 // class dev/langchain4j/data/message/Content\n        243: dup\n        244: iconst_0\n-       245: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       245: new           #58                 // class dev/langchain4j/data/message/TextContent\n        248: dup\n-       249: ldc           #4                  // String text\n-       251: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       249: ldc           #11                 // String text\n+       251: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        254: aastore\n-       255: invokestatic  #61                 // Method dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/lang/String;[Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n-       258: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       261: checkcast     #24                 // class org/assertj/core/api/ObjectAssert\n-       264: ldc           #3                  // String name\n+       255: invokestatic  #195                // Method dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/lang/String;[Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n+       258: invokevirtual #85                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       261: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n+       264: ldc           #9                  // String name\n        266: iconst_1\n-       267: anewarray     #15                 // class dev/langchain4j/data/message/Content\n+       267: anewarray     #55                 // class dev/langchain4j/data/message/Content\n        270: dup\n        271: iconst_0\n-       272: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       272: new           #58                 // class dev/langchain4j/data/message/TextContent\n        275: dup\n-       276: ldc           #4                  // String text\n-       278: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       276: ldc           #11                 // String text\n+       278: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        281: aastore\n-       282: invokestatic  #39                 // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n-       285: invokestatic  #62                 // Method dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/lang/String;Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n-       288: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       282: invokestatic  #128                // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n+       285: invokestatic  #197                // Method dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/lang/String;Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n+       288: invokevirtual #85                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        291: pop\n        292: aload_0\n-       293: new           #2                  // class dev/langchain4j/data/message/UserMessage\n+       293: new           #7                  // class dev/langchain4j/data/message/UserMessage\n        296: dup\n-       297: ldc           #3                  // String name\n+       297: ldc           #9                  // String name\n        299: iconst_2\n-       300: anewarray     #15                 // class dev/langchain4j/data/message/Content\n+       300: anewarray     #55                 // class dev/langchain4j/data/message/Content\n        303: dup\n        304: iconst_0\n-       305: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       305: new           #58                 // class dev/langchain4j/data/message/TextContent\n        308: dup\n-       309: ldc           #41                 // String abc\n-       311: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       309: ldc           #134                // String abc\n+       311: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        314: aastore\n        315: dup\n        316: iconst_1\n-       317: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       317: new           #58                 // class dev/langchain4j/data/message/TextContent\n        320: dup\n-       321: ldc           #42                 // String def\n-       323: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       321: ldc           #136                // String def\n+       323: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        326: aastore\n-       327: invokestatic  #39                 // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n-       330: invokespecial #40                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;Ljava/util/List;)V\n-       333: invokevirtual #19                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-       336: ldc           #3                  // String name\n+       327: invokestatic  #128                // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n+       330: invokespecial #131                // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;Ljava/util/List;)V\n+       333: invokevirtual #71                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       336: ldc           #9                  // String name\n        338: iconst_2\n-       339: anewarray     #15                 // class dev/langchain4j/data/message/Content\n+       339: anewarray     #55                 // class dev/langchain4j/data/message/Content\n        342: dup\n        343: iconst_0\n-       344: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       344: new           #58                 // class dev/langchain4j/data/message/TextContent\n        347: dup\n-       348: ldc           #41                 // String abc\n-       350: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       348: ldc           #134                // String abc\n+       350: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        353: aastore\n        354: dup\n        355: iconst_1\n-       356: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       356: new           #58                 // class dev/langchain4j/data/message/TextContent\n        359: dup\n-       360: ldc           #42                 // String def\n-       362: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       360: ldc           #136                // String def\n+       362: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        365: aastore\n-       366: invokestatic  #39                 // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n-       369: invokestatic  #59                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n-       372: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       375: checkcast     #24                 // class org/assertj/core/api/ObjectAssert\n-       378: ldc           #3                  // String name\n+       366: invokestatic  #128                // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n+       369: invokestatic  #190                // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n+       372: invokevirtual #85                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       375: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n+       378: ldc           #9                  // String name\n        380: iconst_2\n-       381: anewarray     #15                 // class dev/langchain4j/data/message/Content\n+       381: anewarray     #55                 // class dev/langchain4j/data/message/Content\n        384: dup\n        385: iconst_0\n-       386: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       386: new           #58                 // class dev/langchain4j/data/message/TextContent\n        389: dup\n-       390: ldc           #41                 // String abc\n-       392: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       390: ldc           #134                // String abc\n+       392: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        395: aastore\n        396: dup\n        397: iconst_1\n-       398: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       398: new           #58                 // class dev/langchain4j/data/message/TextContent\n        401: dup\n-       402: ldc           #42                 // String def\n-       404: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       402: ldc           #136                // String def\n+       404: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        407: aastore\n-       408: invokestatic  #58                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;[Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n-       411: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       414: checkcast     #24                 // class org/assertj/core/api/ObjectAssert\n-       417: ldc           #3                  // String name\n+       408: invokestatic  #187                // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;[Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n+       411: invokevirtual #85                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       414: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n+       417: ldc           #9                  // String name\n        419: iconst_2\n-       420: anewarray     #15                 // class dev/langchain4j/data/message/Content\n+       420: anewarray     #55                 // class dev/langchain4j/data/message/Content\n        423: dup\n        424: iconst_0\n-       425: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       425: new           #58                 // class dev/langchain4j/data/message/TextContent\n        428: dup\n-       429: ldc           #41                 // String abc\n-       431: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       429: ldc           #134                // String abc\n+       431: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        434: aastore\n        435: dup\n        436: iconst_1\n-       437: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       437: new           #58                 // class dev/langchain4j/data/message/TextContent\n        440: dup\n-       441: ldc           #42                 // String def\n-       443: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       441: ldc           #136                // String def\n+       443: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        446: aastore\n-       447: invokestatic  #39                 // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n-       450: invokestatic  #62                 // Method dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/lang/String;Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n-       453: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       456: checkcast     #24                 // class org/assertj/core/api/ObjectAssert\n-       459: ldc           #3                  // String name\n+       447: invokestatic  #128                // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n+       450: invokestatic  #197                // Method dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/lang/String;Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n+       453: invokevirtual #85                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       456: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n+       459: ldc           #9                  // String name\n        461: iconst_2\n-       462: anewarray     #15                 // class dev/langchain4j/data/message/Content\n+       462: anewarray     #55                 // class dev/langchain4j/data/message/Content\n        465: dup\n        466: iconst_0\n-       467: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       467: new           #58                 // class dev/langchain4j/data/message/TextContent\n        470: dup\n-       471: ldc           #41                 // String abc\n-       473: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       471: ldc           #134                // String abc\n+       473: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        476: aastore\n        477: dup\n        478: iconst_1\n-       479: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       479: new           #58                 // class dev/langchain4j/data/message/TextContent\n        482: dup\n-       483: ldc           #42                 // String def\n-       485: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       483: ldc           #136                // String def\n+       485: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        488: aastore\n-       489: invokestatic  #61                 // Method dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/lang/String;[Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n-       492: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       489: invokestatic  #195                // Method dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/lang/String;[Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n+       492: invokevirtual #85                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        495: pop\n        496: aload_0\n-       497: new           #2                  // class dev/langchain4j/data/message/UserMessage\n+       497: new           #7                  // class dev/langchain4j/data/message/UserMessage\n        500: dup\n        501: iconst_2\n-       502: anewarray     #15                 // class dev/langchain4j/data/message/Content\n+       502: anewarray     #55                 // class dev/langchain4j/data/message/Content\n        505: dup\n        506: iconst_0\n-       507: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       507: new           #58                 // class dev/langchain4j/data/message/TextContent\n        510: dup\n-       511: ldc           #41                 // String abc\n-       513: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       511: ldc           #134                // String abc\n+       513: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        516: aastore\n        517: dup\n        518: iconst_1\n-       519: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       519: new           #58                 // class dev/langchain4j/data/message/TextContent\n        522: dup\n-       523: ldc           #42                 // String def\n-       525: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       523: ldc           #136                // String def\n+       525: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        528: aastore\n-       529: invokestatic  #39                 // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n-       532: invokespecial #44                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/util/List;)V\n-       535: invokevirtual #19                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       529: invokestatic  #128                // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n+       532: invokespecial #141                // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/util/List;)V\n+       535: invokevirtual #71                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        538: iconst_2\n-       539: anewarray     #15                 // class dev/langchain4j/data/message/Content\n+       539: anewarray     #55                 // class dev/langchain4j/data/message/Content\n        542: dup\n        543: iconst_0\n-       544: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       544: new           #58                 // class dev/langchain4j/data/message/TextContent\n        547: dup\n-       548: ldc           #41                 // String abc\n-       550: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       548: ldc           #134                // String abc\n+       550: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        553: aastore\n        554: dup\n        555: iconst_1\n-       556: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       556: new           #58                 // class dev/langchain4j/data/message/TextContent\n        559: dup\n-       560: ldc           #42                 // String def\n-       562: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       560: ldc           #136                // String def\n+       562: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        565: aastore\n-       566: invokestatic  #39                 // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n-       569: invokestatic  #53                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n-       572: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       575: checkcast     #24                 // class org/assertj/core/api/ObjectAssert\n+       566: invokestatic  #128                // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n+       569: invokestatic  #174                // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n+       572: invokevirtual #85                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       575: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n        578: iconst_2\n-       579: anewarray     #15                 // class dev/langchain4j/data/message/Content\n+       579: anewarray     #55                 // class dev/langchain4j/data/message/Content\n        582: dup\n        583: iconst_0\n-       584: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       584: new           #58                 // class dev/langchain4j/data/message/TextContent\n        587: dup\n-       588: ldc           #41                 // String abc\n-       590: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       588: ldc           #134                // String abc\n+       590: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        593: aastore\n        594: dup\n        595: iconst_1\n-       596: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       596: new           #58                 // class dev/langchain4j/data/message/TextContent\n        599: dup\n-       600: ldc           #42                 // String def\n-       602: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       600: ldc           #136                // String def\n+       602: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        605: aastore\n-       606: invokestatic  #52                 // Method dev/langchain4j/data/message/UserMessage.from:([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n-       609: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       612: checkcast     #24                 // class org/assertj/core/api/ObjectAssert\n+       606: invokestatic  #171                // Method dev/langchain4j/data/message/UserMessage.from:([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n+       609: invokevirtual #85                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       612: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n        615: iconst_2\n-       616: anewarray     #15                 // class dev/langchain4j/data/message/Content\n+       616: anewarray     #55                 // class dev/langchain4j/data/message/Content\n        619: dup\n        620: iconst_0\n-       621: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       621: new           #58                 // class dev/langchain4j/data/message/TextContent\n        624: dup\n-       625: ldc           #41                 // String abc\n-       627: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       625: ldc           #134                // String abc\n+       627: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        630: aastore\n        631: dup\n        632: iconst_1\n-       633: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       633: new           #58                 // class dev/langchain4j/data/message/TextContent\n        636: dup\n-       637: ldc           #42                 // String def\n-       639: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       637: ldc           #136                // String def\n+       639: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        642: aastore\n-       643: invokestatic  #39                 // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n-       646: invokestatic  #56                 // Method dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n-       649: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       652: checkcast     #24                 // class org/assertj/core/api/ObjectAssert\n+       643: invokestatic  #128                // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n+       646: invokestatic  #182                // Method dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n+       649: invokevirtual #85                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       652: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n        655: iconst_2\n-       656: anewarray     #15                 // class dev/langchain4j/data/message/Content\n+       656: anewarray     #55                 // class dev/langchain4j/data/message/Content\n        659: dup\n        660: iconst_0\n-       661: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       661: new           #58                 // class dev/langchain4j/data/message/TextContent\n        664: dup\n-       665: ldc           #41                 // String abc\n-       667: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       665: ldc           #134                // String abc\n+       667: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        670: aastore\n        671: dup\n        672: iconst_1\n-       673: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       673: new           #58                 // class dev/langchain4j/data/message/TextContent\n        676: dup\n-       677: ldc           #42                 // String def\n-       679: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       677: ldc           #136                // String def\n+       679: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        682: aastore\n-       683: invokestatic  #55                 // Method dev/langchain4j/data/message/UserMessage.userMessage:([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n-       686: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       683: invokestatic  #180                // Method dev/langchain4j/data/message/UserMessage.userMessage:([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n+       686: invokevirtual #85                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        689: pop\n        690: return\n       LineNumberTable:\n         line 72: 0\n         line 73: 15\n         line 74: 40\n         line 75: 65\n@@ -1012,54 +1012,54 @@\n         line 97: 643\n         line 98: 683\n         line 99: 690\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     691     0  this   Ldev/langchain4j/data/message/UserMessageTest;\n     RuntimeVisibleAnnotations:\n-      0: #76()\n+      0: #210()\n         org.junit.jupiter.api.Test\n \n   private static void lambda$test_hasSingleText$0() throws java.lang.Throwable;\n     descriptor: ()V\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=9, locals=0, args_size=0\n-         0: new           #2                  // class dev/langchain4j/data/message/UserMessage\n+         0: new           #7                  // class dev/langchain4j/data/message/UserMessage\n          3: dup\n-         4: ldc           #3                  // String name\n+         4: ldc           #9                  // String name\n          6: iconst_2\n-         7: anewarray     #15                 // class dev/langchain4j/data/message/Content\n+         7: anewarray     #55                 // class dev/langchain4j/data/message/Content\n         10: dup\n         11: iconst_0\n-        12: new           #37                 // class dev/langchain4j/data/message/TextContent\n+        12: new           #58                 // class dev/langchain4j/data/message/TextContent\n         15: dup\n-        16: ldc           #41                 // String abc\n-        18: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+        16: ldc           #134                // String abc\n+        18: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n         21: aastore\n         22: dup\n         23: iconst_1\n-        24: new           #37                 // class dev/langchain4j/data/message/TextContent\n+        24: new           #58                 // class dev/langchain4j/data/message/TextContent\n         27: dup\n-        28: ldc           #42                 // String def\n-        30: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+        28: ldc           #136                // String def\n+        30: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n         33: aastore\n-        34: invokestatic  #39                 // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n-        37: invokespecial #40                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;Ljava/util/List;)V\n-        40: invokevirtual #10                 // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n+        34: invokestatic  #128                // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n+        37: invokespecial #131                // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;Ljava/util/List;)V\n+        40: invokevirtual #38                 // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n         43: pop\n         44: return\n       LineNumberTable:\n         line 66: 0\n     Exceptions:\n       throws java.lang.Throwable\n }\n SourceFile: \"UserMessageTest.java\"\n-InnerClasses:\n-  public static #224= #223 of #243;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n-  public static final #248= #247 of #251; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n BootstrapMethods:\n-  0: #150 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  0: #232 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #151 ()V\n-      #152 REF_invokeStatic dev/langchain4j/data/message/UserMessageTest.lambda$test_hasSingleText$0:()V\n-      #151 ()V\n+      #239 ()V\n+      #240 REF_invokeStatic dev/langchain4j/data/message/UserMessageTest.lambda$test_hasSingleText$0:()V\n+      #239 ()V\n+InnerClasses:\n+  public static #248= #244 of #246;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n+  public static final #253= #249 of #251; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n"}]}, {"source1": "dev/langchain4j/data/segment/TextSegmentTest.class", "source2": "dev/langchain4j/data/segment/TextSegmentTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,190 +1,190 @@\n-  SHA-256 checksum 00dcd16092b6509cadc13dd0eab17fb15736b82b0a3680f01beac8bddfd26a7a\n+  SHA-256 checksum 2efcbc666a32c7be4404eef2c0e5e5f234daa4b4b8a27445849d3f840a6ca35c\n   Compiled from \"TextSegmentTest.java\"\n class dev.langchain4j.data.segment.TextSegmentTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #38                         // dev/langchain4j/data/segment/TextSegmentTest\n-  super_class: #39                        // java/lang/Object\n+  this_class: #10                         // dev/langchain4j/data/segment/TextSegmentTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 8, attributes: 3\n Constant pool:\n-    #1 = Methodref          #39.#73       // java/lang/Object.\"<init>\":()V\n-    #2 = Class              #74           // java/lang/IllegalArgumentException\n-    #3 = Methodref          #38.#75       // dev/langchain4j/data/segment/TextSegmentTest.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-    #4 = InvokeDynamic      #0:#80        // #0:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-    #5 = Methodref          #81.#82       // org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-    #6 = String             #83           // text cannot be null or blank\n-    #7 = Methodref          #84.#85       // org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-    #8 = InvokeDynamic      #1:#80        // #1:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-    #9 = InvokeDynamic      #2:#80        // #2:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #10 = String             #88           // metadata cannot be null\n-   #11 = String             #89           // text\n-   #12 = Methodref          #33.#90       // dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-   #13 = Class              #91           // dev/langchain4j/data/document/Metadata\n-   #14 = Methodref          #13.#73       // dev/langchain4j/data/document/Metadata.\"<init>\":()V\n-   #15 = String             #92           // abc\n-   #16 = String             #93           // 123\n-   #17 = Methodref          #13.#94       // dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-   #18 = String             #95           // xyz\n-   #19 = Methodref          #33.#96       // dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n-   #20 = Methodref          #38.#97       // dev/langchain4j/data/segment/TextSegmentTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #21 = Methodref          #22.#98       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #22 = Class              #99           // org/assertj/core/api/ObjectAssert\n-   #23 = Methodref          #22.#100      // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #24 = Methodref          #22.#101      // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #25 = Methodref          #22.#102      // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #26 = Methodref          #33.#103      // dev/langchain4j/data/segment/TextSegment.text:()Ljava/lang/String;\n-   #27 = Methodref          #38.#104      // dev/langchain4j/data/segment/TextSegmentTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #28 = Methodref          #105.#106     // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #29 = Methodref          #33.#107      // dev/langchain4j/data/segment/TextSegment.metadata:()Ldev/langchain4j/data/document/Metadata;\n-   #30 = Methodref          #33.#108      // dev/langchain4j/data/segment/TextSegment.metadata:(Ljava/lang/String;)Ljava/lang/String;\n-   #31 = String             #109          // TextSegment { text = \\\"text\\\" metadata = {abc=123} }\n-   #32 = Methodref          #22.#110      // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-   #33 = Class              #111          // dev/langchain4j/data/segment/TextSegment\n-   #34 = Methodref          #33.#112      // dev/langchain4j/data/segment/TextSegment.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n-   #35 = Methodref          #33.#113      // dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-   #36 = Methodref          #33.#114      // dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n-   #37 = String             #115          //\n-   #38 = Class              #116          // dev/langchain4j/data/segment/TextSegmentTest\n-   #39 = Class              #117          // java/lang/Object\n-   #40 = Class              #118          // org/assertj/core/api/WithAssertions\n-   #41 = Utf8               <init>\n-   #42 = Utf8               ()V\n-   #43 = Utf8               Code\n-   #44 = Utf8               LineNumberTable\n-   #45 = Utf8               LocalVariableTable\n-   #46 = Utf8               this\n-   #47 = Utf8               Ldev/langchain4j/data/segment/TextSegmentTest;\n-   #48 = Utf8               test_blank\n-   #49 = Utf8               RuntimeVisibleAnnotations\n-   #50 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #51 = Utf8               test_equals_hashCode\n-   #52 = Utf8               ts1\n-   #53 = Utf8               Ldev/langchain4j/data/segment/TextSegment;\n-   #54 = Utf8               ts2\n-   #55 = Utf8               m1\n-   #56 = Utf8               Ldev/langchain4j/data/document/Metadata;\n-   #57 = Utf8               m2\n-   #58 = Utf8               m3\n-   #59 = Utf8               ts3\n-   #60 = Utf8               ts4\n-   #61 = Utf8               ts5\n-   #62 = Utf8               test_accessors\n-   #63 = Utf8               metadata\n-   #64 = Utf8               ts\n-   #65 = Utf8               test_builders\n-   #66 = Utf8               lambda$test_blank$2\n-   #67 = Utf8               Exceptions\n-   #68 = Class              #119          // java/lang/Throwable\n-   #69 = Utf8               lambda$test_blank$1\n-   #70 = Utf8               lambda$test_blank$0\n-   #71 = Utf8               SourceFile\n-   #72 = Utf8               TextSegmentTest.java\n-   #73 = NameAndType        #41:#42       // \"<init>\":()V\n-   #74 = Utf8               java/lang/IllegalArgumentException\n-   #75 = NameAndType        #120:#121     // assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-   #76 = Utf8               BootstrapMethods\n-   #77 = MethodHandle       6:#122        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-   #78 = MethodType         #42           //  ()V\n-   #79 = MethodHandle       6:#123        // REF_invokeStatic dev/langchain4j/data/segment/TextSegmentTest.lambda$test_blank$0:()V\n-   #80 = NameAndType        #124:#128     // call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #81 = Class              #129          // org/assertj/core/api/ThrowableTypeAssert\n-   #82 = NameAndType        #130:#131     // isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #83 = Utf8               text cannot be null or blank\n-   #84 = Class              #132          // org/assertj/core/api/ThrowableAssertAlternative\n-   #85 = NameAndType        #133:#134     // withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #86 = MethodHandle       6:#135        // REF_invokeStatic dev/langchain4j/data/segment/TextSegmentTest.lambda$test_blank$1:()V\n-   #87 = MethodHandle       6:#136        // REF_invokeStatic dev/langchain4j/data/segment/TextSegmentTest.lambda$test_blank$2:()V\n-   #88 = Utf8               metadata cannot be null\n-   #89 = Utf8               text\n-   #90 = NameAndType        #137:#138     // from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-   #91 = Utf8               dev/langchain4j/data/document/Metadata\n-   #92 = Utf8               abc\n-   #93 = Utf8               123\n-   #94 = NameAndType        #139:#140     // add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-   #95 = Utf8               xyz\n-   #96 = NameAndType        #137:#141     // from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n-   #97 = NameAndType        #142:#143     // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #98 = NameAndType        #144:#145     // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #99 = Utf8               org/assertj/core/api/ObjectAssert\n-  #100 = NameAndType        #146:#145     // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #101 = NameAndType        #147:#145     // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #102 = NameAndType        #148:#145     // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #103 = NameAndType        #89:#149      // text:()Ljava/lang/String;\n-  #104 = NameAndType        #142:#150     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #105 = Class              #151          // org/assertj/core/api/AbstractStringAssert\n-  #106 = NameAndType        #144:#150     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #107 = NameAndType        #63:#152      // metadata:()Ldev/langchain4j/data/document/Metadata;\n-  #108 = NameAndType        #63:#153      // metadata:(Ljava/lang/String;)Ljava/lang/String;\n-  #109 = Utf8               TextSegment { text = \\\"text\\\" metadata = {abc=123} }\n-  #110 = NameAndType        #154:#155     // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-  #111 = Utf8               dev/langchain4j/data/segment/TextSegment\n-  #112 = NameAndType        #41:#156      // \"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n-  #113 = NameAndType        #157:#138     // textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #114 = NameAndType        #157:#141     // textSegment:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n-  #115 = Utf8\n-  #116 = Utf8               dev/langchain4j/data/segment/TextSegmentTest\n-  #117 = Utf8               java/lang/Object\n-  #118 = Utf8               org/assertj/core/api/WithAssertions\n-  #119 = Utf8               java/lang/Throwable\n-  #120 = Utf8               assertThatExceptionOfType\n-  #121 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-  #122 = Methodref          #158.#159     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #123 = Methodref          #38.#160      // dev/langchain4j/data/segment/TextSegmentTest.lambda$test_blank$0:()V\n-  #124 = Utf8               call\n-  #125 = Class              #162          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #126 = Utf8               ThrowingCallable\n-  #127 = Utf8               InnerClasses\n-  #128 = Utf8               ()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-  #129 = Utf8               org/assertj/core/api/ThrowableTypeAssert\n-  #130 = Utf8               isThrownBy\n-  #131 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #132 = Utf8               org/assertj/core/api/ThrowableAssertAlternative\n-  #133 = Utf8               withMessageContaining\n-  #134 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #135 = Methodref          #38.#163      // dev/langchain4j/data/segment/TextSegmentTest.lambda$test_blank$1:()V\n-  #136 = Methodref          #38.#164      // dev/langchain4j/data/segment/TextSegmentTest.lambda$test_blank$2:()V\n-  #137 = Utf8               from\n-  #138 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #139 = Utf8               add\n-  #140 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-  #141 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n-  #142 = Utf8               assertThat\n-  #143 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #144 = Utf8               isEqualTo\n-  #145 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #146 = Utf8               hasSameHashCodeAs\n-  #147 = Utf8               isNotEqualTo\n-  #148 = Utf8               doesNotHaveSameHashCodeAs\n-  #149 = Utf8               ()Ljava/lang/String;\n-  #150 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #151 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #152 = Utf8               ()Ldev/langchain4j/data/document/Metadata;\n-  #153 = Utf8               (Ljava/lang/String;)Ljava/lang/String;\n-  #154 = Utf8               hasToString\n-  #155 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-  #156 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n-  #157 = Utf8               textSegment\n-  #158 = Class              #165          // java/lang/invoke/LambdaMetafactory\n-  #159 = NameAndType        #166:#169     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #160 = NameAndType        #70:#42       // lambda$test_blank$0:()V\n-  #161 = Class              #170          // org/assertj/core/api/ThrowableAssert\n-  #162 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #163 = NameAndType        #69:#42       // lambda$test_blank$1:()V\n-  #164 = NameAndType        #66:#42       // lambda$test_blank$2:()V\n-  #165 = Utf8               java/lang/invoke/LambdaMetafactory\n-  #166 = Utf8               metafactory\n-  #167 = Class              #172          // java/lang/invoke/MethodHandles$Lookup\n-  #168 = Utf8               Lookup\n-  #169 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #170 = Utf8               org/assertj/core/api/ThrowableAssert\n-  #171 = Class              #173          // java/lang/invoke/MethodHandles\n-  #172 = Utf8               java/lang/invoke/MethodHandles$Lookup\n-  #173 = Utf8               java/lang/invoke/MethodHandles\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Class              #8            // java/lang/IllegalArgumentException\n+    #8 = Utf8               java/lang/IllegalArgumentException\n+    #9 = Methodref          #10.#11       // dev/langchain4j/data/segment/TextSegmentTest.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #10 = Class              #12           // dev/langchain4j/data/segment/TextSegmentTest\n+   #11 = NameAndType        #13:#14       // assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #12 = Utf8               dev/langchain4j/data/segment/TextSegmentTest\n+   #13 = Utf8               assertThatExceptionOfType\n+   #14 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #15 = InvokeDynamic      #0:#16        // #0:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #16 = NameAndType        #17:#18       // call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #17 = Utf8               call\n+   #18 = Utf8               ()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #19 = Methodref          #20.#21       // org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #20 = Class              #22           // org/assertj/core/api/ThrowableTypeAssert\n+   #21 = NameAndType        #23:#24       // isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #22 = Utf8               org/assertj/core/api/ThrowableTypeAssert\n+   #23 = Utf8               isThrownBy\n+   #24 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #25 = String             #26           // text cannot be null or blank\n+   #26 = Utf8               text cannot be null or blank\n+   #27 = Methodref          #28.#29       // org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #28 = Class              #30           // org/assertj/core/api/ThrowableAssertAlternative\n+   #29 = NameAndType        #31:#32       // withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #30 = Utf8               org/assertj/core/api/ThrowableAssertAlternative\n+   #31 = Utf8               withMessageContaining\n+   #32 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #33 = InvokeDynamic      #1:#16        // #1:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #34 = InvokeDynamic      #2:#16        // #2:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #35 = String             #36           // metadata cannot be null\n+   #36 = Utf8               metadata cannot be null\n+   #37 = String             #38           // text\n+   #38 = Utf8               text\n+   #39 = Methodref          #40.#41       // dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+   #40 = Class              #42           // dev/langchain4j/data/segment/TextSegment\n+   #41 = NameAndType        #43:#44       // from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+   #42 = Utf8               dev/langchain4j/data/segment/TextSegment\n+   #43 = Utf8               from\n+   #44 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+   #45 = Class              #46           // dev/langchain4j/data/document/Metadata\n+   #46 = Utf8               dev/langchain4j/data/document/Metadata\n+   #47 = Methodref          #45.#3        // dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+   #48 = String             #49           // abc\n+   #49 = Utf8               abc\n+   #50 = String             #51           // 123\n+   #51 = Utf8               123\n+   #52 = Methodref          #45.#53       // dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+   #53 = NameAndType        #54:#55       // add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+   #54 = Utf8               add\n+   #55 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+   #56 = String             #57           // xyz\n+   #57 = Utf8               xyz\n+   #58 = Methodref          #40.#59       // dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n+   #59 = NameAndType        #43:#60       // from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n+   #60 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n+   #61 = Methodref          #10.#62       // dev/langchain4j/data/segment/TextSegmentTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #62 = NameAndType        #63:#64       // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #63 = Utf8               assertThat\n+   #64 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #65 = Methodref          #66.#67       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #66 = Class              #68           // org/assertj/core/api/ObjectAssert\n+   #67 = NameAndType        #69:#70       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #68 = Utf8               org/assertj/core/api/ObjectAssert\n+   #69 = Utf8               isEqualTo\n+   #70 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #71 = Methodref          #66.#72       // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #72 = NameAndType        #73:#70       // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #73 = Utf8               hasSameHashCodeAs\n+   #74 = Methodref          #66.#75       // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #75 = NameAndType        #76:#70       // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #76 = Utf8               isNotEqualTo\n+   #77 = Methodref          #66.#78       // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #78 = NameAndType        #79:#70       // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #79 = Utf8               doesNotHaveSameHashCodeAs\n+   #80 = Methodref          #40.#81       // dev/langchain4j/data/segment/TextSegment.text:()Ljava/lang/String;\n+   #81 = NameAndType        #38:#82       // text:()Ljava/lang/String;\n+   #82 = Utf8               ()Ljava/lang/String;\n+   #83 = Methodref          #10.#84       // dev/langchain4j/data/segment/TextSegmentTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #84 = NameAndType        #63:#85       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #85 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #86 = Methodref          #87.#88       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #87 = Class              #89           // org/assertj/core/api/AbstractStringAssert\n+   #88 = NameAndType        #69:#85       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #89 = Utf8               org/assertj/core/api/AbstractStringAssert\n+   #90 = Methodref          #40.#91       // dev/langchain4j/data/segment/TextSegment.metadata:()Ldev/langchain4j/data/document/Metadata;\n+   #91 = NameAndType        #92:#93       // metadata:()Ldev/langchain4j/data/document/Metadata;\n+   #92 = Utf8               metadata\n+   #93 = Utf8               ()Ldev/langchain4j/data/document/Metadata;\n+   #94 = Methodref          #40.#95       // dev/langchain4j/data/segment/TextSegment.metadata:(Ljava/lang/String;)Ljava/lang/String;\n+   #95 = NameAndType        #92:#96       // metadata:(Ljava/lang/String;)Ljava/lang/String;\n+   #96 = Utf8               (Ljava/lang/String;)Ljava/lang/String;\n+   #97 = String             #98           // TextSegment { text = \\\"text\\\" metadata = {abc=123} }\n+   #98 = Utf8               TextSegment { text = \\\"text\\\" metadata = {abc=123} }\n+   #99 = Methodref          #66.#100      // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+  #100 = NameAndType        #101:#102     // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+  #101 = Utf8               hasToString\n+  #102 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+  #103 = Methodref          #40.#104      // dev/langchain4j/data/segment/TextSegment.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+  #104 = NameAndType        #5:#105       // \"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+  #105 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+  #106 = Methodref          #40.#107      // dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #107 = NameAndType        #108:#44      // textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #108 = Utf8               textSegment\n+  #109 = Methodref          #40.#110      // dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n+  #110 = NameAndType        #108:#60      // textSegment:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n+  #111 = String             #112          //\n+  #112 = Utf8\n+  #113 = Class              #114          // org/assertj/core/api/WithAssertions\n+  #114 = Utf8               org/assertj/core/api/WithAssertions\n+  #115 = Utf8               Code\n+  #116 = Utf8               LineNumberTable\n+  #117 = Utf8               LocalVariableTable\n+  #118 = Utf8               this\n+  #119 = Utf8               Ldev/langchain4j/data/segment/TextSegmentTest;\n+  #120 = Utf8               test_blank\n+  #121 = Utf8               RuntimeVisibleAnnotations\n+  #122 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #123 = Utf8               test_equals_hashCode\n+  #124 = Utf8               ts1\n+  #125 = Utf8               Ldev/langchain4j/data/segment/TextSegment;\n+  #126 = Utf8               ts2\n+  #127 = Utf8               m1\n+  #128 = Utf8               Ldev/langchain4j/data/document/Metadata;\n+  #129 = Utf8               m2\n+  #130 = Utf8               m3\n+  #131 = Utf8               ts3\n+  #132 = Utf8               ts4\n+  #133 = Utf8               ts5\n+  #134 = Utf8               test_accessors\n+  #135 = Utf8               ts\n+  #136 = Utf8               test_builders\n+  #137 = Utf8               lambda$test_blank$2\n+  #138 = Utf8               Exceptions\n+  #139 = Class              #140          // java/lang/Throwable\n+  #140 = Utf8               java/lang/Throwable\n+  #141 = Utf8               lambda$test_blank$1\n+  #142 = Utf8               lambda$test_blank$0\n+  #143 = Utf8               SourceFile\n+  #144 = Utf8               TextSegmentTest.java\n+  #145 = Utf8               BootstrapMethods\n+  #146 = MethodHandle       6:#147        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #147 = Methodref          #148.#149     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #148 = Class              #150          // java/lang/invoke/LambdaMetafactory\n+  #149 = NameAndType        #151:#152     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #150 = Utf8               java/lang/invoke/LambdaMetafactory\n+  #151 = Utf8               metafactory\n+  #152 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #153 = MethodType         #6            //  ()V\n+  #154 = MethodHandle       6:#155        // REF_invokeStatic dev/langchain4j/data/segment/TextSegmentTest.lambda$test_blank$0:()V\n+  #155 = Methodref          #10.#156      // dev/langchain4j/data/segment/TextSegmentTest.lambda$test_blank$0:()V\n+  #156 = NameAndType        #142:#6       // lambda$test_blank$0:()V\n+  #157 = MethodHandle       6:#158        // REF_invokeStatic dev/langchain4j/data/segment/TextSegmentTest.lambda$test_blank$1:()V\n+  #158 = Methodref          #10.#159      // dev/langchain4j/data/segment/TextSegmentTest.lambda$test_blank$1:()V\n+  #159 = NameAndType        #141:#6       // lambda$test_blank$1:()V\n+  #160 = MethodHandle       6:#161        // REF_invokeStatic dev/langchain4j/data/segment/TextSegmentTest.lambda$test_blank$2:()V\n+  #161 = Methodref          #10.#162      // dev/langchain4j/data/segment/TextSegmentTest.lambda$test_blank$2:()V\n+  #162 = NameAndType        #137:#6       // lambda$test_blank$2:()V\n+  #163 = Utf8               InnerClasses\n+  #164 = Class              #165          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n+  #165 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n+  #166 = Class              #167          // org/assertj/core/api/ThrowableAssert\n+  #167 = Utf8               org/assertj/core/api/ThrowableAssert\n+  #168 = Utf8               ThrowingCallable\n+  #169 = Class              #170          // java/lang/invoke/MethodHandles$Lookup\n+  #170 = Utf8               java/lang/invoke/MethodHandles$Lookup\n+  #171 = Class              #172          // java/lang/invoke/MethodHandles\n+  #172 = Utf8               java/lang/invoke/MethodHandles\n+  #173 = Utf8               Lookup\n {\n   dev.langchain4j.data.segment.TextSegmentTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -198,36 +198,36 @@\n \n   public void test_blank();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=1, args_size=1\n          0: aload_0\n-         1: ldc           #2                  // class java/lang/IllegalArgumentException\n-         3: invokevirtual #3                  // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-         6: invokedynamic #4,  0              // InvokeDynamic #0:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-        11: invokevirtual #5                  // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-        14: ldc           #6                  // String text cannot be null or blank\n-        16: invokevirtual #7                  // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+         1: ldc           #7                  // class java/lang/IllegalArgumentException\n+         3: invokevirtual #9                  // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+         6: invokedynamic #15,  0             // InvokeDynamic #0:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+        11: invokevirtual #19                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        14: ldc           #25                 // String text cannot be null or blank\n+        16: invokevirtual #27                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n         19: pop\n         20: aload_0\n-        21: ldc           #2                  // class java/lang/IllegalArgumentException\n-        23: invokevirtual #3                  // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-        26: invokedynamic #8,  0              // InvokeDynamic #1:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-        31: invokevirtual #5                  // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-        34: ldc           #6                  // String text cannot be null or blank\n-        36: invokevirtual #7                  // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        21: ldc           #7                  // class java/lang/IllegalArgumentException\n+        23: invokevirtual #9                  // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+        26: invokedynamic #33,  0             // InvokeDynamic #1:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+        31: invokevirtual #19                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        34: ldc           #25                 // String text cannot be null or blank\n+        36: invokevirtual #27                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n         39: pop\n         40: aload_0\n-        41: ldc           #2                  // class java/lang/IllegalArgumentException\n-        43: invokevirtual #3                  // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-        46: invokedynamic #9,  0              // InvokeDynamic #2:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-        51: invokevirtual #5                  // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-        54: ldc           #10                 // String metadata cannot be null\n-        56: invokevirtual #7                  // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        41: ldc           #7                  // class java/lang/IllegalArgumentException\n+        43: invokevirtual #9                  // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+        46: invokedynamic #34,  0             // InvokeDynamic #2:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+        51: invokevirtual #19                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        54: ldc           #35                 // String metadata cannot be null\n+        56: invokevirtual #27                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n         59: pop\n         60: return\n       LineNumberTable:\n         line 10: 0\n         line 11: 11\n         line 12: 16\n         line 13: 20\n@@ -237,108 +237,108 @@\n         line 18: 51\n         line 19: 56\n         line 20: 60\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      61     0  this   Ldev/langchain4j/data/segment/TextSegmentTest;\n     RuntimeVisibleAnnotations:\n-      0: #50()\n+      0: #122()\n         org.junit.jupiter.api.Test\n \n   public void test_equals_hashCode();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=9, args_size=1\n-         0: ldc           #11                 // String text\n-         2: invokestatic  #12                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+         0: ldc           #37                 // String text\n+         2: invokestatic  #39                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n          5: astore_1\n-         6: ldc           #11                 // String text\n-         8: invokestatic  #12                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+         6: ldc           #37                 // String text\n+         8: invokestatic  #39                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n         11: astore_2\n-        12: new           #13                 // class dev/langchain4j/data/document/Metadata\n+        12: new           #45                 // class dev/langchain4j/data/document/Metadata\n         15: dup\n-        16: invokespecial #14                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+        16: invokespecial #47                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n         19: astore_3\n         20: aload_3\n-        21: ldc           #15                 // String abc\n-        23: ldc           #16                 // String 123\n-        25: invokevirtual #17                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        21: ldc           #48                 // String abc\n+        23: ldc           #50                 // String 123\n+        25: invokevirtual #52                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n         28: pop\n-        29: new           #13                 // class dev/langchain4j/data/document/Metadata\n+        29: new           #45                 // class dev/langchain4j/data/document/Metadata\n         32: dup\n-        33: invokespecial #14                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+        33: invokespecial #47                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n         36: astore        4\n         38: aload         4\n-        40: ldc           #15                 // String abc\n-        42: ldc           #16                 // String 123\n-        44: invokevirtual #17                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        40: ldc           #48                 // String abc\n+        42: ldc           #50                 // String 123\n+        44: invokevirtual #52                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n         47: pop\n-        48: new           #13                 // class dev/langchain4j/data/document/Metadata\n+        48: new           #45                 // class dev/langchain4j/data/document/Metadata\n         51: dup\n-        52: invokespecial #14                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+        52: invokespecial #47                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n         55: astore        5\n         57: aload         5\n-        59: ldc           #15                 // String abc\n-        61: ldc           #18                 // String xyz\n-        63: invokevirtual #17                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        59: ldc           #48                 // String abc\n+        61: ldc           #56                 // String xyz\n+        63: invokevirtual #52                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n         66: pop\n-        67: ldc           #11                 // String text\n+        67: ldc           #37                 // String text\n         69: aload_3\n-        70: invokestatic  #19                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n+        70: invokestatic  #58                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n         73: astore        6\n-        75: ldc           #11                 // String text\n+        75: ldc           #37                 // String text\n         77: aload_3\n-        78: invokestatic  #19                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n+        78: invokestatic  #58                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n         81: astore        7\n-        83: ldc           #11                 // String text\n+        83: ldc           #37                 // String text\n         85: aload         4\n-        87: invokestatic  #19                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n+        87: invokestatic  #58                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n         90: astore        8\n         92: aload_0\n         93: aload_1\n-        94: invokevirtual #20                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        94: invokevirtual #61                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         97: aload_1\n-        98: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       101: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n+        98: invokevirtual #65                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       101: checkcast     #66                 // class org/assertj/core/api/ObjectAssert\n        104: aload_1\n-       105: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       108: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n+       105: invokevirtual #71                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       108: checkcast     #66                 // class org/assertj/core/api/ObjectAssert\n        111: aload_2\n-       112: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       115: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n+       112: invokevirtual #65                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       115: checkcast     #66                 // class org/assertj/core/api/ObjectAssert\n        118: aload_2\n-       119: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       122: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n+       119: invokevirtual #71                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       122: checkcast     #66                 // class org/assertj/core/api/ObjectAssert\n        125: aload         6\n-       127: invokevirtual #24                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       130: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n+       127: invokevirtual #74                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       130: checkcast     #66                 // class org/assertj/core/api/ObjectAssert\n        133: aload         6\n-       135: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       135: invokevirtual #77                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        138: pop\n        139: aload_0\n        140: aload         6\n-       142: invokevirtual #20                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       142: invokevirtual #61                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        145: aload         6\n-       147: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       150: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n+       147: invokevirtual #65                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       150: checkcast     #66                 // class org/assertj/core/api/ObjectAssert\n        153: aload         6\n-       155: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       158: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n+       155: invokevirtual #71                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       158: checkcast     #66                 // class org/assertj/core/api/ObjectAssert\n        161: aload         7\n-       163: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       166: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n+       163: invokevirtual #65                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       166: checkcast     #66                 // class org/assertj/core/api/ObjectAssert\n        169: aload         7\n-       171: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       174: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n+       171: invokevirtual #71                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       174: checkcast     #66                 // class org/assertj/core/api/ObjectAssert\n        177: aload         8\n-       179: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       182: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n+       179: invokevirtual #65                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       182: checkcast     #66                 // class org/assertj/core/api/ObjectAssert\n        185: aload         8\n-       187: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       187: invokevirtual #71                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        190: pop\n        191: return\n       LineNumberTable:\n         line 24: 0\n         line 25: 6\n         line 27: 12\n         line 28: 20\n@@ -372,62 +372,62 @@\n            20     172     3    m1   Ldev/langchain4j/data/document/Metadata;\n            38     154     4    m2   Ldev/langchain4j/data/document/Metadata;\n            57     135     5    m3   Ldev/langchain4j/data/document/Metadata;\n            75     117     6   ts3   Ldev/langchain4j/data/segment/TextSegment;\n            83     109     7   ts4   Ldev/langchain4j/data/segment/TextSegment;\n            92     100     8   ts5   Ldev/langchain4j/data/segment/TextSegment;\n     RuntimeVisibleAnnotations:\n-      0: #50()\n+      0: #122()\n         org.junit.jupiter.api.Test\n \n   public void test_accessors();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=3, args_size=1\n-         0: new           #13                 // class dev/langchain4j/data/document/Metadata\n+         0: new           #45                 // class dev/langchain4j/data/document/Metadata\n          3: dup\n-         4: invokespecial #14                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+         4: invokespecial #47                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n          7: astore_1\n          8: aload_1\n-         9: ldc           #15                 // String abc\n-        11: ldc           #16                 // String 123\n-        13: invokevirtual #17                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+         9: ldc           #48                 // String abc\n+        11: ldc           #50                 // String 123\n+        13: invokevirtual #52                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n         16: pop\n-        17: ldc           #11                 // String text\n+        17: ldc           #37                 // String text\n         19: aload_1\n-        20: invokestatic  #19                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n+        20: invokestatic  #58                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n         23: astore_2\n         24: aload_0\n         25: aload_2\n-        26: invokevirtual #26                 // Method dev/langchain4j/data/segment/TextSegment.text:()Ljava/lang/String;\n-        29: invokevirtual #27                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        32: ldc           #11                 // String text\n-        34: invokevirtual #28                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        26: invokevirtual #80                 // Method dev/langchain4j/data/segment/TextSegment.text:()Ljava/lang/String;\n+        29: invokevirtual #83                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        32: ldc           #37                 // String text\n+        34: invokevirtual #86                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         37: pop\n         38: aload_0\n         39: aload_2\n-        40: invokevirtual #29                 // Method dev/langchain4j/data/segment/TextSegment.metadata:()Ldev/langchain4j/data/document/Metadata;\n-        43: invokevirtual #20                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        40: invokevirtual #90                 // Method dev/langchain4j/data/segment/TextSegment.metadata:()Ldev/langchain4j/data/document/Metadata;\n+        43: invokevirtual #61                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         46: aload_1\n-        47: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        47: invokevirtual #65                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         50: pop\n         51: aload_0\n         52: aload_2\n-        53: ldc           #15                 // String abc\n-        55: invokevirtual #30                 // Method dev/langchain4j/data/segment/TextSegment.metadata:(Ljava/lang/String;)Ljava/lang/String;\n-        58: invokevirtual #27                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        61: ldc           #16                 // String 123\n-        63: invokevirtual #28                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        53: ldc           #48                 // String abc\n+        55: invokevirtual #94                 // Method dev/langchain4j/data/segment/TextSegment.metadata:(Ljava/lang/String;)Ljava/lang/String;\n+        58: invokevirtual #83                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        61: ldc           #50                 // String 123\n+        63: invokevirtual #86                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         66: pop\n         67: aload_0\n         68: aload_2\n-        69: invokevirtual #20                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        72: ldc           #31                 // String TextSegment { text = \\\"text\\\" metadata = {abc=123} }\n-        74: invokevirtual #32                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+        69: invokevirtual #61                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        72: ldc           #97                 // String TextSegment { text = \\\"text\\\" metadata = {abc=123} }\n+        74: invokevirtual #99                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n         77: pop\n         78: return\n       LineNumberTable:\n         line 58: 0\n         line 59: 8\n         line 60: 17\n         line 62: 24\n@@ -438,78 +438,78 @@\n         line 68: 78\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      79     0  this   Ldev/langchain4j/data/segment/TextSegmentTest;\n             8      71     1 metadata   Ldev/langchain4j/data/document/Metadata;\n            24      55     2    ts   Ldev/langchain4j/data/segment/TextSegment;\n     RuntimeVisibleAnnotations:\n-      0: #50()\n+      0: #122()\n         org.junit.jupiter.api.Test\n \n   public void test_builders();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=6, locals=2, args_size=1\n          0: aload_0\n-         1: new           #33                 // class dev/langchain4j/data/segment/TextSegment\n+         1: new           #40                 // class dev/langchain4j/data/segment/TextSegment\n          4: dup\n-         5: ldc           #15                 // String abc\n-         7: new           #13                 // class dev/langchain4j/data/document/Metadata\n+         5: ldc           #48                 // String abc\n+         7: new           #45                 // class dev/langchain4j/data/document/Metadata\n         10: dup\n-        11: invokespecial #14                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n-        14: invokespecial #34                 // Method dev/langchain4j/data/segment/TextSegment.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n-        17: invokevirtual #20                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        20: ldc           #15                 // String abc\n-        22: invokestatic  #12                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-        25: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        28: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n-        31: ldc           #15                 // String abc\n-        33: invokestatic  #35                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-        36: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        39: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n-        42: ldc           #15                 // String abc\n-        44: new           #13                 // class dev/langchain4j/data/document/Metadata\n+        11: invokespecial #47                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+        14: invokespecial #103                // Method dev/langchain4j/data/segment/TextSegment.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+        17: invokevirtual #61                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        20: ldc           #48                 // String abc\n+        22: invokestatic  #39                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+        25: invokevirtual #65                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        28: checkcast     #66                 // class org/assertj/core/api/ObjectAssert\n+        31: ldc           #48                 // String abc\n+        33: invokestatic  #106                // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+        36: invokevirtual #65                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        39: checkcast     #66                 // class org/assertj/core/api/ObjectAssert\n+        42: ldc           #48                 // String abc\n+        44: new           #45                 // class dev/langchain4j/data/document/Metadata\n         47: dup\n-        48: invokespecial #14                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n-        51: invokestatic  #19                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n-        54: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        57: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n-        60: ldc           #15                 // String abc\n-        62: new           #13                 // class dev/langchain4j/data/document/Metadata\n+        48: invokespecial #47                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+        51: invokestatic  #58                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n+        54: invokevirtual #65                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        57: checkcast     #66                 // class org/assertj/core/api/ObjectAssert\n+        60: ldc           #48                 // String abc\n+        62: new           #45                 // class dev/langchain4j/data/document/Metadata\n         65: dup\n-        66: invokespecial #14                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n-        69: invokestatic  #36                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n-        72: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        66: invokespecial #47                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+        69: invokestatic  #109                // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n+        72: invokevirtual #65                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         75: pop\n-        76: new           #13                 // class dev/langchain4j/data/document/Metadata\n+        76: new           #45                 // class dev/langchain4j/data/document/Metadata\n         79: dup\n-        80: invokespecial #14                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+        80: invokespecial #47                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n         83: astore_1\n         84: aload_1\n-        85: ldc           #15                 // String abc\n-        87: ldc           #16                 // String 123\n-        89: invokevirtual #17                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        85: ldc           #48                 // String abc\n+        87: ldc           #50                 // String 123\n+        89: invokevirtual #52                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n         92: pop\n         93: aload_0\n-        94: new           #33                 // class dev/langchain4j/data/segment/TextSegment\n+        94: new           #40                 // class dev/langchain4j/data/segment/TextSegment\n         97: dup\n-        98: ldc           #15                 // String abc\n+        98: ldc           #48                 // String abc\n        100: aload_1\n-       101: invokespecial #34                 // Method dev/langchain4j/data/segment/TextSegment.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n-       104: invokevirtual #20                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-       107: ldc           #15                 // String abc\n+       101: invokespecial #103                // Method dev/langchain4j/data/segment/TextSegment.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+       104: invokevirtual #61                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       107: ldc           #48                 // String abc\n        109: aload_1\n-       110: invokestatic  #19                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n-       113: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       116: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n-       119: ldc           #15                 // String abc\n+       110: invokestatic  #58                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n+       113: invokevirtual #65                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       116: checkcast     #66                 // class org/assertj/core/api/ObjectAssert\n+       119: ldc           #48                 // String abc\n        121: aload_1\n-       122: invokestatic  #36                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n-       125: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       122: invokestatic  #109                // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n+       125: invokevirtual #65                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        128: pop\n        129: return\n       LineNumberTable:\n         line 72: 0\n         line 73: 22\n         line 74: 33\n         line 75: 51\n@@ -521,73 +521,73 @@\n         line 83: 122\n         line 84: 129\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     130     0  this   Ldev/langchain4j/data/segment/TextSegmentTest;\n            84      46     1 metadata   Ldev/langchain4j/data/document/Metadata;\n     RuntimeVisibleAnnotations:\n-      0: #50()\n+      0: #122()\n         org.junit.jupiter.api.Test\n \n   private static void lambda$test_blank$2() throws java.lang.Throwable;\n     descriptor: ()V\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=2, locals=0, args_size=0\n-         0: ldc           #11                 // String text\n+         0: ldc           #37                 // String text\n          2: aconst_null\n-         3: invokestatic  #19                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n+         3: invokestatic  #58                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n          6: pop\n          7: return\n       LineNumberTable:\n         line 18: 0\n     Exceptions:\n       throws java.lang.Throwable\n \n   private static void lambda$test_blank$1() throws java.lang.Throwable;\n     descriptor: ()V\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=1, locals=0, args_size=0\n          0: aconst_null\n-         1: invokestatic  #12                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+         1: invokestatic  #39                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n          4: pop\n          5: return\n       LineNumberTable:\n         line 14: 0\n     Exceptions:\n       throws java.lang.Throwable\n \n   private static void lambda$test_blank$0() throws java.lang.Throwable;\n     descriptor: ()V\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=1, locals=0, args_size=0\n-         0: ldc           #37                 // String\n-         2: invokestatic  #12                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+         0: ldc           #111                // String\n+         2: invokestatic  #39                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n          5: pop\n          6: return\n       LineNumberTable:\n         line 11: 0\n     Exceptions:\n       throws java.lang.Throwable\n }\n SourceFile: \"TextSegmentTest.java\"\n-InnerClasses:\n-  public static #126= #125 of #161;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n-  public static final #168= #167 of #171; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n BootstrapMethods:\n-  0: #77 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  0: #146 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #78 ()V\n-      #79 REF_invokeStatic dev/langchain4j/data/segment/TextSegmentTest.lambda$test_blank$0:()V\n-      #78 ()V\n-  1: #77 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #153 ()V\n+      #154 REF_invokeStatic dev/langchain4j/data/segment/TextSegmentTest.lambda$test_blank$0:()V\n+      #153 ()V\n+  1: #146 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #78 ()V\n-      #86 REF_invokeStatic dev/langchain4j/data/segment/TextSegmentTest.lambda$test_blank$1:()V\n-      #78 ()V\n-  2: #77 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #153 ()V\n+      #157 REF_invokeStatic dev/langchain4j/data/segment/TextSegmentTest.lambda$test_blank$1:()V\n+      #153 ()V\n+  2: #146 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #78 ()V\n-      #87 REF_invokeStatic dev/langchain4j/data/segment/TextSegmentTest.lambda$test_blank$2:()V\n-      #78 ()V\n+      #153 ()V\n+      #160 REF_invokeStatic dev/langchain4j/data/segment/TextSegmentTest.lambda$test_blank$2:()V\n+      #153 ()V\n+InnerClasses:\n+  public static #168= #164 of #166;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n+  public static final #173= #169 of #171; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n"}]}, {"source1": "dev/langchain4j/data/segment/TextSegmentTransformerTest$LowercaseFnordTransformer.class", "source2": "dev/langchain4j/data/segment/TextSegmentTransformerTest$LowercaseFnordTransformer.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,71 +1,70 @@\n-  SHA-256 checksum cb2c27cdece4df166c6495a783a58ed91b21bd277665d7117c648b3c42c82853\n+  SHA-256 checksum 81dc0de773ffac02ea8f459b3a5e5b912a99b6e3b5bc23716159e45933cfc08a\n   Compiled from \"TextSegmentTransformerTest.java\"\n public class dev.langchain4j.data.segment.TextSegmentTransformerTest$LowercaseFnordTransformer implements dev.langchain4j.data.segment.TextSegmentTransformer\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #8                          // dev/langchain4j/data/segment/TextSegmentTransformerTest$LowercaseFnordTransformer\n-  super_class: #9                         // java/lang/Object\n+  this_class: #32                         // dev/langchain4j/data/segment/TextSegmentTransformerTest$LowercaseFnordTransformer\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 2\n Constant pool:\n-   #1 = Methodref          #9.#30         // java/lang/Object.\"<init>\":()V\n-   #2 = Methodref          #31.#32        // dev/langchain4j/data/segment/TextSegment.text:()Ljava/lang/String;\n-   #3 = Methodref          #33.#34        // java/lang/String.toLowerCase:()Ljava/lang/String;\n-   #4 = String             #35            // fnord\n-   #5 = Methodref          #33.#36        // java/lang/String.contains:(Ljava/lang/CharSequence;)Z\n-   #6 = Methodref          #31.#37        // dev/langchain4j/data/segment/TextSegment.metadata:()Ldev/langchain4j/data/document/Metadata;\n-   #7 = Methodref          #31.#38        // dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n-   #8 = Class              #40            // dev/langchain4j/data/segment/TextSegmentTransformerTest$LowercaseFnordTransformer\n-   #9 = Class              #41            // java/lang/Object\n-  #10 = Class              #42            // dev/langchain4j/data/segment/TextSegmentTransformer\n-  #11 = Utf8               <init>\n-  #12 = Utf8               ()V\n-  #13 = Utf8               Code\n-  #14 = Utf8               LineNumberTable\n-  #15 = Utf8               LocalVariableTable\n-  #16 = Utf8               this\n-  #17 = Utf8               LowercaseFnordTransformer\n-  #18 = Utf8               InnerClasses\n-  #19 = Utf8               Ldev/langchain4j/data/segment/TextSegmentTransformerTest$LowercaseFnordTransformer;\n-  #20 = Utf8               transform\n-  #21 = Utf8               (Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/data/segment/TextSegment;\n-  #22 = Utf8               segment\n-  #23 = Utf8               Ldev/langchain4j/data/segment/TextSegment;\n-  #24 = Utf8               result\n-  #25 = Utf8               Ljava/lang/String;\n-  #26 = Utf8               StackMapTable\n-  #27 = Class              #43            // java/lang/String\n-  #28 = Utf8               SourceFile\n-  #29 = Utf8               TextSegmentTransformerTest.java\n-  #30 = NameAndType        #11:#12        // \"<init>\":()V\n-  #31 = Class              #44            // dev/langchain4j/data/segment/TextSegment\n-  #32 = NameAndType        #45:#46        // text:()Ljava/lang/String;\n-  #33 = Class              #43            // java/lang/String\n-  #34 = NameAndType        #47:#46        // toLowerCase:()Ljava/lang/String;\n-  #35 = Utf8               fnord\n-  #36 = NameAndType        #48:#49        // contains:(Ljava/lang/CharSequence;)Z\n-  #37 = NameAndType        #50:#51        // metadata:()Ldev/langchain4j/data/document/Metadata;\n-  #38 = NameAndType        #52:#53        // from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n-  #39 = Class              #54            // dev/langchain4j/data/segment/TextSegmentTransformerTest\n-  #40 = Utf8               dev/langchain4j/data/segment/TextSegmentTransformerTest$LowercaseFnordTransformer\n-  #41 = Utf8               java/lang/Object\n-  #42 = Utf8               dev/langchain4j/data/segment/TextSegmentTransformer\n-  #43 = Utf8               java/lang/String\n-  #44 = Utf8               dev/langchain4j/data/segment/TextSegment\n-  #45 = Utf8               text\n-  #46 = Utf8               ()Ljava/lang/String;\n-  #47 = Utf8               toLowerCase\n-  #48 = Utf8               contains\n-  #49 = Utf8               (Ljava/lang/CharSequence;)Z\n-  #50 = Utf8               metadata\n-  #51 = Utf8               ()Ldev/langchain4j/data/document/Metadata;\n-  #52 = Utf8               from\n-  #53 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n-  #54 = Utf8               dev/langchain4j/data/segment/TextSegmentTransformerTest\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Methodref          #8.#9          // dev/langchain4j/data/segment/TextSegment.text:()Ljava/lang/String;\n+   #8 = Class              #10            // dev/langchain4j/data/segment/TextSegment\n+   #9 = NameAndType        #11:#12        // text:()Ljava/lang/String;\n+  #10 = Utf8               dev/langchain4j/data/segment/TextSegment\n+  #11 = Utf8               text\n+  #12 = Utf8               ()Ljava/lang/String;\n+  #13 = Methodref          #14.#15        // java/lang/String.toLowerCase:()Ljava/lang/String;\n+  #14 = Class              #16            // java/lang/String\n+  #15 = NameAndType        #17:#12        // toLowerCase:()Ljava/lang/String;\n+  #16 = Utf8               java/lang/String\n+  #17 = Utf8               toLowerCase\n+  #18 = String             #19            // fnord\n+  #19 = Utf8               fnord\n+  #20 = Methodref          #14.#21        // java/lang/String.contains:(Ljava/lang/CharSequence;)Z\n+  #21 = NameAndType        #22:#23        // contains:(Ljava/lang/CharSequence;)Z\n+  #22 = Utf8               contains\n+  #23 = Utf8               (Ljava/lang/CharSequence;)Z\n+  #24 = Methodref          #8.#25         // dev/langchain4j/data/segment/TextSegment.metadata:()Ldev/langchain4j/data/document/Metadata;\n+  #25 = NameAndType        #26:#27        // metadata:()Ldev/langchain4j/data/document/Metadata;\n+  #26 = Utf8               metadata\n+  #27 = Utf8               ()Ldev/langchain4j/data/document/Metadata;\n+  #28 = Methodref          #8.#29         // dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n+  #29 = NameAndType        #30:#31        // from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n+  #30 = Utf8               from\n+  #31 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n+  #32 = Class              #33            // dev/langchain4j/data/segment/TextSegmentTransformerTest$LowercaseFnordTransformer\n+  #33 = Utf8               dev/langchain4j/data/segment/TextSegmentTransformerTest$LowercaseFnordTransformer\n+  #34 = Class              #35            // dev/langchain4j/data/segment/TextSegmentTransformer\n+  #35 = Utf8               dev/langchain4j/data/segment/TextSegmentTransformer\n+  #36 = Utf8               Code\n+  #37 = Utf8               LineNumberTable\n+  #38 = Utf8               LocalVariableTable\n+  #39 = Utf8               this\n+  #40 = Utf8               Ldev/langchain4j/data/segment/TextSegmentTransformerTest$LowercaseFnordTransformer;\n+  #41 = Utf8               transform\n+  #42 = Utf8               (Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/data/segment/TextSegment;\n+  #43 = Utf8               segment\n+  #44 = Utf8               Ldev/langchain4j/data/segment/TextSegment;\n+  #45 = Utf8               result\n+  #46 = Utf8               Ljava/lang/String;\n+  #47 = Utf8               StackMapTable\n+  #48 = Utf8               SourceFile\n+  #49 = Utf8               TextSegmentTransformerTest.java\n+  #50 = Utf8               InnerClasses\n+  #51 = Class              #52            // dev/langchain4j/data/segment/TextSegmentTransformerTest\n+  #52 = Utf8               dev/langchain4j/data/segment/TextSegmentTransformerTest\n+  #53 = Utf8               LowercaseFnordTransformer\n {\n   public dev.langchain4j.data.segment.TextSegmentTransformerTest$LowercaseFnordTransformer();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -79,27 +78,27 @@\n \n   public dev.langchain4j.data.segment.TextSegment transform(dev.langchain4j.data.segment.TextSegment);\n     descriptor: (Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/data/segment/TextSegment;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=3, args_size=2\n          0: aload_1\n-         1: invokevirtual #2                  // Method dev/langchain4j/data/segment/TextSegment.text:()Ljava/lang/String;\n-         4: invokevirtual #3                  // Method java/lang/String.toLowerCase:()Ljava/lang/String;\n+         1: invokevirtual #7                  // Method dev/langchain4j/data/segment/TextSegment.text:()Ljava/lang/String;\n+         4: invokevirtual #13                 // Method java/lang/String.toLowerCase:()Ljava/lang/String;\n          7: astore_2\n          8: aload_2\n-         9: ldc           #4                  // String fnord\n-        11: invokevirtual #5                  // Method java/lang/String.contains:(Ljava/lang/CharSequence;)Z\n+         9: ldc           #18                 // String fnord\n+        11: invokevirtual #20                 // Method java/lang/String.contains:(Ljava/lang/CharSequence;)Z\n         14: ifeq          19\n         17: aconst_null\n         18: areturn\n         19: aload_2\n         20: aload_1\n-        21: invokevirtual #6                  // Method dev/langchain4j/data/segment/TextSegment.metadata:()Ldev/langchain4j/data/document/Metadata;\n-        24: invokestatic  #7                  // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n+        21: invokevirtual #24                 // Method dev/langchain4j/data/segment/TextSegment.metadata:()Ldev/langchain4j/data/document/Metadata;\n+        24: invokestatic  #28                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n         27: areturn\n       LineNumberTable:\n         line 13: 0\n         line 14: 8\n         line 15: 17\n         line 17: 19\n       LocalVariableTable:\n@@ -110,8 +109,8 @@\n       StackMapTable: number_of_entries = 1\n         frame_type = 252 /* append */\n           offset_delta = 19\n           locals = [ class java/lang/String ]\n }\n SourceFile: \"TextSegmentTransformerTest.java\"\n InnerClasses:\n-  public static #17= #8 of #39;           // LowercaseFnordTransformer=class dev/langchain4j/data/segment/TextSegmentTransformerTest$LowercaseFnordTransformer of class dev/langchain4j/data/segment/TextSegmentTransformerTest\n+  public static #53= #32 of #51;          // LowercaseFnordTransformer=class dev/langchain4j/data/segment/TextSegmentTransformerTest$LowercaseFnordTransformer of class dev/langchain4j/data/segment/TextSegmentTransformerTest\n"}]}, {"source1": "dev/langchain4j/data/segment/TextSegmentTransformerTest.class", "source2": "dev/langchain4j/data/segment/TextSegmentTransformerTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,113 +1,113 @@\n-  SHA-256 checksum b5a365cd3ded065fabf680389003b5ac4f61c5fd93bf1ed93b9022ea2f17ab78\n+  SHA-256 checksum 6a48611329278950f195563b52a09e03d7a0cdce4d85dceb454c1dc4cb67f940\n   Compiled from \"TextSegmentTransformerTest.java\"\n class dev.langchain4j.data.segment.TextSegmentTransformerTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #24                         // dev/langchain4j/data/segment/TextSegmentTransformerTest\n-  super_class: #25                        // java/lang/Object\n+  this_class: #53                         // dev/langchain4j/data/segment/TextSegmentTransformerTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 2\n Constant pool:\n-   #1 = Methodref          #25.#52        // java/lang/Object.\"<init>\":()V\n-   #2 = Class              #53            // dev/langchain4j/data/segment/TextSegmentTransformerTest$LowercaseFnordTransformer\n-   #3 = Methodref          #2.#52         // dev/langchain4j/data/segment/TextSegmentTransformerTest$LowercaseFnordTransformer.\"<init>\":()V\n-   #4 = String             #54            // Text\n-   #5 = Methodref          #18.#55        // dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-   #6 = Methodref          #18.#56        // dev/langchain4j/data/segment/TextSegment.metadata:()Ldev/langchain4j/data/document/Metadata;\n-   #7 = String             #57            // abc\n-   #8 = String             #58            // 123\n-   #9 = Methodref          #59.#60        // dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-  #10 = String             #61            // Segment\n-  #11 = String             #62            // Fnord will be filtered out\n-  #12 = String             #63            // Transformer\n-  #13 = Class              #64            // java/util/ArrayList\n-  #14 = Methodref          #13.#52        // java/util/ArrayList.\"<init>\":()V\n-  #15 = InterfaceMethodref #65.#66        // java/util/List.add:(Ljava/lang/Object;)Z\n-  #16 = InterfaceMethodref #67.#68        // dev/langchain4j/data/segment/TextSegmentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n-  #17 = Methodref          #24.#69        // dev/langchain4j/data/segment/TextSegmentTransformerTest.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #18 = Class              #70            // dev/langchain4j/data/segment/TextSegment\n-  #19 = String             #71            // text\n-  #20 = Methodref          #18.#72        // dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n-  #21 = String             #73            // segment\n-  #22 = String             #37            // transformer\n-  #23 = Methodref          #74.#75        // org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #24 = Class              #76            // dev/langchain4j/data/segment/TextSegmentTransformerTest\n-  #25 = Class              #77            // java/lang/Object\n-  #26 = Class              #78            // org/assertj/core/api/WithAssertions\n-  #27 = Utf8               LowercaseFnordTransformer\n-  #28 = Utf8               InnerClasses\n-  #29 = Utf8               <init>\n-  #30 = Utf8               ()V\n-  #31 = Utf8               Code\n-  #32 = Utf8               LineNumberTable\n-  #33 = Utf8               LocalVariableTable\n-  #34 = Utf8               this\n-  #35 = Utf8               Ldev/langchain4j/data/segment/TextSegmentTransformerTest;\n-  #36 = Utf8               test_transformAll\n-  #37 = Utf8               transformer\n-  #38 = Utf8               Ldev/langchain4j/data/segment/TextSegmentTransformer;\n-  #39 = Utf8               ts1\n-  #40 = Utf8               Ldev/langchain4j/data/segment/TextSegment;\n-  #41 = Utf8               ts2\n-  #42 = Utf8               ts3\n-  #43 = Utf8               ts4\n-  #44 = Utf8               segmentList\n-  #45 = Utf8               Ljava/util/List;\n-  #46 = Utf8               LocalVariableTypeTable\n-  #47 = Utf8               Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;\n-  #48 = Utf8               RuntimeVisibleAnnotations\n-  #49 = Utf8               Lorg/junit/jupiter/api/Test;\n-  #50 = Utf8               SourceFile\n-  #51 = Utf8               TextSegmentTransformerTest.java\n-  #52 = NameAndType        #29:#30        // \"<init>\":()V\n-  #53 = Utf8               dev/langchain4j/data/segment/TextSegmentTransformerTest$LowercaseFnordTransformer\n-  #54 = Utf8               Text\n-  #55 = NameAndType        #79:#80        // from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #56 = NameAndType        #81:#82        // metadata:()Ldev/langchain4j/data/document/Metadata;\n-  #57 = Utf8               abc\n-  #58 = Utf8               123\n-  #59 = Class              #83            // dev/langchain4j/data/document/Metadata\n-  #60 = NameAndType        #84:#85        // add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-  #61 = Utf8               Segment\n-  #62 = Utf8               Fnord will be filtered out\n-  #63 = Utf8               Transformer\n-  #64 = Utf8               java/util/ArrayList\n-  #65 = Class              #86            // java/util/List\n-  #66 = NameAndType        #84:#87        // add:(Ljava/lang/Object;)Z\n-  #67 = Class              #88            // dev/langchain4j/data/segment/TextSegmentTransformer\n-  #68 = NameAndType        #89:#90        // transformAll:(Ljava/util/List;)Ljava/util/List;\n-  #69 = NameAndType        #91:#92        // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #70 = Utf8               dev/langchain4j/data/segment/TextSegment\n-  #71 = Utf8               text\n-  #72 = NameAndType        #79:#93        // from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n-  #73 = Utf8               segment\n-  #74 = Class              #94            // org/assertj/core/api/ListAssert\n-  #75 = NameAndType        #95:#96        // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #76 = Utf8               dev/langchain4j/data/segment/TextSegmentTransformerTest\n-  #77 = Utf8               java/lang/Object\n-  #78 = Utf8               org/assertj/core/api/WithAssertions\n-  #79 = Utf8               from\n-  #80 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #81 = Utf8               metadata\n-  #82 = Utf8               ()Ldev/langchain4j/data/document/Metadata;\n-  #83 = Utf8               dev/langchain4j/data/document/Metadata\n-  #84 = Utf8               add\n-  #85 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-  #86 = Utf8               java/util/List\n-  #87 = Utf8               (Ljava/lang/Object;)Z\n-  #88 = Utf8               dev/langchain4j/data/segment/TextSegmentTransformer\n-  #89 = Utf8               transformAll\n-  #90 = Utf8               (Ljava/util/List;)Ljava/util/List;\n-  #91 = Utf8               assertThat\n-  #92 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #93 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n-  #94 = Utf8               org/assertj/core/api/ListAssert\n-  #95 = Utf8               containsExactly\n-  #96 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Class              #8             // dev/langchain4j/data/segment/TextSegmentTransformerTest$LowercaseFnordTransformer\n+   #8 = Utf8               dev/langchain4j/data/segment/TextSegmentTransformerTest$LowercaseFnordTransformer\n+   #9 = Methodref          #7.#3          // dev/langchain4j/data/segment/TextSegmentTransformerTest$LowercaseFnordTransformer.\"<init>\":()V\n+  #10 = String             #11            // Text\n+  #11 = Utf8               Text\n+  #12 = Methodref          #13.#14        // dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #13 = Class              #15            // dev/langchain4j/data/segment/TextSegment\n+  #14 = NameAndType        #16:#17        // from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #15 = Utf8               dev/langchain4j/data/segment/TextSegment\n+  #16 = Utf8               from\n+  #17 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #18 = Methodref          #13.#19        // dev/langchain4j/data/segment/TextSegment.metadata:()Ldev/langchain4j/data/document/Metadata;\n+  #19 = NameAndType        #20:#21        // metadata:()Ldev/langchain4j/data/document/Metadata;\n+  #20 = Utf8               metadata\n+  #21 = Utf8               ()Ldev/langchain4j/data/document/Metadata;\n+  #22 = String             #23            // abc\n+  #23 = Utf8               abc\n+  #24 = String             #25            // 123\n+  #25 = Utf8               123\n+  #26 = Methodref          #27.#28        // dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+  #27 = Class              #29            // dev/langchain4j/data/document/Metadata\n+  #28 = NameAndType        #30:#31        // add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+  #29 = Utf8               dev/langchain4j/data/document/Metadata\n+  #30 = Utf8               add\n+  #31 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+  #32 = String             #33            // Segment\n+  #33 = Utf8               Segment\n+  #34 = String             #35            // Fnord will be filtered out\n+  #35 = Utf8               Fnord will be filtered out\n+  #36 = String             #37            // Transformer\n+  #37 = Utf8               Transformer\n+  #38 = Class              #39            // java/util/ArrayList\n+  #39 = Utf8               java/util/ArrayList\n+  #40 = Methodref          #38.#3         // java/util/ArrayList.\"<init>\":()V\n+  #41 = InterfaceMethodref #42.#43        // java/util/List.add:(Ljava/lang/Object;)Z\n+  #42 = Class              #44            // java/util/List\n+  #43 = NameAndType        #30:#45        // add:(Ljava/lang/Object;)Z\n+  #44 = Utf8               java/util/List\n+  #45 = Utf8               (Ljava/lang/Object;)Z\n+  #46 = InterfaceMethodref #47.#48        // dev/langchain4j/data/segment/TextSegmentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n+  #47 = Class              #49            // dev/langchain4j/data/segment/TextSegmentTransformer\n+  #48 = NameAndType        #50:#51        // transformAll:(Ljava/util/List;)Ljava/util/List;\n+  #49 = Utf8               dev/langchain4j/data/segment/TextSegmentTransformer\n+  #50 = Utf8               transformAll\n+  #51 = Utf8               (Ljava/util/List;)Ljava/util/List;\n+  #52 = Methodref          #53.#54        // dev/langchain4j/data/segment/TextSegmentTransformerTest.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #53 = Class              #55            // dev/langchain4j/data/segment/TextSegmentTransformerTest\n+  #54 = NameAndType        #56:#57        // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #55 = Utf8               dev/langchain4j/data/segment/TextSegmentTransformerTest\n+  #56 = Utf8               assertThat\n+  #57 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #58 = String             #59            // text\n+  #59 = Utf8               text\n+  #60 = Methodref          #13.#61        // dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n+  #61 = NameAndType        #16:#62        // from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n+  #62 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n+  #63 = String             #64            // segment\n+  #64 = Utf8               segment\n+  #65 = String             #66            // transformer\n+  #66 = Utf8               transformer\n+  #67 = Methodref          #68.#69        // org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #68 = Class              #70            // org/assertj/core/api/ListAssert\n+  #69 = NameAndType        #71:#72        // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #70 = Utf8               org/assertj/core/api/ListAssert\n+  #71 = Utf8               containsExactly\n+  #72 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #73 = Class              #74            // org/assertj/core/api/WithAssertions\n+  #74 = Utf8               org/assertj/core/api/WithAssertions\n+  #75 = Utf8               Code\n+  #76 = Utf8               LineNumberTable\n+  #77 = Utf8               LocalVariableTable\n+  #78 = Utf8               this\n+  #79 = Utf8               Ldev/langchain4j/data/segment/TextSegmentTransformerTest;\n+  #80 = Utf8               test_transformAll\n+  #81 = Utf8               Ldev/langchain4j/data/segment/TextSegmentTransformer;\n+  #82 = Utf8               ts1\n+  #83 = Utf8               Ldev/langchain4j/data/segment/TextSegment;\n+  #84 = Utf8               ts2\n+  #85 = Utf8               ts3\n+  #86 = Utf8               ts4\n+  #87 = Utf8               segmentList\n+  #88 = Utf8               Ljava/util/List;\n+  #89 = Utf8               LocalVariableTypeTable\n+  #90 = Utf8               Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;\n+  #91 = Utf8               RuntimeVisibleAnnotations\n+  #92 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #93 = Utf8               SourceFile\n+  #94 = Utf8               TextSegmentTransformerTest.java\n+  #95 = Utf8               InnerClasses\n+  #96 = Utf8               LowercaseFnordTransformer\n {\n   dev.langchain4j.data.segment.TextSegmentTransformerTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -120,81 +120,81 @@\n             0       5     0  this   Ldev/langchain4j/data/segment/TextSegmentTransformerTest;\n \n   public void test_transformAll();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=6, locals=7, args_size=1\n-         0: new           #2                  // class dev/langchain4j/data/segment/TextSegmentTransformerTest$LowercaseFnordTransformer\n+         0: new           #7                  // class dev/langchain4j/data/segment/TextSegmentTransformerTest$LowercaseFnordTransformer\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/data/segment/TextSegmentTransformerTest$LowercaseFnordTransformer.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/data/segment/TextSegmentTransformerTest$LowercaseFnordTransformer.\"<init>\":()V\n          7: astore_1\n-         8: ldc           #4                  // String Text\n-        10: invokestatic  #5                  // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+         8: ldc           #10                 // String Text\n+        10: invokestatic  #12                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n         13: astore_2\n         14: aload_2\n-        15: invokevirtual #6                  // Method dev/langchain4j/data/segment/TextSegment.metadata:()Ldev/langchain4j/data/document/Metadata;\n-        18: ldc           #7                  // String abc\n-        20: ldc           #8                  // String 123\n-        22: invokevirtual #9                  // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        15: invokevirtual #18                 // Method dev/langchain4j/data/segment/TextSegment.metadata:()Ldev/langchain4j/data/document/Metadata;\n+        18: ldc           #22                 // String abc\n+        20: ldc           #24                 // String 123\n+        22: invokevirtual #26                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n         25: pop\n-        26: ldc           #10                 // String Segment\n-        28: invokestatic  #5                  // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+        26: ldc           #32                 // String Segment\n+        28: invokestatic  #12                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n         31: astore_3\n-        32: ldc           #11                 // String Fnord will be filtered out\n-        34: invokestatic  #5                  // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+        32: ldc           #34                 // String Fnord will be filtered out\n+        34: invokestatic  #12                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n         37: astore        4\n-        39: ldc           #12                 // String Transformer\n-        41: invokestatic  #5                  // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+        39: ldc           #36                 // String Transformer\n+        41: invokestatic  #12                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n         44: astore        5\n-        46: new           #13                 // class java/util/ArrayList\n+        46: new           #38                 // class java/util/ArrayList\n         49: dup\n-        50: invokespecial #14                 // Method java/util/ArrayList.\"<init>\":()V\n+        50: invokespecial #40                 // Method java/util/ArrayList.\"<init>\":()V\n         53: astore        6\n         55: aload         6\n         57: aload_2\n-        58: invokeinterface #15,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n+        58: invokeinterface #41,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n         63: pop\n         64: aload         6\n         66: aload_3\n-        67: invokeinterface #15,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n+        67: invokeinterface #41,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n         72: pop\n         73: aload         6\n         75: aload         4\n-        77: invokeinterface #15,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n+        77: invokeinterface #41,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n         82: pop\n         83: aload         6\n         85: aload         5\n-        87: invokeinterface #15,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n+        87: invokeinterface #41,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n         92: pop\n         93: aload_0\n         94: aload_1\n         95: aload         6\n-        97: invokeinterface #16,  2           // InterfaceMethod dev/langchain4j/data/segment/TextSegmentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n-       102: invokevirtual #17                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+        97: invokeinterface #46,  2           // InterfaceMethod dev/langchain4j/data/segment/TextSegmentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n+       102: invokevirtual #52                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n        105: iconst_3\n-       106: anewarray     #18                 // class dev/langchain4j/data/segment/TextSegment\n+       106: anewarray     #13                 // class dev/langchain4j/data/segment/TextSegment\n        109: dup\n        110: iconst_0\n-       111: ldc           #19                 // String text\n+       111: ldc           #58                 // String text\n        113: aload_2\n-       114: invokevirtual #6                  // Method dev/langchain4j/data/segment/TextSegment.metadata:()Ldev/langchain4j/data/document/Metadata;\n-       117: invokestatic  #20                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n+       114: invokevirtual #18                 // Method dev/langchain4j/data/segment/TextSegment.metadata:()Ldev/langchain4j/data/document/Metadata;\n+       117: invokestatic  #60                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n        120: aastore\n        121: dup\n        122: iconst_1\n-       123: ldc           #21                 // String segment\n-       125: invokestatic  #5                  // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+       123: ldc           #63                 // String segment\n+       125: invokestatic  #12                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n        128: aastore\n        129: dup\n        130: iconst_2\n-       131: ldc           #22                 // String transformer\n-       133: invokestatic  #5                  // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+       131: ldc           #65                 // String transformer\n+       133: invokestatic  #12                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n        136: aastore\n-       137: invokevirtual #23                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+       137: invokevirtual #67                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n        140: pop\n        141: return\n       LineNumberTable:\n         line 23: 0\n         line 24: 8\n         line 25: 14\n         line 27: 26\n@@ -220,13 +220,13 @@\n            39     103     4   ts3   Ldev/langchain4j/data/segment/TextSegment;\n            46      96     5   ts4   Ldev/langchain4j/data/segment/TextSegment;\n            55      87     6 segmentList   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            55      87     6 segmentList   Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;\n     RuntimeVisibleAnnotations:\n-      0: #49()\n+      0: #92()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"TextSegmentTransformerTest.java\"\n InnerClasses:\n-  public static #27= #2 of #24;           // LowercaseFnordTransformer=class dev/langchain4j/data/segment/TextSegmentTransformerTest$LowercaseFnordTransformer of class dev/langchain4j/data/segment/TextSegmentTransformerTest\n+  public static #96= #7 of #53;           // LowercaseFnordTransformer=class dev/langchain4j/data/segment/TextSegmentTransformerTest$LowercaseFnordTransformer of class dev/langchain4j/data/segment/TextSegmentTransformerTest\n"}]}, {"source1": "dev/langchain4j/internal/ExceptionsTest.class", "source2": "dev/langchain4j/internal/ExceptionsTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,72 +1,72 @@\n-  SHA-256 checksum ed89d9034591f7ff817a9353e12ab148557c00f30e6a42de45ea4b6462b64d06\n+  SHA-256 checksum 16158da135d334355d9717b6b9feb9f6bbcf01e84a60b093fa7763efe54ed154\n   Compiled from \"ExceptionsTest.java\"\n class dev.langchain4j.internal.ExceptionsTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #14                         // dev/langchain4j/internal/ExceptionsTest\n-  super_class: #3                         // java/lang/Object\n+  this_class: #18                         // dev/langchain4j/internal/ExceptionsTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 3, attributes: 1\n Constant pool:\n-   #1 = Methodref          #3.#29         // java/lang/Object.\"<init>\":()V\n-   #2 = String             #30            // test %s\n-   #3 = Class              #31            // java/lang/Object\n-   #4 = String             #32            // test\n-   #5 = Methodref          #33.#34        // dev/langchain4j/internal/Exceptions.illegalArgument:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalArgumentException;\n-   #6 = Methodref          #14.#35        // dev/langchain4j/internal/ExceptionsTest.assertThat:(Ljava/lang/Throwable;)Lorg/assertj/core/api/AbstractThrowableAssert;\n-   #7 = Class              #36            // java/lang/IllegalArgumentException\n-   #8 = Methodref          #9.#37         // org/assertj/core/api/AbstractThrowableAssert.isInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n-   #9 = Class              #38            // org/assertj/core/api/AbstractThrowableAssert\n-  #10 = String             #39            // test test\n-  #11 = Methodref          #9.#40         // org/assertj/core/api/AbstractThrowableAssert.hasMessage:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractThrowableAssert;\n-  #12 = Methodref          #33.#41        // dev/langchain4j/internal/Exceptions.runtime:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;\n-  #13 = Class              #42            // java/lang/RuntimeException\n-  #14 = Class              #43            // dev/langchain4j/internal/ExceptionsTest\n-  #15 = Class              #44            // org/assertj/core/api/WithAssertions\n-  #16 = Utf8               <init>\n-  #17 = Utf8               ()V\n-  #18 = Utf8               Code\n-  #19 = Utf8               LineNumberTable\n-  #20 = Utf8               LocalVariableTable\n-  #21 = Utf8               this\n-  #22 = Utf8               Ldev/langchain4j/internal/ExceptionsTest;\n-  #23 = Utf8               test_illegalArgument\n-  #24 = Utf8               RuntimeVisibleAnnotations\n-  #25 = Utf8               Lorg/junit/jupiter/api/Test;\n-  #26 = Utf8               test_runtime\n-  #27 = Utf8               SourceFile\n-  #28 = Utf8               ExceptionsTest.java\n-  #29 = NameAndType        #16:#17        // \"<init>\":()V\n-  #30 = Utf8               test %s\n-  #31 = Utf8               java/lang/Object\n-  #32 = Utf8               test\n-  #33 = Class              #45            // dev/langchain4j/internal/Exceptions\n-  #34 = NameAndType        #46:#47        // illegalArgument:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalArgumentException;\n-  #35 = NameAndType        #48:#49        // assertThat:(Ljava/lang/Throwable;)Lorg/assertj/core/api/AbstractThrowableAssert;\n-  #36 = Utf8               java/lang/IllegalArgumentException\n-  #37 = NameAndType        #50:#51        // isInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n-  #38 = Utf8               org/assertj/core/api/AbstractThrowableAssert\n-  #39 = Utf8               test test\n-  #40 = NameAndType        #52:#53        // hasMessage:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractThrowableAssert;\n-  #41 = NameAndType        #54:#55        // runtime:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = String             #8             // test %s\n+   #8 = Utf8               test %s\n+   #9 = String             #10            // test\n+  #10 = Utf8               test\n+  #11 = Methodref          #12.#13        // dev/langchain4j/internal/Exceptions.illegalArgument:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalArgumentException;\n+  #12 = Class              #14            // dev/langchain4j/internal/Exceptions\n+  #13 = NameAndType        #15:#16        // illegalArgument:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalArgumentException;\n+  #14 = Utf8               dev/langchain4j/internal/Exceptions\n+  #15 = Utf8               illegalArgument\n+  #16 = Utf8               (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalArgumentException;\n+  #17 = Methodref          #18.#19        // dev/langchain4j/internal/ExceptionsTest.assertThat:(Ljava/lang/Throwable;)Lorg/assertj/core/api/AbstractThrowableAssert;\n+  #18 = Class              #20            // dev/langchain4j/internal/ExceptionsTest\n+  #19 = NameAndType        #21:#22        // assertThat:(Ljava/lang/Throwable;)Lorg/assertj/core/api/AbstractThrowableAssert;\n+  #20 = Utf8               dev/langchain4j/internal/ExceptionsTest\n+  #21 = Utf8               assertThat\n+  #22 = Utf8               (Ljava/lang/Throwable;)Lorg/assertj/core/api/AbstractThrowableAssert;\n+  #23 = Class              #24            // java/lang/IllegalArgumentException\n+  #24 = Utf8               java/lang/IllegalArgumentException\n+  #25 = Methodref          #26.#27        // org/assertj/core/api/AbstractThrowableAssert.isInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+  #26 = Class              #28            // org/assertj/core/api/AbstractThrowableAssert\n+  #27 = NameAndType        #29:#30        // isInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+  #28 = Utf8               org/assertj/core/api/AbstractThrowableAssert\n+  #29 = Utf8               isInstanceOf\n+  #30 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+  #31 = String             #32            // test test\n+  #32 = Utf8               test test\n+  #33 = Methodref          #26.#34        // org/assertj/core/api/AbstractThrowableAssert.hasMessage:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractThrowableAssert;\n+  #34 = NameAndType        #35:#36        // hasMessage:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractThrowableAssert;\n+  #35 = Utf8               hasMessage\n+  #36 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractThrowableAssert;\n+  #37 = Methodref          #12.#38        // dev/langchain4j/internal/Exceptions.runtime:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;\n+  #38 = NameAndType        #39:#40        // runtime:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;\n+  #39 = Utf8               runtime\n+  #40 = Utf8               (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;\n+  #41 = Class              #42            // java/lang/RuntimeException\n   #42 = Utf8               java/lang/RuntimeException\n-  #43 = Utf8               dev/langchain4j/internal/ExceptionsTest\n+  #43 = Class              #44            // org/assertj/core/api/WithAssertions\n   #44 = Utf8               org/assertj/core/api/WithAssertions\n-  #45 = Utf8               dev/langchain4j/internal/Exceptions\n-  #46 = Utf8               illegalArgument\n-  #47 = Utf8               (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalArgumentException;\n-  #48 = Utf8               assertThat\n-  #49 = Utf8               (Ljava/lang/Throwable;)Lorg/assertj/core/api/AbstractThrowableAssert;\n-  #50 = Utf8               isInstanceOf\n-  #51 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n-  #52 = Utf8               hasMessage\n-  #53 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractThrowableAssert;\n-  #54 = Utf8               runtime\n-  #55 = Utf8               (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;\n+  #45 = Utf8               Code\n+  #46 = Utf8               LineNumberTable\n+  #47 = Utf8               LocalVariableTable\n+  #48 = Utf8               this\n+  #49 = Utf8               Ldev/langchain4j/internal/ExceptionsTest;\n+  #50 = Utf8               test_illegalArgument\n+  #51 = Utf8               RuntimeVisibleAnnotations\n+  #52 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #53 = Utf8               test_runtime\n+  #54 = Utf8               SourceFile\n+  #55 = Utf8               ExceptionsTest.java\n {\n   dev.langchain4j.internal.ExceptionsTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -80,70 +80,70 @@\n \n   public void test_illegalArgument();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=6, locals=1, args_size=1\n          0: aload_0\n-         1: ldc           #2                  // String test %s\n+         1: ldc           #7                  // String test %s\n          3: iconst_1\n-         4: anewarray     #3                  // class java/lang/Object\n+         4: anewarray     #2                  // class java/lang/Object\n          7: dup\n          8: iconst_0\n-         9: ldc           #4                  // String test\n+         9: ldc           #9                  // String test\n         11: aastore\n-        12: invokestatic  #5                  // Method dev/langchain4j/internal/Exceptions.illegalArgument:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalArgumentException;\n-        15: invokevirtual #6                  // Method assertThat:(Ljava/lang/Throwable;)Lorg/assertj/core/api/AbstractThrowableAssert;\n-        18: ldc           #7                  // class java/lang/IllegalArgumentException\n-        20: invokevirtual #8                  // Method org/assertj/core/api/AbstractThrowableAssert.isInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n-        23: checkcast     #9                  // class org/assertj/core/api/AbstractThrowableAssert\n-        26: ldc           #10                 // String test test\n-        28: invokevirtual #11                 // Method org/assertj/core/api/AbstractThrowableAssert.hasMessage:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractThrowableAssert;\n+        12: invokestatic  #11                 // Method dev/langchain4j/internal/Exceptions.illegalArgument:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalArgumentException;\n+        15: invokevirtual #17                 // Method assertThat:(Ljava/lang/Throwable;)Lorg/assertj/core/api/AbstractThrowableAssert;\n+        18: ldc           #23                 // class java/lang/IllegalArgumentException\n+        20: invokevirtual #25                 // Method org/assertj/core/api/AbstractThrowableAssert.isInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+        23: checkcast     #26                 // class org/assertj/core/api/AbstractThrowableAssert\n+        26: ldc           #31                 // String test test\n+        28: invokevirtual #33                 // Method org/assertj/core/api/AbstractThrowableAssert.hasMessage:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractThrowableAssert;\n         31: pop\n         32: return\n       LineNumberTable:\n         line 9: 0\n         line 10: 20\n         line 11: 28\n         line 12: 32\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      33     0  this   Ldev/langchain4j/internal/ExceptionsTest;\n     RuntimeVisibleAnnotations:\n-      0: #25()\n+      0: #52()\n         org.junit.jupiter.api.Test\n \n   public void test_runtime();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=6, locals=1, args_size=1\n          0: aload_0\n-         1: ldc           #2                  // String test %s\n+         1: ldc           #7                  // String test %s\n          3: iconst_1\n-         4: anewarray     #3                  // class java/lang/Object\n+         4: anewarray     #2                  // class java/lang/Object\n          7: dup\n          8: iconst_0\n-         9: ldc           #4                  // String test\n+         9: ldc           #9                  // String test\n         11: aastore\n-        12: invokestatic  #12                 // Method dev/langchain4j/internal/Exceptions.runtime:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;\n-        15: invokevirtual #6                  // Method assertThat:(Ljava/lang/Throwable;)Lorg/assertj/core/api/AbstractThrowableAssert;\n-        18: ldc           #13                 // class java/lang/RuntimeException\n-        20: invokevirtual #8                  // Method org/assertj/core/api/AbstractThrowableAssert.isInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n-        23: checkcast     #9                  // class org/assertj/core/api/AbstractThrowableAssert\n-        26: ldc           #10                 // String test test\n-        28: invokevirtual #11                 // Method org/assertj/core/api/AbstractThrowableAssert.hasMessage:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractThrowableAssert;\n+        12: invokestatic  #37                 // Method dev/langchain4j/internal/Exceptions.runtime:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;\n+        15: invokevirtual #17                 // Method assertThat:(Ljava/lang/Throwable;)Lorg/assertj/core/api/AbstractThrowableAssert;\n+        18: ldc           #41                 // class java/lang/RuntimeException\n+        20: invokevirtual #25                 // Method org/assertj/core/api/AbstractThrowableAssert.isInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+        23: checkcast     #26                 // class org/assertj/core/api/AbstractThrowableAssert\n+        26: ldc           #31                 // String test test\n+        28: invokevirtual #33                 // Method org/assertj/core/api/AbstractThrowableAssert.hasMessage:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractThrowableAssert;\n         31: pop\n         32: return\n       LineNumberTable:\n         line 16: 0\n         line 17: 20\n         line 18: 28\n         line 19: 32\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      33     0  this   Ldev/langchain4j/internal/ExceptionsTest;\n     RuntimeVisibleAnnotations:\n-      0: #25()\n+      0: #52()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"ExceptionsTest.java\"\n"}]}, {"source1": "dev/langchain4j/internal/GsonJsonCodecTest$1.class", "source2": "dev/langchain4j/internal/GsonJsonCodecTest$1.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,66 +1,66 @@\n-  SHA-256 checksum 0c5660a1eacf39212fa736c9dbb05218bc1237c0fa709254b8e230c0bbb7ed80\n+  SHA-256 checksum 221567fcd53901cdfb321a037900fe8bb83c19ae5ca5a213f31847383baaf936\n   Compiled from \"GsonJsonCodecTest.java\"\n class dev.langchain4j.internal.GsonJsonCodecTest$1 extends com.google.gson.reflect.TypeToken<java.util.Map<java.lang.String, java.lang.String>>\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #3                          // dev/langchain4j/internal/GsonJsonCodecTest$1\n-  super_class: #4                         // com/google/gson/reflect/TypeToken\n+  this_class: #2                          // dev/langchain4j/internal/GsonJsonCodecTest$1\n+  super_class: #8                         // com/google/gson/reflect/TypeToken\n   interfaces: 0, fields: 1, methods: 1, attributes: 4\n Constant pool:\n-   #1 = Fieldref           #3.#22         // dev/langchain4j/internal/GsonJsonCodecTest$1.this$0:Ldev/langchain4j/internal/GsonJsonCodecTest;\n-   #2 = Methodref          #4.#23         // com/google/gson/reflect/TypeToken.\"<init>\":()V\n-   #3 = Class              #24            // dev/langchain4j/internal/GsonJsonCodecTest$1\n-   #4 = Class              #25            // com/google/gson/reflect/TypeToken\n+   #1 = Fieldref           #2.#3          // dev/langchain4j/internal/GsonJsonCodecTest$1.this$0:Ldev/langchain4j/internal/GsonJsonCodecTest;\n+   #2 = Class              #4             // dev/langchain4j/internal/GsonJsonCodecTest$1\n+   #3 = NameAndType        #5:#6          // this$0:Ldev/langchain4j/internal/GsonJsonCodecTest;\n+   #4 = Utf8               dev/langchain4j/internal/GsonJsonCodecTest$1\n    #5 = Utf8               this$0\n    #6 = Utf8               Ldev/langchain4j/internal/GsonJsonCodecTest;\n-   #7 = Utf8               <init>\n-   #8 = Utf8               (Ldev/langchain4j/internal/GsonJsonCodecTest;)V\n-   #9 = Utf8               Code\n-  #10 = Utf8               LineNumberTable\n-  #11 = Utf8               LocalVariableTable\n-  #12 = Utf8               this\n-  #13 = Utf8               InnerClasses\n-  #14 = Utf8               Ldev/langchain4j/internal/GsonJsonCodecTest$1;\n-  #15 = Utf8               Signature\n-  #16 = Utf8               Lcom/google/gson/reflect/TypeToken<Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;>;\n-  #17 = Utf8               SourceFile\n-  #18 = Utf8               GsonJsonCodecTest.java\n-  #19 = Utf8               EnclosingMethod\n-  #20 = Class              #26            // dev/langchain4j/internal/GsonJsonCodecTest\n-  #21 = NameAndType        #27:#28        // test_map:()V\n-  #22 = NameAndType        #5:#6          // this$0:Ldev/langchain4j/internal/GsonJsonCodecTest;\n-  #23 = NameAndType        #7:#28         // \"<init>\":()V\n-  #24 = Utf8               dev/langchain4j/internal/GsonJsonCodecTest$1\n-  #25 = Utf8               com/google/gson/reflect/TypeToken\n-  #26 = Utf8               dev/langchain4j/internal/GsonJsonCodecTest\n+   #7 = Methodref          #8.#9          // com/google/gson/reflect/TypeToken.\"<init>\":()V\n+   #8 = Class              #10            // com/google/gson/reflect/TypeToken\n+   #9 = NameAndType        #11:#12        // \"<init>\":()V\n+  #10 = Utf8               com/google/gson/reflect/TypeToken\n+  #11 = Utf8               <init>\n+  #12 = Utf8               ()V\n+  #13 = Utf8               (Ldev/langchain4j/internal/GsonJsonCodecTest;)V\n+  #14 = Utf8               Code\n+  #15 = Utf8               LineNumberTable\n+  #16 = Utf8               LocalVariableTable\n+  #17 = Utf8               this\n+  #18 = Utf8               Ldev/langchain4j/internal/GsonJsonCodecTest$1;\n+  #19 = Utf8               Signature\n+  #20 = Utf8               Lcom/google/gson/reflect/TypeToken<Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;>;\n+  #21 = Utf8               SourceFile\n+  #22 = Utf8               GsonJsonCodecTest.java\n+  #23 = Utf8               EnclosingMethod\n+  #24 = Class              #25            // dev/langchain4j/internal/GsonJsonCodecTest\n+  #25 = Utf8               dev/langchain4j/internal/GsonJsonCodecTest\n+  #26 = NameAndType        #27:#12        // test_map:()V\n   #27 = Utf8               test_map\n-  #28 = Utf8               ()V\n+  #28 = Utf8               InnerClasses\n {\n   final dev.langchain4j.internal.GsonJsonCodecTest this$0;\n     descriptor: Ldev/langchain4j/internal/GsonJsonCodecTest;\n     flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC\n \n   dev.langchain4j.internal.GsonJsonCodecTest$1(dev.langchain4j.internal.GsonJsonCodecTest);\n     descriptor: (Ldev/langchain4j/internal/GsonJsonCodecTest;)V\n     flags: (0x0000)\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n          2: putfield      #1                  // Field this$0:Ldev/langchain4j/internal/GsonJsonCodecTest;\n          5: aload_0\n-         6: invokespecial #2                  // Method com/google/gson/reflect/TypeToken.\"<init>\":()V\n+         6: invokespecial #7                  // Method com/google/gson/reflect/TypeToken.\"<init>\":()V\n          9: return\n       LineNumberTable:\n         line 64: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      10     0  this   Ldev/langchain4j/internal/GsonJsonCodecTest$1;\n             0      10     1 this$0   Ldev/langchain4j/internal/GsonJsonCodecTest;\n }\n-Signature: #16                          // Lcom/google/gson/reflect/TypeToken<Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;>;\n+Signature: #20                          // Lcom/google/gson/reflect/TypeToken<Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;>;\n SourceFile: \"GsonJsonCodecTest.java\"\n-EnclosingMethod: #20.#21                // dev.langchain4j.internal.GsonJsonCodecTest.test_map\n+EnclosingMethod: #24.#26                // dev.langchain4j.internal.GsonJsonCodecTest.test_map\n InnerClasses:\n-  #3;                                     // class dev/langchain4j/internal/GsonJsonCodecTest$1\n+  #2;                                     // class dev/langchain4j/internal/GsonJsonCodecTest$1\n"}]}, {"source1": "dev/langchain4j/internal/GsonJsonCodecTest$DateExample.class", "source2": "dev/langchain4j/internal/GsonJsonCodecTest$DateExample.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,59 +1,58 @@\n-  SHA-256 checksum c83e14d92cef5b78243598309dbd53df6f31bcd8a450bed505eafa25f68ca08d\n+  SHA-256 checksum 5a56d1a958e20e73312d34693264c20fdb04f668db40a9f1a365f9585d028ea9\n   Compiled from \"GsonJsonCodecTest.java\"\n public class dev.langchain4j.internal.GsonJsonCodecTest$DateExample\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #4                          // dev/langchain4j/internal/GsonJsonCodecTest$DateExample\n-  super_class: #7                         // java/lang/Object\n+  this_class: #8                          // dev/langchain4j/internal/GsonJsonCodecTest$DateExample\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 2, methods: 2, attributes: 2\n Constant pool:\n-   #1 = Methodref          #7.#30         // java/lang/Object.\"<init>\":()V\n-   #2 = Fieldref           #4.#31         // dev/langchain4j/internal/GsonJsonCodecTest$DateExample.localDate:Ljava/time/LocalDate;\n-   #3 = Fieldref           #4.#32         // dev/langchain4j/internal/GsonJsonCodecTest$DateExample.localDateTime:Ljava/time/LocalDateTime;\n-   #4 = Class              #34            // dev/langchain4j/internal/GsonJsonCodecTest$DateExample\n-   #5 = Methodref          #35.#36        // java/time/LocalDate.equals:(Ljava/lang/Object;)Z\n-   #6 = Methodref          #37.#36        // java/time/LocalDateTime.equals:(Ljava/lang/Object;)Z\n-   #7 = Class              #38            // java/lang/Object\n-   #8 = Utf8               localDate\n-   #9 = Utf8               Ljava/time/LocalDate;\n-  #10 = Utf8               localDateTime\n-  #11 = Utf8               Ljava/time/LocalDateTime;\n-  #12 = Utf8               <init>\n-  #13 = Utf8               (Ljava/time/LocalDate;Ljava/time/LocalDateTime;)V\n-  #14 = Utf8               Code\n-  #15 = Utf8               LineNumberTable\n-  #16 = Utf8               LocalVariableTable\n-  #17 = Utf8               this\n-  #18 = Utf8               DateExample\n-  #19 = Utf8               InnerClasses\n-  #20 = Utf8               Ldev/langchain4j/internal/GsonJsonCodecTest$DateExample;\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Fieldref           #8.#9          // dev/langchain4j/internal/GsonJsonCodecTest$DateExample.localDate:Ljava/time/LocalDate;\n+   #8 = Class              #10            // dev/langchain4j/internal/GsonJsonCodecTest$DateExample\n+   #9 = NameAndType        #11:#12        // localDate:Ljava/time/LocalDate;\n+  #10 = Utf8               dev/langchain4j/internal/GsonJsonCodecTest$DateExample\n+  #11 = Utf8               localDate\n+  #12 = Utf8               Ljava/time/LocalDate;\n+  #13 = Fieldref           #8.#14         // dev/langchain4j/internal/GsonJsonCodecTest$DateExample.localDateTime:Ljava/time/LocalDateTime;\n+  #14 = NameAndType        #15:#16        // localDateTime:Ljava/time/LocalDateTime;\n+  #15 = Utf8               localDateTime\n+  #16 = Utf8               Ljava/time/LocalDateTime;\n+  #17 = Methodref          #18.#19        // java/time/LocalDate.equals:(Ljava/lang/Object;)Z\n+  #18 = Class              #20            // java/time/LocalDate\n+  #19 = NameAndType        #21:#22        // equals:(Ljava/lang/Object;)Z\n+  #20 = Utf8               java/time/LocalDate\n   #21 = Utf8               equals\n   #22 = Utf8               (Ljava/lang/Object;)Z\n-  #23 = Utf8               o\n-  #24 = Utf8               Ljava/lang/Object;\n-  #25 = Utf8               that\n-  #26 = Utf8               StackMapTable\n-  #27 = Class              #34            // dev/langchain4j/internal/GsonJsonCodecTest$DateExample\n-  #28 = Utf8               SourceFile\n-  #29 = Utf8               GsonJsonCodecTest.java\n-  #30 = NameAndType        #12:#39        // \"<init>\":()V\n-  #31 = NameAndType        #8:#9          // localDate:Ljava/time/LocalDate;\n-  #32 = NameAndType        #10:#11        // localDateTime:Ljava/time/LocalDateTime;\n-  #33 = Class              #40            // dev/langchain4j/internal/GsonJsonCodecTest\n-  #34 = Utf8               dev/langchain4j/internal/GsonJsonCodecTest$DateExample\n-  #35 = Class              #41            // java/time/LocalDate\n-  #36 = NameAndType        #21:#22        // equals:(Ljava/lang/Object;)Z\n-  #37 = Class              #42            // java/time/LocalDateTime\n-  #38 = Utf8               java/lang/Object\n-  #39 = Utf8               ()V\n+  #23 = Methodref          #24.#19        // java/time/LocalDateTime.equals:(Ljava/lang/Object;)Z\n+  #24 = Class              #25            // java/time/LocalDateTime\n+  #25 = Utf8               java/time/LocalDateTime\n+  #26 = Utf8               (Ljava/time/LocalDate;Ljava/time/LocalDateTime;)V\n+  #27 = Utf8               Code\n+  #28 = Utf8               LineNumberTable\n+  #29 = Utf8               LocalVariableTable\n+  #30 = Utf8               this\n+  #31 = Utf8               Ldev/langchain4j/internal/GsonJsonCodecTest$DateExample;\n+  #32 = Utf8               o\n+  #33 = Utf8               Ljava/lang/Object;\n+  #34 = Utf8               that\n+  #35 = Utf8               StackMapTable\n+  #36 = Utf8               SourceFile\n+  #37 = Utf8               GsonJsonCodecTest.java\n+  #38 = Utf8               InnerClasses\n+  #39 = Class              #40            // dev/langchain4j/internal/GsonJsonCodecTest\n   #40 = Utf8               dev/langchain4j/internal/GsonJsonCodecTest\n-  #41 = Utf8               java/time/LocalDate\n-  #42 = Utf8               java/time/LocalDateTime\n+  #41 = Utf8               DateExample\n {\n   public java.time.LocalDate localDate;\n     descriptor: Ljava/time/LocalDate;\n     flags: (0x0001) ACC_PUBLIC\n \n   public java.time.LocalDateTime localDateTime;\n     descriptor: Ljava/time/LocalDateTime;\n@@ -64,18 +63,18 @@\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=3, args_size=3\n          0: aload_0\n          1: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n          4: aload_0\n          5: aload_1\n-         6: putfield      #2                  // Field localDate:Ljava/time/LocalDate;\n+         6: putfield      #7                  // Field localDate:Ljava/time/LocalDate;\n          9: aload_0\n         10: aload_2\n-        11: putfield      #3                  // Field localDateTime:Ljava/time/LocalDateTime;\n+        11: putfield      #13                 // Field localDateTime:Ljava/time/LocalDateTime;\n         14: return\n       LineNumberTable:\n         line 90: 0\n         line 91: 4\n         line 92: 9\n         line 93: 14\n       LocalVariableTable:\n@@ -91,32 +90,32 @@\n       stack=2, locals=3, args_size=2\n          0: aload_0\n          1: aload_1\n          2: if_acmpne     7\n          5: iconst_1\n          6: ireturn\n          7: aload_1\n-         8: instanceof    #4                  // class dev/langchain4j/internal/GsonJsonCodecTest$DateExample\n+         8: instanceof    #8                  // class dev/langchain4j/internal/GsonJsonCodecTest$DateExample\n         11: ifne          16\n         14: iconst_0\n         15: ireturn\n         16: aload_1\n-        17: checkcast     #4                  // class dev/langchain4j/internal/GsonJsonCodecTest$DateExample\n+        17: checkcast     #8                  // class dev/langchain4j/internal/GsonJsonCodecTest$DateExample\n         20: astore_2\n         21: aload_0\n-        22: getfield      #2                  // Field localDate:Ljava/time/LocalDate;\n+        22: getfield      #7                  // Field localDate:Ljava/time/LocalDate;\n         25: aload_2\n-        26: getfield      #2                  // Field localDate:Ljava/time/LocalDate;\n-        29: invokevirtual #5                  // Method java/time/LocalDate.equals:(Ljava/lang/Object;)Z\n+        26: getfield      #7                  // Field localDate:Ljava/time/LocalDate;\n+        29: invokevirtual #17                 // Method java/time/LocalDate.equals:(Ljava/lang/Object;)Z\n         32: ifeq          53\n         35: aload_0\n-        36: getfield      #3                  // Field localDateTime:Ljava/time/LocalDateTime;\n+        36: getfield      #13                 // Field localDateTime:Ljava/time/LocalDateTime;\n         39: aload_2\n-        40: getfield      #3                  // Field localDateTime:Ljava/time/LocalDateTime;\n-        43: invokevirtual #6                  // Method java/time/LocalDateTime.equals:(Ljava/lang/Object;)Z\n+        40: getfield      #13                 // Field localDateTime:Ljava/time/LocalDateTime;\n+        43: invokevirtual #23                 // Method java/time/LocalDateTime.equals:(Ljava/lang/Object;)Z\n         46: ifeq          53\n         49: iconst_1\n         50: goto          54\n         53: iconst_0\n         54: ireturn\n       LineNumberTable:\n         line 97: 0\n@@ -137,8 +136,8 @@\n           offset_delta = 36\n           locals = [ class dev/langchain4j/internal/GsonJsonCodecTest$DateExample ]\n         frame_type = 64 /* same_locals_1_stack_item */\n           stack = [ int ]\n }\n SourceFile: \"GsonJsonCodecTest.java\"\n InnerClasses:\n-  public static #18= #4 of #33;           // DateExample=class dev/langchain4j/internal/GsonJsonCodecTest$DateExample of class dev/langchain4j/internal/GsonJsonCodecTest\n+  public static #41= #8 of #39;           // DateExample=class dev/langchain4j/internal/GsonJsonCodecTest$DateExample of class dev/langchain4j/internal/GsonJsonCodecTest\n"}]}, {"source1": "dev/langchain4j/internal/GsonJsonCodecTest$Example.class", "source2": "dev/langchain4j/internal/GsonJsonCodecTest$Example.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,56 +1,55 @@\n-  SHA-256 checksum 44ab1c5f0b8bff587d443ac931540384d87186f35a7ec17ab285f6d7c2b59b9e\n+  SHA-256 checksum 1058346df56cf798f214e34573a150eb81d027ac69fb52b22ed43594bef3ef31\n   Compiled from \"GsonJsonCodecTest.java\"\n public class dev.langchain4j.internal.GsonJsonCodecTest$Example\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #4                          // dev/langchain4j/internal/GsonJsonCodecTest$Example\n-  super_class: #6                         // java/lang/Object\n+  this_class: #8                          // dev/langchain4j/internal/GsonJsonCodecTest$Example\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 2, methods: 2, attributes: 2\n Constant pool:\n-   #1 = Methodref          #6.#29         // java/lang/Object.\"<init>\":()V\n-   #2 = Fieldref           #4.#30         // dev/langchain4j/internal/GsonJsonCodecTest$Example.name:Ljava/lang/String;\n-   #3 = Fieldref           #4.#31         // dev/langchain4j/internal/GsonJsonCodecTest$Example.age:I\n-   #4 = Class              #33            // dev/langchain4j/internal/GsonJsonCodecTest$Example\n-   #5 = Methodref          #34.#35        // java/lang/String.equals:(Ljava/lang/Object;)Z\n-   #6 = Class              #36            // java/lang/Object\n-   #7 = Utf8               name\n-   #8 = Utf8               Ljava/lang/String;\n-   #9 = Utf8               age\n-  #10 = Utf8               I\n-  #11 = Utf8               <init>\n-  #12 = Utf8               (Ljava/lang/String;I)V\n-  #13 = Utf8               Code\n-  #14 = Utf8               LineNumberTable\n-  #15 = Utf8               LocalVariableTable\n-  #16 = Utf8               this\n-  #17 = Utf8               Example\n-  #18 = Utf8               InnerClasses\n-  #19 = Utf8               Ldev/langchain4j/internal/GsonJsonCodecTest$Example;\n-  #20 = Utf8               equals\n-  #21 = Utf8               (Ljava/lang/Object;)Z\n-  #22 = Utf8               o\n-  #23 = Utf8               Ljava/lang/Object;\n-  #24 = Utf8               example\n-  #25 = Utf8               StackMapTable\n-  #26 = Class              #33            // dev/langchain4j/internal/GsonJsonCodecTest$Example\n-  #27 = Utf8               SourceFile\n-  #28 = Utf8               GsonJsonCodecTest.java\n-  #29 = NameAndType        #11:#37        // \"<init>\":()V\n-  #30 = NameAndType        #7:#8          // name:Ljava/lang/String;\n-  #31 = NameAndType        #9:#10         // age:I\n-  #32 = Class              #38            // dev/langchain4j/internal/GsonJsonCodecTest\n-  #33 = Utf8               dev/langchain4j/internal/GsonJsonCodecTest$Example\n-  #34 = Class              #39            // java/lang/String\n-  #35 = NameAndType        #20:#21        // equals:(Ljava/lang/Object;)Z\n-  #36 = Utf8               java/lang/Object\n-  #37 = Utf8               ()V\n-  #38 = Utf8               dev/langchain4j/internal/GsonJsonCodecTest\n-  #39 = Utf8               java/lang/String\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Fieldref           #8.#9          // dev/langchain4j/internal/GsonJsonCodecTest$Example.name:Ljava/lang/String;\n+   #8 = Class              #10            // dev/langchain4j/internal/GsonJsonCodecTest$Example\n+   #9 = NameAndType        #11:#12        // name:Ljava/lang/String;\n+  #10 = Utf8               dev/langchain4j/internal/GsonJsonCodecTest$Example\n+  #11 = Utf8               name\n+  #12 = Utf8               Ljava/lang/String;\n+  #13 = Fieldref           #8.#14         // dev/langchain4j/internal/GsonJsonCodecTest$Example.age:I\n+  #14 = NameAndType        #15:#16        // age:I\n+  #15 = Utf8               age\n+  #16 = Utf8               I\n+  #17 = Methodref          #18.#19        // java/lang/String.equals:(Ljava/lang/Object;)Z\n+  #18 = Class              #20            // java/lang/String\n+  #19 = NameAndType        #21:#22        // equals:(Ljava/lang/Object;)Z\n+  #20 = Utf8               java/lang/String\n+  #21 = Utf8               equals\n+  #22 = Utf8               (Ljava/lang/Object;)Z\n+  #23 = Utf8               (Ljava/lang/String;I)V\n+  #24 = Utf8               Code\n+  #25 = Utf8               LineNumberTable\n+  #26 = Utf8               LocalVariableTable\n+  #27 = Utf8               this\n+  #28 = Utf8               Ldev/langchain4j/internal/GsonJsonCodecTest$Example;\n+  #29 = Utf8               o\n+  #30 = Utf8               Ljava/lang/Object;\n+  #31 = Utf8               example\n+  #32 = Utf8               StackMapTable\n+  #33 = Utf8               SourceFile\n+  #34 = Utf8               GsonJsonCodecTest.java\n+  #35 = Utf8               InnerClasses\n+  #36 = Class              #37            // dev/langchain4j/internal/GsonJsonCodecTest\n+  #37 = Utf8               dev/langchain4j/internal/GsonJsonCodecTest\n+  #38 = Utf8               Example\n {\n   public java.lang.String name;\n     descriptor: Ljava/lang/String;\n     flags: (0x0001) ACC_PUBLIC\n \n   public int age;\n     descriptor: I\n@@ -61,18 +60,18 @@\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=3, args_size=3\n          0: aload_0\n          1: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n          4: aload_0\n          5: aload_1\n-         6: putfield      #2                  // Field name:Ljava/lang/String;\n+         6: putfield      #7                  // Field name:Ljava/lang/String;\n          9: aload_0\n         10: iload_2\n-        11: putfield      #3                  // Field age:I\n+        11: putfield      #13                 // Field age:I\n         14: return\n       LineNumberTable:\n         line 20: 0\n         line 21: 4\n         line 22: 9\n         line 23: 14\n       LocalVariableTable:\n@@ -88,31 +87,31 @@\n       stack=2, locals=3, args_size=2\n          0: aload_0\n          1: aload_1\n          2: if_acmpne     7\n          5: iconst_1\n          6: ireturn\n          7: aload_1\n-         8: instanceof    #4                  // class dev/langchain4j/internal/GsonJsonCodecTest$Example\n+         8: instanceof    #8                  // class dev/langchain4j/internal/GsonJsonCodecTest$Example\n         11: ifne          16\n         14: iconst_0\n         15: ireturn\n         16: aload_1\n-        17: checkcast     #4                  // class dev/langchain4j/internal/GsonJsonCodecTest$Example\n+        17: checkcast     #8                  // class dev/langchain4j/internal/GsonJsonCodecTest$Example\n         20: astore_2\n         21: aload_0\n-        22: getfield      #3                  // Field age:I\n+        22: getfield      #13                 // Field age:I\n         25: aload_2\n-        26: getfield      #3                  // Field age:I\n+        26: getfield      #13                 // Field age:I\n         29: if_icmpne     50\n         32: aload_0\n-        33: getfield      #2                  // Field name:Ljava/lang/String;\n+        33: getfield      #7                  // Field name:Ljava/lang/String;\n         36: aload_2\n-        37: getfield      #2                  // Field name:Ljava/lang/String;\n-        40: invokevirtual #5                  // Method java/lang/String.equals:(Ljava/lang/Object;)Z\n+        37: getfield      #7                  // Field name:Ljava/lang/String;\n+        40: invokevirtual #17                 // Method java/lang/String.equals:(Ljava/lang/Object;)Z\n         43: ifeq          50\n         46: iconst_1\n         47: goto          51\n         50: iconst_0\n         51: ireturn\n       LineNumberTable:\n         line 27: 0\n@@ -133,8 +132,8 @@\n           offset_delta = 33\n           locals = [ class dev/langchain4j/internal/GsonJsonCodecTest$Example ]\n         frame_type = 64 /* same_locals_1_stack_item */\n           stack = [ int ]\n }\n SourceFile: \"GsonJsonCodecTest.java\"\n InnerClasses:\n-  public static #17= #4 of #32;           // Example=class dev/langchain4j/internal/GsonJsonCodecTest$Example of class dev/langchain4j/internal/GsonJsonCodecTest\n+  public static #38= #8 of #36;           // Example=class dev/langchain4j/internal/GsonJsonCodecTest$Example of class dev/langchain4j/internal/GsonJsonCodecTest\n"}]}, {"source1": "dev/langchain4j/internal/GsonJsonCodecTest.class", "source2": "dev/langchain4j/internal/GsonJsonCodecTest.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -27,47 +27,43 @@\n         return sb.toString();\n     }\n     \n     @Test\n     public void test() throws Exception {\n         final GsonJsonCodec codec = new GsonJsonCodec();\n         final GsonJsonCodecTest.Example example = new GsonJsonCodecTest.Example(\"John\", 42);\n-        this.assertThat(codec.fromJson(codec.toJson((Object)example), (Class)GsonJsonCodecTest.Example.class)).isEqualTo((Object)example);\n+        this.assertThat((Object)codec.fromJson(codec.toJson((Object)example), (Class)GsonJsonCodecTest.Example.class)).isEqualTo((Object)example);\n         final InputStream inputStream = codec.toInputStream((Object)example, (Class)GsonJsonCodecTest.Example.class);\n-        this.assertThat(codec.fromJson(readAllBytes(inputStream), (Class)GsonJsonCodecTest.Example.class)).isEqualTo((Object)example);\n+        this.assertThat((Object)codec.fromJson(readAllBytes(inputStream), (Class)GsonJsonCodecTest.Example.class)).isEqualTo((Object)example);\n     }\n     \n     @Test\n     public void test_map() {\n         final GsonJsonCodec codec = new GsonJsonCodec();\n         final TypeToken<Map<String, String>> tt = (TypeToken<Map<String, String>>)new GsonJsonCodecTest.GsonJsonCodecTest$1(this);\n         this.assertThat((Object)GsonJsonCodec.MAP_TYPE).isEqualTo((Object)tt.getType());\n         final Map<String, String> expectedMap = new HashMap<String, String>();\n         expectedMap.put(\"a\", \"b\");\n         this.assertThat(codec.toJson((Object)expectedMap)).isEqualTo(\"{\\n  \\\"a\\\": \\\"b\\\"\\n}\");\n         this.assertThat(codec.fromJson(\"{\\\"a\\\": \\\"b\\\"}\", (Class)expectedMap.getClass())).isEqualTo((Object)expectedMap);\n-        this.assertThatExceptionOfType((Class)JsonSyntaxException.class).isThrownBy(() -> {\n-            final Map map = (Map)codec.fromJson(\"{\\\"a\\\": [1, 2]}\", (Class)Map.class);\n-        });\n+        this.assertThatExceptionOfType((Class)JsonSyntaxException.class).isThrownBy(() -> codec.fromJson(\"{\\\"a\\\": [1, 2]}\", (Class)Map.class));\n     }\n     \n     @Test\n     public void test_datetime() {\n         final GsonJsonCodec codec = new GsonJsonCodec();\n         final GsonJsonCodecTest.DateExample example = new GsonJsonCodecTest.DateExample(LocalDate.of(2019, 1, 1), LocalDateTime.of(2019, 1, 1, 0, 0, 0));\n         this.assertThat(codec.toJson((Object)example)).isEqualTo(\"{\\n  \\\"localDate\\\": \\\"2019-01-01\\\",\\n  \\\"localDateTime\\\": \\\"2019-01-01T00:00:00\\\"\\n}\");\n-        this.assertThat(codec.fromJson(codec.toJson((Object)example), (Class)GsonJsonCodecTest.DateExample.class)).isEqualTo((Object)example);\n+        this.assertThat((Object)codec.fromJson(codec.toJson((Object)example), (Class)GsonJsonCodecTest.DateExample.class)).isEqualTo((Object)example);\n     }\n     \n     @Test\n     public void test_broken() {\n         final GsonJsonCodec codec = new GsonJsonCodec();\n-        this.assertThatExceptionOfType((Class)JsonSyntaxException.class).isThrownBy(() -> {\n-            final Integer n = (Integer)codec.fromJson(\"abc\", (Class)Integer.class);\n-        });\n+        this.assertThatExceptionOfType((Class)JsonSyntaxException.class).isThrownBy(() -> codec.fromJson(\"abc\", (Class)Integer.class));\n         this.assertThatExceptionOfType((Class)ClassCastException.class).isThrownBy(() -> {\n             try (final InputStream ignored = codec.toInputStream((Object)\"abc\", (Class)Integer.class)) {\n                 this.fail(\"should not reach here\");\n             }\n         });\n     }\n }\n"}]}, {"source1": "dev/langchain4j/internal/JsonTest$1.class", "source2": "dev/langchain4j/internal/JsonTest$1.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,26 +1,26 @@\n-  SHA-256 checksum 2d5430213280ef93715c10255cc666feeb21bfef7012ffa3b4c514c94a29825e\n+  SHA-256 checksum 70e690c2b88dd586da2c0bb47dbbbfff385e6fed786f76fb6007396ac09c28f1\n   Compiled from \"JsonTest.java\"\n class dev.langchain4j.internal.JsonTest$1\n   minor version: 0\n   major version: 52\n   flags: (0x1020) ACC_SUPER, ACC_SYNTHETIC\n   this_class: #1                          // dev/langchain4j/internal/JsonTest$1\n-  super_class: #2                         // java/lang/Object\n+  super_class: #3                         // java/lang/Object\n   interfaces: 0, fields: 0, methods: 0, attributes: 3\n Constant pool:\n-   #1 = Class              #7             // dev/langchain4j/internal/JsonTest$1\n-   #2 = Class              #9             // java/lang/Object\n-   #3 = Utf8               SourceFile\n-   #4 = Utf8               JsonTest.java\n-   #5 = Utf8               EnclosingMethod\n-   #6 = Class              #10            // dev/langchain4j/internal/JsonTest\n-   #7 = Utf8               dev/langchain4j/internal/JsonTest$1\n-   #8 = Utf8               InnerClasses\n-   #9 = Utf8               java/lang/Object\n-  #10 = Utf8               dev/langchain4j/internal/JsonTest\n+   #1 = Class              #2             // dev/langchain4j/internal/JsonTest$1\n+   #2 = Utf8               dev/langchain4j/internal/JsonTest$1\n+   #3 = Class              #4             // java/lang/Object\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               SourceFile\n+   #6 = Utf8               JsonTest.java\n+   #7 = Utf8               EnclosingMethod\n+   #8 = Class              #9             // dev/langchain4j/internal/JsonTest\n+   #9 = Utf8               dev/langchain4j/internal/JsonTest\n+  #10 = Utf8               InnerClasses\n {\n }\n SourceFile: \"JsonTest.java\"\n-EnclosingMethod: #6.#0                  // dev.langchain4j.internal.JsonTest\n+EnclosingMethod: #8.#0                  // dev.langchain4j.internal.JsonTest\n InnerClasses:\n   static #1;                              // class dev/langchain4j/internal/JsonTest$1\n"}]}, {"source1": "dev/langchain4j/internal/JsonTest$TestData.class", "source2": "dev/langchain4j/internal/JsonTest$TestData.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,124 +1,124 @@\n-  SHA-256 checksum 15b3833712bd2873f9d32780bd58ea1e7136963a7002ea85f36388785521d651\n+  SHA-256 checksum dcc7488004033d27414cd51577661b35d72ef19a3900505b1dae13ea6b5da4b3\n   Compiled from \"JsonTest.java\"\n class dev.langchain4j.internal.JsonTest$TestData\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #6                          // dev/langchain4j/internal/JsonTest$TestData\n-  super_class: #7                         // java/lang/Object\n+  this_class: #2                          // dev/langchain4j/internal/JsonTest$TestData\n+  super_class: #8                         // java/lang/Object\n   interfaces: 0, fields: 3, methods: 8, attributes: 2\n Constant pool:\n-   #1 = Methodref          #6.#45         // dev/langchain4j/internal/JsonTest$TestData.\"<init>\":()V\n-   #2 = Methodref          #7.#45         // java/lang/Object.\"<init>\":()V\n-   #3 = Fieldref           #6.#46         // dev/langchain4j/internal/JsonTest$TestData.sampleDate:Ljava/time/LocalDate;\n-   #4 = Fieldref           #6.#47         // dev/langchain4j/internal/JsonTest$TestData.sampleDateTime:Ljava/time/LocalDateTime;\n-   #5 = Fieldref           #6.#48         // dev/langchain4j/internal/JsonTest$TestData.someValue:Ljava/lang/String;\n-   #6 = Class              #50            // dev/langchain4j/internal/JsonTest$TestData\n-   #7 = Class              #51            // java/lang/Object\n-   #8 = Utf8               sampleDate\n-   #9 = Utf8               Ljava/time/LocalDate;\n-  #10 = Utf8               sampleDateTime\n-  #11 = Utf8               Ljava/time/LocalDateTime;\n-  #12 = Utf8               someValue\n-  #13 = Utf8               Ljava/lang/String;\n-  #14 = Utf8               RuntimeVisibleAnnotations\n-  #15 = Utf8               Lcom/google/gson/annotations/SerializedName;\n-  #16 = Utf8               value\n-  #17 = Utf8               some_value\n-  #18 = Utf8               <init>\n-  #19 = Utf8               ()V\n-  #20 = Utf8               Code\n-  #21 = Utf8               LineNumberTable\n-  #22 = Utf8               LocalVariableTable\n-  #23 = Utf8               this\n-  #24 = Utf8               TestData\n-  #25 = Utf8               InnerClasses\n-  #26 = Utf8               Ldev/langchain4j/internal/JsonTest$TestData;\n-  #27 = Utf8               getSampleDate\n-  #28 = Utf8               ()Ljava/time/LocalDate;\n-  #29 = Utf8               setSampleDate\n-  #30 = Utf8               (Ljava/time/LocalDate;)V\n-  #31 = Utf8               getSampleDateTime\n-  #32 = Utf8               ()Ljava/time/LocalDateTime;\n-  #33 = Utf8               setSampleDateTime\n-  #34 = Utf8               (Ljava/time/LocalDateTime;)V\n-  #35 = Utf8               getSomeValue\n-  #36 = Utf8               ()Ljava/lang/String;\n-  #37 = Utf8               setSomeValue\n-  #38 = Utf8               (Ljava/lang/String;)V\n-  #39 = Class              #52            // dev/langchain4j/internal/JsonTest$1\n-  #40 = Utf8               (Ldev/langchain4j/internal/JsonTest$1;)V\n-  #41 = Utf8               x0\n-  #42 = Utf8               Ldev/langchain4j/internal/JsonTest$1;\n-  #43 = Utf8               SourceFile\n-  #44 = Utf8               JsonTest.java\n-  #45 = NameAndType        #18:#19        // \"<init>\":()V\n-  #46 = NameAndType        #8:#9          // sampleDate:Ljava/time/LocalDate;\n-  #47 = NameAndType        #10:#11        // sampleDateTime:Ljava/time/LocalDateTime;\n-  #48 = NameAndType        #12:#13        // someValue:Ljava/lang/String;\n-  #49 = Class              #53            // dev/langchain4j/internal/JsonTest\n-  #50 = Utf8               dev/langchain4j/internal/JsonTest$TestData\n-  #51 = Utf8               java/lang/Object\n-  #52 = Utf8               dev/langchain4j/internal/JsonTest$1\n-  #53 = Utf8               dev/langchain4j/internal/JsonTest\n+   #1 = Methodref          #2.#3          // dev/langchain4j/internal/JsonTest$TestData.\"<init>\":()V\n+   #2 = Class              #4             // dev/langchain4j/internal/JsonTest$TestData\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               dev/langchain4j/internal/JsonTest$TestData\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Methodref          #8.#3          // java/lang/Object.\"<init>\":()V\n+   #8 = Class              #9             // java/lang/Object\n+   #9 = Utf8               java/lang/Object\n+  #10 = Fieldref           #2.#11         // dev/langchain4j/internal/JsonTest$TestData.sampleDate:Ljava/time/LocalDate;\n+  #11 = NameAndType        #12:#13        // sampleDate:Ljava/time/LocalDate;\n+  #12 = Utf8               sampleDate\n+  #13 = Utf8               Ljava/time/LocalDate;\n+  #14 = Fieldref           #2.#15         // dev/langchain4j/internal/JsonTest$TestData.sampleDateTime:Ljava/time/LocalDateTime;\n+  #15 = NameAndType        #16:#17        // sampleDateTime:Ljava/time/LocalDateTime;\n+  #16 = Utf8               sampleDateTime\n+  #17 = Utf8               Ljava/time/LocalDateTime;\n+  #18 = Fieldref           #2.#19         // dev/langchain4j/internal/JsonTest$TestData.someValue:Ljava/lang/String;\n+  #19 = NameAndType        #20:#21        // someValue:Ljava/lang/String;\n+  #20 = Utf8               someValue\n+  #21 = Utf8               Ljava/lang/String;\n+  #22 = Utf8               RuntimeVisibleAnnotations\n+  #23 = Utf8               Lcom/google/gson/annotations/SerializedName;\n+  #24 = Utf8               value\n+  #25 = Utf8               some_value\n+  #26 = Utf8               Code\n+  #27 = Utf8               LineNumberTable\n+  #28 = Utf8               LocalVariableTable\n+  #29 = Utf8               this\n+  #30 = Utf8               Ldev/langchain4j/internal/JsonTest$TestData;\n+  #31 = Utf8               getSampleDate\n+  #32 = Utf8               ()Ljava/time/LocalDate;\n+  #33 = Utf8               setSampleDate\n+  #34 = Utf8               (Ljava/time/LocalDate;)V\n+  #35 = Utf8               getSampleDateTime\n+  #36 = Utf8               ()Ljava/time/LocalDateTime;\n+  #37 = Utf8               setSampleDateTime\n+  #38 = Utf8               (Ljava/time/LocalDateTime;)V\n+  #39 = Utf8               getSomeValue\n+  #40 = Utf8               ()Ljava/lang/String;\n+  #41 = Utf8               setSomeValue\n+  #42 = Utf8               (Ljava/lang/String;)V\n+  #43 = Utf8               (Ldev/langchain4j/internal/JsonTest$1;)V\n+  #44 = Utf8               x0\n+  #45 = Utf8               Ldev/langchain4j/internal/JsonTest$1;\n+  #46 = Utf8               SourceFile\n+  #47 = Utf8               JsonTest.java\n+  #48 = Utf8               InnerClasses\n+  #49 = Class              #50            // dev/langchain4j/internal/JsonTest\n+  #50 = Utf8               dev/langchain4j/internal/JsonTest\n+  #51 = Utf8               TestData\n+  #52 = Class              #53            // dev/langchain4j/internal/JsonTest$1\n+  #53 = Utf8               dev/langchain4j/internal/JsonTest$1\n {\n   private java.time.LocalDate sampleDate;\n     descriptor: Ljava/time/LocalDate;\n     flags: (0x0002) ACC_PRIVATE\n \n   private java.time.LocalDateTime sampleDateTime;\n     descriptor: Ljava/time/LocalDateTime;\n     flags: (0x0002) ACC_PRIVATE\n \n   private java.lang.String someValue;\n     descriptor: Ljava/lang/String;\n     flags: (0x0002) ACC_PRIVATE\n     RuntimeVisibleAnnotations:\n-      0: #15(#16=s#17)\n+      0: #23(#24=s#25)\n         com.google.gson.annotations.SerializedName(\n           value=\"some_value\"\n         )\n \n   private dev.langchain4j.internal.JsonTest$TestData();\n     descriptor: ()V\n     flags: (0x0002) ACC_PRIVATE\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n-         1: invokespecial #2                  // Method java/lang/Object.\"<init>\":()V\n+         1: invokespecial #7                  // Method java/lang/Object.\"<init>\":()V\n          4: return\n       LineNumberTable:\n         line 82: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       5     0  this   Ldev/langchain4j/internal/JsonTest$TestData;\n \n   java.time.LocalDate getSampleDate();\n     descriptor: ()Ljava/time/LocalDate;\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n-         1: getfield      #3                  // Field sampleDate:Ljava/time/LocalDate;\n+         1: getfield      #10                 // Field sampleDate:Ljava/time/LocalDate;\n          4: areturn\n       LineNumberTable:\n         line 90: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       5     0  this   Ldev/langchain4j/internal/JsonTest$TestData;\n \n   void setSampleDate(java.time.LocalDate);\n     descriptor: (Ljava/time/LocalDate;)V\n     flags: (0x0000)\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #3                  // Field sampleDate:Ljava/time/LocalDate;\n+         2: putfield      #10                 // Field sampleDate:Ljava/time/LocalDate;\n          5: return\n       LineNumberTable:\n         line 94: 0\n         line 95: 5\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       6     0  this   Ldev/langchain4j/internal/JsonTest$TestData;\n@@ -126,30 +126,30 @@\n \n   java.time.LocalDateTime getSampleDateTime();\n     descriptor: ()Ljava/time/LocalDateTime;\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n-         1: getfield      #4                  // Field sampleDateTime:Ljava/time/LocalDateTime;\n+         1: getfield      #14                 // Field sampleDateTime:Ljava/time/LocalDateTime;\n          4: areturn\n       LineNumberTable:\n         line 98: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       5     0  this   Ldev/langchain4j/internal/JsonTest$TestData;\n \n   void setSampleDateTime(java.time.LocalDateTime);\n     descriptor: (Ljava/time/LocalDateTime;)V\n     flags: (0x0000)\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #4                  // Field sampleDateTime:Ljava/time/LocalDateTime;\n+         2: putfield      #14                 // Field sampleDateTime:Ljava/time/LocalDateTime;\n          5: return\n       LineNumberTable:\n         line 102: 0\n         line 103: 5\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       6     0  this   Ldev/langchain4j/internal/JsonTest$TestData;\n@@ -157,30 +157,30 @@\n \n   java.lang.String getSomeValue();\n     descriptor: ()Ljava/lang/String;\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n-         1: getfield      #5                  // Field someValue:Ljava/lang/String;\n+         1: getfield      #18                 // Field someValue:Ljava/lang/String;\n          4: areturn\n       LineNumberTable:\n         line 106: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       5     0  this   Ldev/langchain4j/internal/JsonTest$TestData;\n \n   void setSomeValue(java.lang.String);\n     descriptor: (Ljava/lang/String;)V\n     flags: (0x0000)\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #5                  // Field someValue:Ljava/lang/String;\n+         2: putfield      #18                 // Field someValue:Ljava/lang/String;\n          5: return\n       LineNumberTable:\n         line 110: 0\n         line 111: 5\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       6     0  this   Ldev/langchain4j/internal/JsonTest$TestData;\n@@ -199,9 +199,9 @@\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       5     0  this   Ldev/langchain4j/internal/JsonTest$TestData;\n             0       5     1    x0   Ldev/langchain4j/internal/JsonTest$1;\n }\n SourceFile: \"JsonTest.java\"\n InnerClasses:\n-  private static #24= #6 of #49;          // TestData=class dev/langchain4j/internal/JsonTest$TestData of class dev/langchain4j/internal/JsonTest\n-  static #39;                             // class dev/langchain4j/internal/JsonTest$1\n+  private static #51= #2 of #49;          // TestData=class dev/langchain4j/internal/JsonTest$TestData of class dev/langchain4j/internal/JsonTest\n+  static #52;                             // class dev/langchain4j/internal/JsonTest$1\n"}]}, {"source1": "dev/langchain4j/internal/JsonTest$TestObject.class", "source2": "dev/langchain4j/internal/JsonTest$TestObject.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,49 +1,49 @@\n-  SHA-256 checksum 305fac544d8e09a66c9dfc70501973acfcfcb882db60d36ac0cb1b2a07cb6248\n+  SHA-256 checksum 20cc4e6f88bbc140ca6efef153c0d6881f0612444f3fe0e39239a0edc7ee8d16\n   Compiled from \"JsonTest.java\"\n class dev.langchain4j.internal.JsonTest$TestObject\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #5                          // dev/langchain4j/internal/JsonTest$TestObject\n-  super_class: #6                         // java/lang/Object\n+  this_class: #8                          // dev/langchain4j/internal/JsonTest$TestObject\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 3, methods: 1, attributes: 2\n Constant pool:\n-   #1 = Methodref          #6.#24         // java/lang/Object.\"<init>\":()V\n-   #2 = Fieldref           #5.#25         // dev/langchain4j/internal/JsonTest$TestObject.name:Ljava/lang/String;\n-   #3 = Fieldref           #5.#26         // dev/langchain4j/internal/JsonTest$TestObject.date:Ljava/time/LocalDate;\n-   #4 = Fieldref           #5.#27         // dev/langchain4j/internal/JsonTest$TestObject.dateTime:Ljava/time/LocalDateTime;\n-   #5 = Class              #29            // dev/langchain4j/internal/JsonTest$TestObject\n-   #6 = Class              #30            // java/lang/Object\n-   #7 = Utf8               name\n-   #8 = Utf8               Ljava/lang/String;\n-   #9 = Utf8               date\n-  #10 = Utf8               Ljava/time/LocalDate;\n-  #11 = Utf8               dateTime\n-  #12 = Utf8               Ljava/time/LocalDateTime;\n-  #13 = Utf8               <init>\n-  #14 = Utf8               (Ljava/lang/String;Ljava/time/LocalDate;Ljava/time/LocalDateTime;)V\n-  #15 = Utf8               Code\n-  #16 = Utf8               LineNumberTable\n-  #17 = Utf8               LocalVariableTable\n-  #18 = Utf8               this\n-  #19 = Utf8               TestObject\n-  #20 = Utf8               InnerClasses\n-  #21 = Utf8               Ldev/langchain4j/internal/JsonTest$TestObject;\n-  #22 = Utf8               SourceFile\n-  #23 = Utf8               JsonTest.java\n-  #24 = NameAndType        #13:#31        // \"<init>\":()V\n-  #25 = NameAndType        #7:#8          // name:Ljava/lang/String;\n-  #26 = NameAndType        #9:#10         // date:Ljava/time/LocalDate;\n-  #27 = NameAndType        #11:#12        // dateTime:Ljava/time/LocalDateTime;\n-  #28 = Class              #32            // dev/langchain4j/internal/JsonTest\n-  #29 = Utf8               dev/langchain4j/internal/JsonTest$TestObject\n-  #30 = Utf8               java/lang/Object\n-  #31 = Utf8               ()V\n-  #32 = Utf8               dev/langchain4j/internal/JsonTest\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Fieldref           #8.#9          // dev/langchain4j/internal/JsonTest$TestObject.name:Ljava/lang/String;\n+   #8 = Class              #10            // dev/langchain4j/internal/JsonTest$TestObject\n+   #9 = NameAndType        #11:#12        // name:Ljava/lang/String;\n+  #10 = Utf8               dev/langchain4j/internal/JsonTest$TestObject\n+  #11 = Utf8               name\n+  #12 = Utf8               Ljava/lang/String;\n+  #13 = Fieldref           #8.#14         // dev/langchain4j/internal/JsonTest$TestObject.date:Ljava/time/LocalDate;\n+  #14 = NameAndType        #15:#16        // date:Ljava/time/LocalDate;\n+  #15 = Utf8               date\n+  #16 = Utf8               Ljava/time/LocalDate;\n+  #17 = Fieldref           #8.#18         // dev/langchain4j/internal/JsonTest$TestObject.dateTime:Ljava/time/LocalDateTime;\n+  #18 = NameAndType        #19:#20        // dateTime:Ljava/time/LocalDateTime;\n+  #19 = Utf8               dateTime\n+  #20 = Utf8               Ljava/time/LocalDateTime;\n+  #21 = Utf8               (Ljava/lang/String;Ljava/time/LocalDate;Ljava/time/LocalDateTime;)V\n+  #22 = Utf8               Code\n+  #23 = Utf8               LineNumberTable\n+  #24 = Utf8               LocalVariableTable\n+  #25 = Utf8               this\n+  #26 = Utf8               Ldev/langchain4j/internal/JsonTest$TestObject;\n+  #27 = Utf8               SourceFile\n+  #28 = Utf8               JsonTest.java\n+  #29 = Utf8               InnerClasses\n+  #30 = Class              #31            // dev/langchain4j/internal/JsonTest\n+  #31 = Utf8               dev/langchain4j/internal/JsonTest\n+  #32 = Utf8               TestObject\n {\n   private final java.lang.String name;\n     descriptor: Ljava/lang/String;\n     flags: (0x0012) ACC_PRIVATE, ACC_FINAL\n \n   private final java.time.LocalDate date;\n     descriptor: Ljava/time/LocalDate;\n@@ -58,21 +58,21 @@\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=4, args_size=4\n          0: aload_0\n          1: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n          4: aload_0\n          5: aload_1\n-         6: putfield      #2                  // Field name:Ljava/lang/String;\n+         6: putfield      #7                  // Field name:Ljava/lang/String;\n          9: aload_0\n         10: aload_2\n-        11: putfield      #3                  // Field date:Ljava/time/LocalDate;\n+        11: putfield      #13                 // Field date:Ljava/time/LocalDate;\n         14: aload_0\n         15: aload_3\n-        16: putfield      #4                  // Field dateTime:Ljava/time/LocalDateTime;\n+        16: putfield      #17                 // Field dateTime:Ljava/time/LocalDateTime;\n         19: return\n       LineNumberTable:\n         line 75: 0\n         line 76: 4\n         line 77: 9\n         line 78: 14\n         line 79: 19\n@@ -81,8 +81,8 @@\n             0      20     0  this   Ldev/langchain4j/internal/JsonTest$TestObject;\n             0      20     1  name   Ljava/lang/String;\n             0      20     2  date   Ljava/time/LocalDate;\n             0      20     3 dateTime   Ljava/time/LocalDateTime;\n }\n SourceFile: \"JsonTest.java\"\n InnerClasses:\n-  private static #19= #5 of #28;          // TestObject=class dev/langchain4j/internal/JsonTest$TestObject of class dev/langchain4j/internal/JsonTest\n+  private static #32= #8 of #30;          // TestObject=class dev/langchain4j/internal/JsonTest$TestObject of class dev/langchain4j/internal/JsonTest\n"}]}, {"source1": "dev/langchain4j/internal/JsonTest.class", "source2": "dev/langchain4j/internal/JsonTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,208 +1,203 @@\n-  SHA-256 checksum 063c3098290f40c7375a2ffcbd5d34a0d5c1188f8ac6bfb98de94a923c68e48b\n+  SHA-256 checksum 29d57d440bdd5a71a6056be5b229a9cb956578fa888c7251cff7115103295b84\n   Compiled from \"JsonTest.java\"\n class dev.langchain4j.internal.JsonTest\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #41                         // dev/langchain4j/internal/JsonTest\n-  super_class: #42                        // java/lang/Object\n+  this_class: #148                        // dev/langchain4j/internal/JsonTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 0, methods: 3, attributes: 2\n Constant pool:\n-    #1 = Methodref          #42.#84       // java/lang/Object.\"<init>\":()V\n-    #2 = Class              #85           // dev/langchain4j/internal/JsonTest$TestData\n-    #3 = Methodref          #2.#86        // dev/langchain4j/internal/JsonTest$TestData.\"<init>\":(Ldev/langchain4j/internal/JsonTest$1;)V\n-    #4 = Methodref          #87.#88       // java/time/LocalDate.of:(III)Ljava/time/LocalDate;\n-    #5 = Methodref          #2.#89        // dev/langchain4j/internal/JsonTest$TestData.setSampleDate:(Ljava/time/LocalDate;)V\n-    #6 = Methodref          #90.#91       // java/time/LocalDateTime.of:(IIIII)Ljava/time/LocalDateTime;\n-    #7 = Methodref          #2.#92        // dev/langchain4j/internal/JsonTest$TestData.setSampleDateTime:(Ljava/time/LocalDateTime;)V\n-    #8 = String             #93           // value\n-    #9 = Methodref          #2.#94        // dev/langchain4j/internal/JsonTest$TestData.setSomeValue:(Ljava/lang/String;)V\n-   #10 = Methodref          #95.#96       // dev/langchain4j/internal/Json.toJson:(Ljava/lang/Object;)Ljava/lang/String;\n-   #11 = Methodref          #97.#98       // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #12 = String             #99           // {\\n  \\\"sampleDate\\\": \\\"2023-01-15\\\",\\n  \\\"sampleDateTime\\\": \\\"2023-01-15T10:20:00\\\",\\n  \\\"some_value\\\": \\\"value\\\"\\n}\n-   #13 = Methodref          #100.#101     // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #14 = Methodref          #95.#102      // dev/langchain4j/internal/Json.fromJson:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;\n-   #15 = Methodref          #2.#103       // dev/langchain4j/internal/JsonTest$TestData.getSampleDate:()Ljava/time/LocalDate;\n-   #16 = Methodref          #97.#104      // org/assertj/core/api/Assertions.assertThat:(Ljava/time/LocalDate;)Lorg/assertj/core/api/AbstractLocalDateAssert;\n-   #17 = Methodref          #105.#106     // org/assertj/core/api/AbstractLocalDateAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #18 = Methodref          #2.#107       // dev/langchain4j/internal/JsonTest$TestData.getSampleDateTime:()Ljava/time/LocalDateTime;\n-   #19 = Methodref          #97.#108      // org/assertj/core/api/Assertions.assertThat:(Ljava/time/LocalDateTime;)Lorg/assertj/core/api/AbstractLocalDateTimeAssert;\n-   #20 = Methodref          #109.#110     // org/assertj/core/api/AbstractLocalDateTimeAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractLocalDateTimeAssert;\n-   #21 = Methodref          #2.#111       // dev/langchain4j/internal/JsonTest$TestData.getSomeValue:()Ljava/lang/String;\n-   #22 = Class              #112          // dev/langchain4j/internal/JsonTest$TestObject\n-   #23 = String             #113          // John\n-   #24 = Methodref          #22.#114      // dev/langchain4j/internal/JsonTest$TestObject.\"<init>\":(Ljava/lang/String;Ljava/time/LocalDate;Ljava/time/LocalDateTime;)V\n-   #25 = String             #115          // Jane\n-   #26 = Methodref          #116.#117     // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-   #27 = String             #118          // [{\\\"name\\\":\\\"John\\\",\\\"date\\\":\\\"2021-08-17\\\",\\\"dateTime\\\":\\\"2021-08-17T14:20:00\\\"},{\\\"name\\\":\\\"Jane\\\",\\\"date\\\":\\\"2021-08-16\\\",\\\"dateTime\\\":\\\"2021-08-16T13:19:00\\\"}]\n-   #28 = Class              #119          // java/util/List\n-   #29 = Methodref          #95.#120      // dev/langchain4j/internal/Json.toInputStream:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/io/InputStream;\n-   #30 = Class              #121          // java/io/BufferedReader\n-   #31 = Class              #122          // java/io/InputStreamReader\n-   #32 = Methodref          #31.#123      // java/io/InputStreamReader.\"<init>\":(Ljava/io/InputStream;)V\n-   #33 = Methodref          #30.#124      // java/io/BufferedReader.\"<init>\":(Ljava/io/Reader;)V\n-   #34 = Methodref          #30.#125      // java/io/BufferedReader.lines:()Ljava/util/stream/Stream;\n-   #35 = Methodref          #126.#127     // java/util/stream/Collectors.joining:()Ljava/util/stream/Collector;\n-   #36 = InterfaceMethodref #128.#129     // java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n-   #37 = Class              #130          // java/lang/String\n-   #38 = Methodref          #30.#131      // java/io/BufferedReader.close:()V\n-   #39 = Class              #132          // java/lang/Throwable\n-   #40 = Methodref          #39.#133      // java/lang/Throwable.addSuppressed:(Ljava/lang/Throwable;)V\n-   #41 = Class              #134          // dev/langchain4j/internal/JsonTest\n-   #42 = Class              #135          // java/lang/Object\n-   #43 = Class              #136          // dev/langchain4j/internal/JsonTest$1\n-   #44 = Utf8               InnerClasses\n-   #45 = Utf8               TestData\n-   #46 = Utf8               TestObject\n-   #47 = Utf8               <init>\n-   #48 = Utf8               ()V\n-   #49 = Utf8               Code\n-   #50 = Utf8               LineNumberTable\n-   #51 = Utf8               LocalVariableTable\n-   #52 = Utf8               this\n-   #53 = Utf8               Ldev/langchain4j/internal/JsonTest;\n-   #54 = Utf8               conversionToJsonAndFromJsonWorks\n-   #55 = Utf8               testData\n-   #56 = Utf8               Ldev/langchain4j/internal/JsonTest$TestData;\n-   #57 = Utf8               json\n-   #58 = Utf8               Ljava/lang/String;\n-   #59 = Utf8               deserializedData\n-   #60 = Utf8               RuntimeVisibleAnnotations\n-   #61 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #62 = Utf8               toInputStreamWorksForList\n-   #63 = Utf8               resultJson\n-   #64 = Utf8               bufferedReader\n-   #65 = Utf8               Ljava/io/BufferedReader;\n-   #66 = Utf8               testObjects\n-   #67 = Utf8               Ljava/util/List;\n-   #68 = Utf8               expectedJson\n-   #69 = Utf8               inputStream\n-   #70 = Utf8               Ljava/io/InputStream;\n-   #71 = Utf8               LocalVariableTypeTable\n-   #72 = Utf8               Ljava/util/List<Ldev/langchain4j/internal/JsonTest$TestObject;>;\n-   #73 = Utf8               StackMapTable\n-   #74 = Class              #134          // dev/langchain4j/internal/JsonTest\n-   #75 = Class              #119          // java/util/List\n-   #76 = Class              #130          // java/lang/String\n-   #77 = Class              #137          // java/io/InputStream\n-   #78 = Class              #121          // java/io/BufferedReader\n-   #79 = Class              #132          // java/lang/Throwable\n-   #80 = Utf8               Exceptions\n-   #81 = Class              #138          // java/io/IOException\n-   #82 = Utf8               SourceFile\n-   #83 = Utf8               JsonTest.java\n-   #84 = NameAndType        #47:#48       // \"<init>\":()V\n-   #85 = Utf8               dev/langchain4j/internal/JsonTest$TestData\n-   #86 = NameAndType        #47:#139      // \"<init>\":(Ldev/langchain4j/internal/JsonTest$1;)V\n-   #87 = Class              #140          // java/time/LocalDate\n-   #88 = NameAndType        #141:#142     // of:(III)Ljava/time/LocalDate;\n-   #89 = NameAndType        #143:#144     // setSampleDate:(Ljava/time/LocalDate;)V\n-   #90 = Class              #145          // java/time/LocalDateTime\n-   #91 = NameAndType        #141:#146     // of:(IIIII)Ljava/time/LocalDateTime;\n-   #92 = NameAndType        #147:#148     // setSampleDateTime:(Ljava/time/LocalDateTime;)V\n-   #93 = Utf8               value\n-   #94 = NameAndType        #149:#150     // setSomeValue:(Ljava/lang/String;)V\n-   #95 = Class              #151          // dev/langchain4j/internal/Json\n-   #96 = NameAndType        #152:#153     // toJson:(Ljava/lang/Object;)Ljava/lang/String;\n-   #97 = Class              #154          // org/assertj/core/api/Assertions\n-   #98 = NameAndType        #155:#156     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #99 = Utf8               {\\n  \\\"sampleDate\\\": \\\"2023-01-15\\\",\\n  \\\"sampleDateTime\\\": \\\"2023-01-15T10:20:00\\\",\\n  \\\"some_value\\\": \\\"value\\\"\\n}\n-  #100 = Class              #157          // org/assertj/core/api/AbstractStringAssert\n-  #101 = NameAndType        #158:#156     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #102 = NameAndType        #159:#160     // fromJson:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;\n-  #103 = NameAndType        #161:#162     // getSampleDate:()Ljava/time/LocalDate;\n-  #104 = NameAndType        #155:#163     // assertThat:(Ljava/time/LocalDate;)Lorg/assertj/core/api/AbstractLocalDateAssert;\n-  #105 = Class              #164          // org/assertj/core/api/AbstractLocalDateAssert\n-  #106 = NameAndType        #158:#165     // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #107 = NameAndType        #166:#167     // getSampleDateTime:()Ljava/time/LocalDateTime;\n-  #108 = NameAndType        #155:#168     // assertThat:(Ljava/time/LocalDateTime;)Lorg/assertj/core/api/AbstractLocalDateTimeAssert;\n-  #109 = Class              #169          // org/assertj/core/api/AbstractLocalDateTimeAssert\n-  #110 = NameAndType        #158:#170     // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractLocalDateTimeAssert;\n-  #111 = NameAndType        #171:#172     // getSomeValue:()Ljava/lang/String;\n-  #112 = Utf8               dev/langchain4j/internal/JsonTest$TestObject\n-  #113 = Utf8               John\n-  #114 = NameAndType        #47:#173      // \"<init>\":(Ljava/lang/String;Ljava/time/LocalDate;Ljava/time/LocalDateTime;)V\n-  #115 = Utf8               Jane\n-  #116 = Class              #174          // java/util/Arrays\n-  #117 = NameAndType        #175:#176     // asList:([Ljava/lang/Object;)Ljava/util/List;\n-  #118 = Utf8               [{\\\"name\\\":\\\"John\\\",\\\"date\\\":\\\"2021-08-17\\\",\\\"dateTime\\\":\\\"2021-08-17T14:20:00\\\"},{\\\"name\\\":\\\"Jane\\\",\\\"date\\\":\\\"2021-08-16\\\",\\\"dateTime\\\":\\\"2021-08-16T13:19:00\\\"}]\n-  #119 = Utf8               java/util/List\n-  #120 = NameAndType        #177:#178     // toInputStream:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/io/InputStream;\n-  #121 = Utf8               java/io/BufferedReader\n-  #122 = Utf8               java/io/InputStreamReader\n-  #123 = NameAndType        #47:#179      // \"<init>\":(Ljava/io/InputStream;)V\n-  #124 = NameAndType        #47:#180      // \"<init>\":(Ljava/io/Reader;)V\n-  #125 = NameAndType        #181:#182     // lines:()Ljava/util/stream/Stream;\n-  #126 = Class              #183          // java/util/stream/Collectors\n-  #127 = NameAndType        #184:#185     // joining:()Ljava/util/stream/Collector;\n-  #128 = Class              #186          // java/util/stream/Stream\n-  #129 = NameAndType        #187:#188     // collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n-  #130 = Utf8               java/lang/String\n-  #131 = NameAndType        #189:#48      // close:()V\n-  #132 = Utf8               java/lang/Throwable\n-  #133 = NameAndType        #190:#191     // addSuppressed:(Ljava/lang/Throwable;)V\n-  #134 = Utf8               dev/langchain4j/internal/JsonTest\n-  #135 = Utf8               java/lang/Object\n-  #136 = Utf8               dev/langchain4j/internal/JsonTest$1\n-  #137 = Utf8               java/io/InputStream\n-  #138 = Utf8               java/io/IOException\n-  #139 = Utf8               (Ldev/langchain4j/internal/JsonTest$1;)V\n-  #140 = Utf8               java/time/LocalDate\n-  #141 = Utf8               of\n-  #142 = Utf8               (III)Ljava/time/LocalDate;\n-  #143 = Utf8               setSampleDate\n-  #144 = Utf8               (Ljava/time/LocalDate;)V\n-  #145 = Utf8               java/time/LocalDateTime\n-  #146 = Utf8               (IIIII)Ljava/time/LocalDateTime;\n-  #147 = Utf8               setSampleDateTime\n-  #148 = Utf8               (Ljava/time/LocalDateTime;)V\n-  #149 = Utf8               setSomeValue\n-  #150 = Utf8               (Ljava/lang/String;)V\n-  #151 = Utf8               dev/langchain4j/internal/Json\n-  #152 = Utf8               toJson\n-  #153 = Utf8               (Ljava/lang/Object;)Ljava/lang/String;\n-  #154 = Utf8               org/assertj/core/api/Assertions\n-  #155 = Utf8               assertThat\n-  #156 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #157 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #158 = Utf8               isEqualTo\n-  #159 = Utf8               fromJson\n-  #160 = Utf8               (Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;\n-  #161 = Utf8               getSampleDate\n-  #162 = Utf8               ()Ljava/time/LocalDate;\n-  #163 = Utf8               (Ljava/time/LocalDate;)Lorg/assertj/core/api/AbstractLocalDateAssert;\n-  #164 = Utf8               org/assertj/core/api/AbstractLocalDateAssert\n-  #165 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #166 = Utf8               getSampleDateTime\n-  #167 = Utf8               ()Ljava/time/LocalDateTime;\n-  #168 = Utf8               (Ljava/time/LocalDateTime;)Lorg/assertj/core/api/AbstractLocalDateTimeAssert;\n-  #169 = Utf8               org/assertj/core/api/AbstractLocalDateTimeAssert\n-  #170 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractLocalDateTimeAssert;\n-  #171 = Utf8               getSomeValue\n-  #172 = Utf8               ()Ljava/lang/String;\n-  #173 = Utf8               (Ljava/lang/String;Ljava/time/LocalDate;Ljava/time/LocalDateTime;)V\n-  #174 = Utf8               java/util/Arrays\n-  #175 = Utf8               asList\n-  #176 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n-  #177 = Utf8               toInputStream\n-  #178 = Utf8               (Ljava/lang/Object;Ljava/lang/Class;)Ljava/io/InputStream;\n-  #179 = Utf8               (Ljava/io/InputStream;)V\n-  #180 = Utf8               (Ljava/io/Reader;)V\n-  #181 = Utf8               lines\n-  #182 = Utf8               ()Ljava/util/stream/Stream;\n-  #183 = Utf8               java/util/stream/Collectors\n-  #184 = Utf8               joining\n-  #185 = Utf8               ()Ljava/util/stream/Collector;\n-  #186 = Utf8               java/util/stream/Stream\n-  #187 = Utf8               collect\n-  #188 = Utf8               (Ljava/util/stream/Collector;)Ljava/lang/Object;\n-  #189 = Utf8               close\n-  #190 = Utf8               addSuppressed\n-  #191 = Utf8               (Ljava/lang/Throwable;)V\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Class              #8            // dev/langchain4j/internal/JsonTest$TestData\n+    #8 = Utf8               dev/langchain4j/internal/JsonTest$TestData\n+    #9 = Methodref          #7.#10        // dev/langchain4j/internal/JsonTest$TestData.\"<init>\":(Ldev/langchain4j/internal/JsonTest$1;)V\n+   #10 = NameAndType        #5:#11        // \"<init>\":(Ldev/langchain4j/internal/JsonTest$1;)V\n+   #11 = Utf8               (Ldev/langchain4j/internal/JsonTest$1;)V\n+   #12 = Methodref          #13.#14       // java/time/LocalDate.of:(III)Ljava/time/LocalDate;\n+   #13 = Class              #15           // java/time/LocalDate\n+   #14 = NameAndType        #16:#17       // of:(III)Ljava/time/LocalDate;\n+   #15 = Utf8               java/time/LocalDate\n+   #16 = Utf8               of\n+   #17 = Utf8               (III)Ljava/time/LocalDate;\n+   #18 = Methodref          #7.#19        // dev/langchain4j/internal/JsonTest$TestData.setSampleDate:(Ljava/time/LocalDate;)V\n+   #19 = NameAndType        #20:#21       // setSampleDate:(Ljava/time/LocalDate;)V\n+   #20 = Utf8               setSampleDate\n+   #21 = Utf8               (Ljava/time/LocalDate;)V\n+   #22 = Methodref          #23.#24       // java/time/LocalDateTime.of:(IIIII)Ljava/time/LocalDateTime;\n+   #23 = Class              #25           // java/time/LocalDateTime\n+   #24 = NameAndType        #16:#26       // of:(IIIII)Ljava/time/LocalDateTime;\n+   #25 = Utf8               java/time/LocalDateTime\n+   #26 = Utf8               (IIIII)Ljava/time/LocalDateTime;\n+   #27 = Methodref          #7.#28        // dev/langchain4j/internal/JsonTest$TestData.setSampleDateTime:(Ljava/time/LocalDateTime;)V\n+   #28 = NameAndType        #29:#30       // setSampleDateTime:(Ljava/time/LocalDateTime;)V\n+   #29 = Utf8               setSampleDateTime\n+   #30 = Utf8               (Ljava/time/LocalDateTime;)V\n+   #31 = String             #32           // value\n+   #32 = Utf8               value\n+   #33 = Methodref          #7.#34        // dev/langchain4j/internal/JsonTest$TestData.setSomeValue:(Ljava/lang/String;)V\n+   #34 = NameAndType        #35:#36       // setSomeValue:(Ljava/lang/String;)V\n+   #35 = Utf8               setSomeValue\n+   #36 = Utf8               (Ljava/lang/String;)V\n+   #37 = Methodref          #38.#39       // dev/langchain4j/internal/Json.toJson:(Ljava/lang/Object;)Ljava/lang/String;\n+   #38 = Class              #40           // dev/langchain4j/internal/Json\n+   #39 = NameAndType        #41:#42       // toJson:(Ljava/lang/Object;)Ljava/lang/String;\n+   #40 = Utf8               dev/langchain4j/internal/Json\n+   #41 = Utf8               toJson\n+   #42 = Utf8               (Ljava/lang/Object;)Ljava/lang/String;\n+   #43 = Methodref          #44.#45       // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #44 = Class              #46           // org/assertj/core/api/Assertions\n+   #45 = NameAndType        #47:#48       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #46 = Utf8               org/assertj/core/api/Assertions\n+   #47 = Utf8               assertThat\n+   #48 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #49 = String             #50           // {\\n  \\\"sampleDate\\\": \\\"2023-01-15\\\",\\n  \\\"sampleDateTime\\\": \\\"2023-01-15T10:20:00\\\",\\n  \\\"some_value\\\": \\\"value\\\"\\n}\n+   #50 = Utf8               {\\n  \\\"sampleDate\\\": \\\"2023-01-15\\\",\\n  \\\"sampleDateTime\\\": \\\"2023-01-15T10:20:00\\\",\\n  \\\"some_value\\\": \\\"value\\\"\\n}\n+   #51 = Methodref          #52.#53       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #52 = Class              #54           // org/assertj/core/api/AbstractStringAssert\n+   #53 = NameAndType        #55:#48       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #54 = Utf8               org/assertj/core/api/AbstractStringAssert\n+   #55 = Utf8               isEqualTo\n+   #56 = Methodref          #38.#57       // dev/langchain4j/internal/Json.fromJson:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;\n+   #57 = NameAndType        #58:#59       // fromJson:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;\n+   #58 = Utf8               fromJson\n+   #59 = Utf8               (Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;\n+   #60 = Methodref          #7.#61        // dev/langchain4j/internal/JsonTest$TestData.getSampleDate:()Ljava/time/LocalDate;\n+   #61 = NameAndType        #62:#63       // getSampleDate:()Ljava/time/LocalDate;\n+   #62 = Utf8               getSampleDate\n+   #63 = Utf8               ()Ljava/time/LocalDate;\n+   #64 = Methodref          #44.#65       // org/assertj/core/api/Assertions.assertThat:(Ljava/time/LocalDate;)Lorg/assertj/core/api/AbstractLocalDateAssert;\n+   #65 = NameAndType        #47:#66       // assertThat:(Ljava/time/LocalDate;)Lorg/assertj/core/api/AbstractLocalDateAssert;\n+   #66 = Utf8               (Ljava/time/LocalDate;)Lorg/assertj/core/api/AbstractLocalDateAssert;\n+   #67 = Methodref          #68.#69       // org/assertj/core/api/AbstractLocalDateAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #68 = Class              #70           // org/assertj/core/api/AbstractLocalDateAssert\n+   #69 = NameAndType        #55:#71       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #70 = Utf8               org/assertj/core/api/AbstractLocalDateAssert\n+   #71 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #72 = Methodref          #7.#73        // dev/langchain4j/internal/JsonTest$TestData.getSampleDateTime:()Ljava/time/LocalDateTime;\n+   #73 = NameAndType        #74:#75       // getSampleDateTime:()Ljava/time/LocalDateTime;\n+   #74 = Utf8               getSampleDateTime\n+   #75 = Utf8               ()Ljava/time/LocalDateTime;\n+   #76 = Methodref          #44.#77       // org/assertj/core/api/Assertions.assertThat:(Ljava/time/LocalDateTime;)Lorg/assertj/core/api/AbstractLocalDateTimeAssert;\n+   #77 = NameAndType        #47:#78       // assertThat:(Ljava/time/LocalDateTime;)Lorg/assertj/core/api/AbstractLocalDateTimeAssert;\n+   #78 = Utf8               (Ljava/time/LocalDateTime;)Lorg/assertj/core/api/AbstractLocalDateTimeAssert;\n+   #79 = Methodref          #80.#81       // org/assertj/core/api/AbstractLocalDateTimeAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractLocalDateTimeAssert;\n+   #80 = Class              #82           // org/assertj/core/api/AbstractLocalDateTimeAssert\n+   #81 = NameAndType        #55:#83       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractLocalDateTimeAssert;\n+   #82 = Utf8               org/assertj/core/api/AbstractLocalDateTimeAssert\n+   #83 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractLocalDateTimeAssert;\n+   #84 = Methodref          #7.#85        // dev/langchain4j/internal/JsonTest$TestData.getSomeValue:()Ljava/lang/String;\n+   #85 = NameAndType        #86:#87       // getSomeValue:()Ljava/lang/String;\n+   #86 = Utf8               getSomeValue\n+   #87 = Utf8               ()Ljava/lang/String;\n+   #88 = Class              #89           // dev/langchain4j/internal/JsonTest$TestObject\n+   #89 = Utf8               dev/langchain4j/internal/JsonTest$TestObject\n+   #90 = String             #91           // John\n+   #91 = Utf8               John\n+   #92 = Methodref          #88.#93       // dev/langchain4j/internal/JsonTest$TestObject.\"<init>\":(Ljava/lang/String;Ljava/time/LocalDate;Ljava/time/LocalDateTime;)V\n+   #93 = NameAndType        #5:#94        // \"<init>\":(Ljava/lang/String;Ljava/time/LocalDate;Ljava/time/LocalDateTime;)V\n+   #94 = Utf8               (Ljava/lang/String;Ljava/time/LocalDate;Ljava/time/LocalDateTime;)V\n+   #95 = String             #96           // Jane\n+   #96 = Utf8               Jane\n+   #97 = Methodref          #98.#99       // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+   #98 = Class              #100          // java/util/Arrays\n+   #99 = NameAndType        #101:#102     // asList:([Ljava/lang/Object;)Ljava/util/List;\n+  #100 = Utf8               java/util/Arrays\n+  #101 = Utf8               asList\n+  #102 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n+  #103 = String             #104          // [{\\\"name\\\":\\\"John\\\",\\\"date\\\":\\\"2021-08-17\\\",\\\"dateTime\\\":\\\"2021-08-17T14:20:00\\\"},{\\\"name\\\":\\\"Jane\\\",\\\"date\\\":\\\"2021-08-16\\\",\\\"dateTime\\\":\\\"2021-08-16T13:19:00\\\"}]\n+  #104 = Utf8               [{\\\"name\\\":\\\"John\\\",\\\"date\\\":\\\"2021-08-17\\\",\\\"dateTime\\\":\\\"2021-08-17T14:20:00\\\"},{\\\"name\\\":\\\"Jane\\\",\\\"date\\\":\\\"2021-08-16\\\",\\\"dateTime\\\":\\\"2021-08-16T13:19:00\\\"}]\n+  #105 = Class              #106          // java/util/List\n+  #106 = Utf8               java/util/List\n+  #107 = Methodref          #38.#108      // dev/langchain4j/internal/Json.toInputStream:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/io/InputStream;\n+  #108 = NameAndType        #109:#110     // toInputStream:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/io/InputStream;\n+  #109 = Utf8               toInputStream\n+  #110 = Utf8               (Ljava/lang/Object;Ljava/lang/Class;)Ljava/io/InputStream;\n+  #111 = Class              #112          // java/io/BufferedReader\n+  #112 = Utf8               java/io/BufferedReader\n+  #113 = Class              #114          // java/io/InputStreamReader\n+  #114 = Utf8               java/io/InputStreamReader\n+  #115 = Methodref          #113.#116     // java/io/InputStreamReader.\"<init>\":(Ljava/io/InputStream;)V\n+  #116 = NameAndType        #5:#117       // \"<init>\":(Ljava/io/InputStream;)V\n+  #117 = Utf8               (Ljava/io/InputStream;)V\n+  #118 = Methodref          #111.#119     // java/io/BufferedReader.\"<init>\":(Ljava/io/Reader;)V\n+  #119 = NameAndType        #5:#120       // \"<init>\":(Ljava/io/Reader;)V\n+  #120 = Utf8               (Ljava/io/Reader;)V\n+  #121 = Methodref          #111.#122     // java/io/BufferedReader.lines:()Ljava/util/stream/Stream;\n+  #122 = NameAndType        #123:#124     // lines:()Ljava/util/stream/Stream;\n+  #123 = Utf8               lines\n+  #124 = Utf8               ()Ljava/util/stream/Stream;\n+  #125 = Methodref          #126.#127     // java/util/stream/Collectors.joining:()Ljava/util/stream/Collector;\n+  #126 = Class              #128          // java/util/stream/Collectors\n+  #127 = NameAndType        #129:#130     // joining:()Ljava/util/stream/Collector;\n+  #128 = Utf8               java/util/stream/Collectors\n+  #129 = Utf8               joining\n+  #130 = Utf8               ()Ljava/util/stream/Collector;\n+  #131 = InterfaceMethodref #132.#133     // java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n+  #132 = Class              #134          // java/util/stream/Stream\n+  #133 = NameAndType        #135:#136     // collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n+  #134 = Utf8               java/util/stream/Stream\n+  #135 = Utf8               collect\n+  #136 = Utf8               (Ljava/util/stream/Collector;)Ljava/lang/Object;\n+  #137 = Class              #138          // java/lang/String\n+  #138 = Utf8               java/lang/String\n+  #139 = Methodref          #111.#140     // java/io/BufferedReader.close:()V\n+  #140 = NameAndType        #141:#6       // close:()V\n+  #141 = Utf8               close\n+  #142 = Class              #143          // java/lang/Throwable\n+  #143 = Utf8               java/lang/Throwable\n+  #144 = Methodref          #142.#145     // java/lang/Throwable.addSuppressed:(Ljava/lang/Throwable;)V\n+  #145 = NameAndType        #146:#147     // addSuppressed:(Ljava/lang/Throwable;)V\n+  #146 = Utf8               addSuppressed\n+  #147 = Utf8               (Ljava/lang/Throwable;)V\n+  #148 = Class              #149          // dev/langchain4j/internal/JsonTest\n+  #149 = Utf8               dev/langchain4j/internal/JsonTest\n+  #150 = Utf8               Code\n+  #151 = Utf8               LineNumberTable\n+  #152 = Utf8               LocalVariableTable\n+  #153 = Utf8               this\n+  #154 = Utf8               Ldev/langchain4j/internal/JsonTest;\n+  #155 = Utf8               conversionToJsonAndFromJsonWorks\n+  #156 = Utf8               testData\n+  #157 = Utf8               Ldev/langchain4j/internal/JsonTest$TestData;\n+  #158 = Utf8               json\n+  #159 = Utf8               Ljava/lang/String;\n+  #160 = Utf8               deserializedData\n+  #161 = Utf8               RuntimeVisibleAnnotations\n+  #162 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #163 = Utf8               toInputStreamWorksForList\n+  #164 = Utf8               resultJson\n+  #165 = Utf8               bufferedReader\n+  #166 = Utf8               Ljava/io/BufferedReader;\n+  #167 = Utf8               testObjects\n+  #168 = Utf8               Ljava/util/List;\n+  #169 = Utf8               expectedJson\n+  #170 = Utf8               inputStream\n+  #171 = Utf8               Ljava/io/InputStream;\n+  #172 = Utf8               LocalVariableTypeTable\n+  #173 = Utf8               Ljava/util/List<Ldev/langchain4j/internal/JsonTest$TestObject;>;\n+  #174 = Utf8               StackMapTable\n+  #175 = Class              #176          // java/io/InputStream\n+  #176 = Utf8               java/io/InputStream\n+  #177 = Utf8               Exceptions\n+  #178 = Class              #179          // java/io/IOException\n+  #179 = Utf8               java/io/IOException\n+  #180 = Utf8               SourceFile\n+  #181 = Utf8               JsonTest.java\n+  #182 = Utf8               InnerClasses\n+  #183 = Utf8               TestData\n+  #184 = Class              #185          // dev/langchain4j/internal/JsonTest$1\n+  #185 = Utf8               dev/langchain4j/internal/JsonTest$1\n+  #186 = Utf8               TestObject\n {\n   dev.langchain4j.internal.JsonTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -215,69 +210,69 @@\n             0       5     0  this   Ldev/langchain4j/internal/JsonTest;\n \n   void conversionToJsonAndFromJsonWorks();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=6, locals=4, args_size=1\n-         0: new           #2                  // class dev/langchain4j/internal/JsonTest$TestData\n+         0: new           #7                  // class dev/langchain4j/internal/JsonTest$TestData\n          3: dup\n          4: aconst_null\n-         5: invokespecial #3                  // Method dev/langchain4j/internal/JsonTest$TestData.\"<init>\":(Ldev/langchain4j/internal/JsonTest$1;)V\n+         5: invokespecial #9                  // Method dev/langchain4j/internal/JsonTest$TestData.\"<init>\":(Ldev/langchain4j/internal/JsonTest$1;)V\n          8: astore_1\n          9: aload_1\n         10: sipush        2023\n         13: iconst_1\n         14: bipush        15\n-        16: invokestatic  #4                  // Method java/time/LocalDate.of:(III)Ljava/time/LocalDate;\n-        19: invokevirtual #5                  // Method dev/langchain4j/internal/JsonTest$TestData.setSampleDate:(Ljava/time/LocalDate;)V\n+        16: invokestatic  #12                 // Method java/time/LocalDate.of:(III)Ljava/time/LocalDate;\n+        19: invokevirtual #18                 // Method dev/langchain4j/internal/JsonTest$TestData.setSampleDate:(Ljava/time/LocalDate;)V\n         22: aload_1\n         23: sipush        2023\n         26: iconst_1\n         27: bipush        15\n         29: bipush        10\n         31: bipush        20\n-        33: invokestatic  #6                  // Method java/time/LocalDateTime.of:(IIIII)Ljava/time/LocalDateTime;\n-        36: invokevirtual #7                  // Method dev/langchain4j/internal/JsonTest$TestData.setSampleDateTime:(Ljava/time/LocalDateTime;)V\n+        33: invokestatic  #22                 // Method java/time/LocalDateTime.of:(IIIII)Ljava/time/LocalDateTime;\n+        36: invokevirtual #27                 // Method dev/langchain4j/internal/JsonTest$TestData.setSampleDateTime:(Ljava/time/LocalDateTime;)V\n         39: aload_1\n-        40: ldc           #8                  // String value\n-        42: invokevirtual #9                  // Method dev/langchain4j/internal/JsonTest$TestData.setSomeValue:(Ljava/lang/String;)V\n+        40: ldc           #31                 // String value\n+        42: invokevirtual #33                 // Method dev/langchain4j/internal/JsonTest$TestData.setSomeValue:(Ljava/lang/String;)V\n         45: aload_1\n-        46: invokestatic  #10                 // Method dev/langchain4j/internal/Json.toJson:(Ljava/lang/Object;)Ljava/lang/String;\n+        46: invokestatic  #37                 // Method dev/langchain4j/internal/Json.toJson:(Ljava/lang/Object;)Ljava/lang/String;\n         49: astore_2\n         50: aload_2\n-        51: invokestatic  #11                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        54: ldc           #12                 // String {\\n  \\\"sampleDate\\\": \\\"2023-01-15\\\",\\n  \\\"sampleDateTime\\\": \\\"2023-01-15T10:20:00\\\",\\n  \\\"some_value\\\": \\\"value\\\"\\n}\n-        56: invokevirtual #13                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        51: invokestatic  #43                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        54: ldc           #49                 // String {\\n  \\\"sampleDate\\\": \\\"2023-01-15\\\",\\n  \\\"sampleDateTime\\\": \\\"2023-01-15T10:20:00\\\",\\n  \\\"some_value\\\": \\\"value\\\"\\n}\n+        56: invokevirtual #51                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         59: pop\n         60: aload_2\n-        61: ldc           #2                  // class dev/langchain4j/internal/JsonTest$TestData\n-        63: invokestatic  #14                 // Method dev/langchain4j/internal/Json.fromJson:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;\n-        66: checkcast     #2                  // class dev/langchain4j/internal/JsonTest$TestData\n+        61: ldc           #7                  // class dev/langchain4j/internal/JsonTest$TestData\n+        63: invokestatic  #56                 // Method dev/langchain4j/internal/Json.fromJson:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;\n+        66: checkcast     #7                  // class dev/langchain4j/internal/JsonTest$TestData\n         69: astore_3\n         70: aload_3\n-        71: invokevirtual #15                 // Method dev/langchain4j/internal/JsonTest$TestData.getSampleDate:()Ljava/time/LocalDate;\n-        74: invokestatic  #16                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/time/LocalDate;)Lorg/assertj/core/api/AbstractLocalDateAssert;\n+        71: invokevirtual #60                 // Method dev/langchain4j/internal/JsonTest$TestData.getSampleDate:()Ljava/time/LocalDate;\n+        74: invokestatic  #64                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/time/LocalDate;)Lorg/assertj/core/api/AbstractLocalDateAssert;\n         77: aload_1\n-        78: invokevirtual #15                 // Method dev/langchain4j/internal/JsonTest$TestData.getSampleDate:()Ljava/time/LocalDate;\n-        81: invokevirtual #17                 // Method org/assertj/core/api/AbstractLocalDateAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        78: invokevirtual #60                 // Method dev/langchain4j/internal/JsonTest$TestData.getSampleDate:()Ljava/time/LocalDate;\n+        81: invokevirtual #67                 // Method org/assertj/core/api/AbstractLocalDateAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         84: pop\n         85: aload_3\n-        86: invokevirtual #18                 // Method dev/langchain4j/internal/JsonTest$TestData.getSampleDateTime:()Ljava/time/LocalDateTime;\n-        89: invokestatic  #19                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/time/LocalDateTime;)Lorg/assertj/core/api/AbstractLocalDateTimeAssert;\n+        86: invokevirtual #72                 // Method dev/langchain4j/internal/JsonTest$TestData.getSampleDateTime:()Ljava/time/LocalDateTime;\n+        89: invokestatic  #76                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/time/LocalDateTime;)Lorg/assertj/core/api/AbstractLocalDateTimeAssert;\n         92: aload_1\n-        93: invokevirtual #18                 // Method dev/langchain4j/internal/JsonTest$TestData.getSampleDateTime:()Ljava/time/LocalDateTime;\n-        96: invokevirtual #20                 // Method org/assertj/core/api/AbstractLocalDateTimeAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractLocalDateTimeAssert;\n+        93: invokevirtual #72                 // Method dev/langchain4j/internal/JsonTest$TestData.getSampleDateTime:()Ljava/time/LocalDateTime;\n+        96: invokevirtual #79                 // Method org/assertj/core/api/AbstractLocalDateTimeAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractLocalDateTimeAssert;\n         99: pop\n        100: aload_3\n-       101: invokevirtual #21                 // Method dev/langchain4j/internal/JsonTest$TestData.getSomeValue:()Ljava/lang/String;\n-       104: invokestatic  #11                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       101: invokevirtual #84                 // Method dev/langchain4j/internal/JsonTest$TestData.getSomeValue:()Ljava/lang/String;\n+       104: invokestatic  #43                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n        107: aload_1\n-       108: invokevirtual #21                 // Method dev/langchain4j/internal/JsonTest$TestData.getSomeValue:()Ljava/lang/String;\n-       111: invokevirtual #13                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       108: invokevirtual #84                 // Method dev/langchain4j/internal/JsonTest$TestData.getSomeValue:()Ljava/lang/String;\n+       111: invokevirtual #51                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n        114: pop\n        115: return\n       LineNumberTable:\n         line 22: 0\n         line 23: 9\n         line 24: 22\n         line 25: 39\n@@ -292,181 +287,143 @@\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     116     0  this   Ldev/langchain4j/internal/JsonTest;\n             9     107     1 testData   Ldev/langchain4j/internal/JsonTest$TestData;\n            50      66     2  json   Ljava/lang/String;\n            70      46     3 deserializedData   Ldev/langchain4j/internal/JsonTest$TestData;\n     RuntimeVisibleAnnotations:\n-      0: #61()\n+      0: #162()\n         org.junit.jupiter.api.Test\n \n   void toInputStreamWorksForList() throws java.io.IOException;\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n-      stack=12, locals=9, args_size=1\n+      stack=12, locals=7, args_size=1\n          0: iconst_2\n-         1: anewarray     #22                 // class dev/langchain4j/internal/JsonTest$TestObject\n+         1: anewarray     #88                 // class dev/langchain4j/internal/JsonTest$TestObject\n          4: dup\n          5: iconst_0\n-         6: new           #22                 // class dev/langchain4j/internal/JsonTest$TestObject\n+         6: new           #88                 // class dev/langchain4j/internal/JsonTest$TestObject\n          9: dup\n-        10: ldc           #23                 // String John\n+        10: ldc           #90                 // String John\n         12: sipush        2021\n         15: bipush        8\n         17: bipush        17\n-        19: invokestatic  #4                  // Method java/time/LocalDate.of:(III)Ljava/time/LocalDate;\n+        19: invokestatic  #12                 // Method java/time/LocalDate.of:(III)Ljava/time/LocalDate;\n         22: sipush        2021\n         25: bipush        8\n         27: bipush        17\n         29: bipush        14\n         31: bipush        20\n-        33: invokestatic  #6                  // Method java/time/LocalDateTime.of:(IIIII)Ljava/time/LocalDateTime;\n-        36: invokespecial #24                 // Method dev/langchain4j/internal/JsonTest$TestObject.\"<init>\":(Ljava/lang/String;Ljava/time/LocalDate;Ljava/time/LocalDateTime;)V\n+        33: invokestatic  #22                 // Method java/time/LocalDateTime.of:(IIIII)Ljava/time/LocalDateTime;\n+        36: invokespecial #92                 // Method dev/langchain4j/internal/JsonTest$TestObject.\"<init>\":(Ljava/lang/String;Ljava/time/LocalDate;Ljava/time/LocalDateTime;)V\n         39: aastore\n         40: dup\n         41: iconst_1\n-        42: new           #22                 // class dev/langchain4j/internal/JsonTest$TestObject\n+        42: new           #88                 // class dev/langchain4j/internal/JsonTest$TestObject\n         45: dup\n-        46: ldc           #25                 // String Jane\n+        46: ldc           #95                 // String Jane\n         48: sipush        2021\n         51: bipush        8\n         53: bipush        16\n-        55: invokestatic  #4                  // Method java/time/LocalDate.of:(III)Ljava/time/LocalDate;\n+        55: invokestatic  #12                 // Method java/time/LocalDate.of:(III)Ljava/time/LocalDate;\n         58: sipush        2021\n         61: bipush        8\n         63: bipush        16\n         65: bipush        13\n         67: bipush        19\n-        69: invokestatic  #6                  // Method java/time/LocalDateTime.of:(IIIII)Ljava/time/LocalDateTime;\n-        72: invokespecial #24                 // Method dev/langchain4j/internal/JsonTest$TestObject.\"<init>\":(Ljava/lang/String;Ljava/time/LocalDate;Ljava/time/LocalDateTime;)V\n+        69: invokestatic  #22                 // Method java/time/LocalDateTime.of:(IIIII)Ljava/time/LocalDateTime;\n+        72: invokespecial #92                 // Method dev/langchain4j/internal/JsonTest$TestObject.\"<init>\":(Ljava/lang/String;Ljava/time/LocalDate;Ljava/time/LocalDateTime;)V\n         75: aastore\n-        76: invokestatic  #26                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        76: invokestatic  #97                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n         79: astore_1\n-        80: ldc           #27                 // String [{\\\"name\\\":\\\"John\\\",\\\"date\\\":\\\"2021-08-17\\\",\\\"dateTime\\\":\\\"2021-08-17T14:20:00\\\"},{\\\"name\\\":\\\"Jane\\\",\\\"date\\\":\\\"2021-08-16\\\",\\\"dateTime\\\":\\\"2021-08-16T13:19:00\\\"}]\n+        80: ldc           #103                // String [{\\\"name\\\":\\\"John\\\",\\\"date\\\":\\\"2021-08-17\\\",\\\"dateTime\\\":\\\"2021-08-17T14:20:00\\\"},{\\\"name\\\":\\\"Jane\\\",\\\"date\\\":\\\"2021-08-16\\\",\\\"dateTime\\\":\\\"2021-08-16T13:19:00\\\"}]\n         82: astore_2\n         83: aload_1\n-        84: ldc           #28                 // class java/util/List\n-        86: invokestatic  #29                 // Method dev/langchain4j/internal/Json.toInputStream:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/io/InputStream;\n+        84: ldc           #105                // class java/util/List\n+        86: invokestatic  #107                // Method dev/langchain4j/internal/Json.toInputStream:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/io/InputStream;\n         89: astore_3\n-        90: new           #30                 // class java/io/BufferedReader\n+        90: new           #111                // class java/io/BufferedReader\n         93: dup\n-        94: new           #31                 // class java/io/InputStreamReader\n+        94: new           #113                // class java/io/InputStreamReader\n         97: dup\n         98: aload_3\n-        99: invokespecial #32                 // Method java/io/InputStreamReader.\"<init>\":(Ljava/io/InputStream;)V\n-       102: invokespecial #33                 // Method java/io/BufferedReader.\"<init>\":(Ljava/io/Reader;)V\n+        99: invokespecial #115                // Method java/io/InputStreamReader.\"<init>\":(Ljava/io/InputStream;)V\n+       102: invokespecial #118                // Method java/io/BufferedReader.\"<init>\":(Ljava/io/Reader;)V\n        105: astore        4\n-       107: aconst_null\n-       108: astore        5\n-       110: aload         4\n-       112: invokevirtual #34                 // Method java/io/BufferedReader.lines:()Ljava/util/stream/Stream;\n-       115: invokestatic  #35                 // Method java/util/stream/Collectors.joining:()Ljava/util/stream/Collector;\n-       118: invokeinterface #36,  2           // InterfaceMethod java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n-       123: checkcast     #37                 // class java/lang/String\n-       126: astore        6\n-       128: aload         6\n-       130: invokestatic  #11                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       133: aload_2\n-       134: invokevirtual #13                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       137: pop\n-       138: aload         4\n-       140: ifnull        225\n-       143: aload         5\n-       145: ifnull        168\n-       148: aload         4\n-       150: invokevirtual #38                 // Method java/io/BufferedReader.close:()V\n-       153: goto          225\n-       156: astore        6\n-       158: aload         5\n-       160: aload         6\n-       162: invokevirtual #40                 // Method java/lang/Throwable.addSuppressed:(Ljava/lang/Throwable;)V\n-       165: goto          225\n-       168: aload         4\n-       170: invokevirtual #38                 // Method java/io/BufferedReader.close:()V\n-       173: goto          225\n-       176: astore        6\n-       178: aload         6\n-       180: astore        5\n-       182: aload         6\n-       184: athrow\n-       185: astore        7\n-       187: aload         4\n-       189: ifnull        222\n-       192: aload         5\n-       194: ifnull        217\n-       197: aload         4\n-       199: invokevirtual #38                 // Method java/io/BufferedReader.close:()V\n-       202: goto          222\n-       205: astore        8\n-       207: aload         5\n-       209: aload         8\n-       211: invokevirtual #40                 // Method java/lang/Throwable.addSuppressed:(Ljava/lang/Throwable;)V\n-       214: goto          222\n-       217: aload         4\n-       219: invokevirtual #38                 // Method java/io/BufferedReader.close:()V\n-       222: aload         7\n-       224: athrow\n-       225: return\n+       107: aload         4\n+       109: invokevirtual #121                // Method java/io/BufferedReader.lines:()Ljava/util/stream/Stream;\n+       112: invokestatic  #125                // Method java/util/stream/Collectors.joining:()Ljava/util/stream/Collector;\n+       115: invokeinterface #131,  2          // InterfaceMethod java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n+       120: checkcast     #137                // class java/lang/String\n+       123: astore        5\n+       125: aload         5\n+       127: invokestatic  #43                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       130: aload_2\n+       131: invokevirtual #51                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       134: pop\n+       135: aload         4\n+       137: invokevirtual #139                // Method java/io/BufferedReader.close:()V\n+       140: goto          165\n+       143: astore        5\n+       145: aload         4\n+       147: invokevirtual #139                // Method java/io/BufferedReader.close:()V\n+       150: goto          162\n+       153: astore        6\n+       155: aload         5\n+       157: aload         6\n+       159: invokevirtual #144                // Method java/lang/Throwable.addSuppressed:(Ljava/lang/Throwable;)V\n+       162: aload         5\n+       164: athrow\n+       165: return\n       Exception table:\n          from    to  target type\n-           148   153   156   Class java/lang/Throwable\n-           110   138   176   Class java/lang/Throwable\n-           110   138   185   any\n-           197   202   205   Class java/lang/Throwable\n-           176   187   185   any\n+           107   135   143   Class java/lang/Throwable\n+           145   150   153   Class java/lang/Throwable\n       LineNumberTable:\n         line 47: 0\n         line 48: 19\n         line 49: 55\n         line 47: 76\n         line 52: 80\n         line 62: 83\n         line 63: 90\n-        line 64: 110\n-        line 66: 128\n-        line 67: 138\n-        line 63: 176\n-        line 67: 185\n-        line 68: 225\n+        line 64: 107\n+        line 66: 125\n+        line 67: 135\n+        line 63: 143\n+        line 68: 165\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n-          128      10     6 resultJson   Ljava/lang/String;\n-          107     118     4 bufferedReader   Ljava/io/BufferedReader;\n-            0     226     0  this   Ldev/langchain4j/internal/JsonTest;\n-           80     146     1 testObjects   Ljava/util/List;\n-           83     143     2 expectedJson   Ljava/lang/String;\n-           90     136     3 inputStream   Ljava/io/InputStream;\n+          125      10     5 resultJson   Ljava/lang/String;\n+          107      58     4 bufferedReader   Ljava/io/BufferedReader;\n+            0     166     0  this   Ldev/langchain4j/internal/JsonTest;\n+           80      86     1 testObjects   Ljava/util/List;\n+           83      83     2 expectedJson   Ljava/lang/String;\n+           90      76     3 inputStream   Ljava/io/InputStream;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n-           80     146     1 testObjects   Ljava/util/List<Ldev/langchain4j/internal/JsonTest$TestObject;>;\n-      StackMapTable: number_of_entries = 8\n+           80      86     1 testObjects   Ljava/util/List<Ldev/langchain4j/internal/JsonTest$TestObject;>;\n+      StackMapTable: number_of_entries = 4\n         frame_type = 255 /* full_frame */\n-          offset_delta = 156\n-          locals = [ class dev/langchain4j/internal/JsonTest, class java/util/List, class java/lang/String, class java/io/InputStream, class java/io/BufferedReader, class java/lang/Throwable ]\n-          stack = [ class java/lang/Throwable ]\n-        frame_type = 11 /* same */\n-        frame_type = 71 /* same_locals_1_stack_item */\n-          stack = [ class java/lang/Throwable ]\n-        frame_type = 72 /* same_locals_1_stack_item */\n+          offset_delta = 143\n+          locals = [ class dev/langchain4j/internal/JsonTest, class java/util/List, class java/lang/String, class java/io/InputStream, class java/io/BufferedReader ]\n           stack = [ class java/lang/Throwable ]\n         frame_type = 255 /* full_frame */\n-          offset_delta = 19\n-          locals = [ class dev/langchain4j/internal/JsonTest, class java/util/List, class java/lang/String, class java/io/InputStream, class java/io/BufferedReader, class java/lang/Throwable, top, class java/lang/Throwable ]\n+          offset_delta = 9\n+          locals = [ class dev/langchain4j/internal/JsonTest, class java/util/List, class java/lang/String, class java/io/InputStream, class java/io/BufferedReader, class java/lang/Throwable ]\n           stack = [ class java/lang/Throwable ]\n-        frame_type = 11 /* same */\n-        frame_type = 4 /* same */\n-        frame_type = 255 /* full_frame */\n+        frame_type = 8 /* same */\n+        frame_type = 249 /* chop */\n           offset_delta = 2\n-          locals = [ class dev/langchain4j/internal/JsonTest, class java/util/List, class java/lang/String, class java/io/InputStream ]\n-          stack = []\n     Exceptions:\n       throws java.io.IOException\n     RuntimeVisibleAnnotations:\n-      0: #61()\n+      0: #162()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"JsonTest.java\"\n InnerClasses:\n-  static #43;                             // class dev/langchain4j/internal/JsonTest$1\n-  private static #45= #2 of #41;          // TestData=class dev/langchain4j/internal/JsonTest$TestData of class dev/langchain4j/internal/JsonTest\n-  private static #46= #22 of #41;         // TestObject=class dev/langchain4j/internal/JsonTest$TestObject of class dev/langchain4j/internal/JsonTest\n+  private static #183= #7 of #148;        // TestData=class dev/langchain4j/internal/JsonTest$TestData of class dev/langchain4j/internal/JsonTest\n+  static #184;                            // class dev/langchain4j/internal/JsonTest$1\n+  private static #186= #88 of #148;       // TestObject=class dev/langchain4j/internal/JsonTest$TestObject of class dev/langchain4j/internal/JsonTest\n"}]}, {"source1": "dev/langchain4j/internal/RetryUtilsTest.class", "source2": "dev/langchain4j/internal/RetryUtilsTest.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -17,60 +17,58 @@\n             Assertions.assertThat(RetryUtils.DEFAULT_RETRY_POLICY.jitterDelayMillis(3)).isBetween(Integer.valueOf(1125), Integer.valueOf(1350));\n         }\n     }\n     \n     @Test\n     void test_withRetry_directly() throws Exception {\n         final Callable<String> mockAction = (Callable)Mockito.mock((Class)Callable.class);\n-        Mockito.when((Object)mockAction.call()).thenReturn((Object)\"Success\");\n+        Mockito.when((Object)(String)mockAction.call()).thenReturn((Object)\"Success\");\n         final String result = (String)RetryUtils.withRetry((Callable)mockAction, 1);\n         Assertions.assertThat(result).isEqualTo(\"Success\");\n         ((Callable)Mockito.verify((Object)mockAction)).call();\n         Mockito.verifyNoMoreInteractions(new Object[] { mockAction });\n     }\n     \n     @Test\n     void test_withRetry_noAttempts_directly() throws Exception {\n         final Callable<String> mockAction = (Callable)Mockito.mock((Class)Callable.class);\n-        Mockito.when((Object)mockAction.call()).thenReturn((Object)\"Success\");\n+        Mockito.when((Object)(String)mockAction.call()).thenReturn((Object)\"Success\");\n         final String result = (String)RetryUtils.withRetry((Callable)mockAction);\n         Assertions.assertThat(result).isEqualTo(\"Success\");\n         ((Callable)Mockito.verify((Object)mockAction)).call();\n         Mockito.verifyNoMoreInteractions(new Object[] { mockAction });\n     }\n     \n     @Test\n     void testSuccessfulCall() throws Exception {\n         final Callable<String> mockAction = (Callable)Mockito.mock((Class)Callable.class);\n-        Mockito.when((Object)mockAction.call()).thenReturn((Object)\"Success\");\n+        Mockito.when((Object)(String)mockAction.call()).thenReturn((Object)\"Success\");\n         final String result = (String)RetryUtils.retryPolicyBuilder().delayMillis(100).build().withRetry((Callable)mockAction, 3);\n         Assertions.assertThat(result).isEqualTo(\"Success\");\n         ((Callable)Mockito.verify((Object)mockAction)).call();\n         Mockito.verifyNoMoreInteractions(new Object[] { mockAction });\n     }\n     \n     @Test\n     void testRetryThenSuccess() throws Exception {\n         final Callable<String> mockAction = (Callable)Mockito.mock((Class)Callable.class);\n-        Mockito.when((Object)mockAction.call()).thenThrow(new Throwable[] { new RuntimeException() }).thenReturn((Object)\"Success\");\n+        Mockito.when((Object)(String)mockAction.call()).thenThrow(new Throwable[] { new RuntimeException() }).thenReturn((Object)\"Success\");\n         final long startTime = System.currentTimeMillis();\n         final String result = (String)RetryUtils.retryPolicyBuilder().delayMillis(100).build().withRetry((Callable)mockAction, 3);\n         final long endTime = System.currentTimeMillis();\n         final long duration = endTime - startTime;\n         Assertions.assertThat(result).isEqualTo(\"Success\");\n         ((Callable)Mockito.verify((Object)mockAction, Mockito.times(2))).call();\n         Mockito.verifyNoMoreInteractions(new Object[] { mockAction });\n         Assertions.assertThat(duration).isGreaterThanOrEqualTo(100L);\n     }\n     \n     @Test\n     void testMaxAttemptsReached() throws Exception {\n         final Callable<String> mockAction = (Callable)Mockito.mock((Class)Callable.class);\n-        Mockito.when((Object)mockAction.call()).thenThrow(new Throwable[] { new RuntimeException() });\n+        Mockito.when((Object)(String)mockAction.call()).thenThrow(new Throwable[] { new RuntimeException() });\n         final RetryUtils.RetryPolicy policy = RetryUtils.retryPolicyBuilder().delayMillis(100).build();\n-        Assertions.assertThatThrownBy(() -> {\n-            final String s = (String)policy.withRetry(mockAction, 3);\n-        }).isInstanceOf((Class)RuntimeException.class);\n+        Assertions.assertThatThrownBy(() -> policy.withRetry(mockAction, 3)).isInstanceOf((Class)RuntimeException.class);\n         ((Callable)Mockito.verify((Object)mockAction, Mockito.times(3))).call();\n         Mockito.verifyNoMoreInteractions(new Object[] { mockAction });\n     }\n }\n"}]}, {"source1": "dev/langchain4j/internal/UtilsTest.class", "source2": "dev/langchain4j/internal/UtilsTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,435 +1,432 @@\n-  SHA-256 checksum 7090196b3faee14ce54336258c12d17bc8c92dd17163d16ad1faf00d5d018681\n+  SHA-256 checksum 8b371fbfcff6a9f81f2820a8782369596bbafcd43cd8a280c1445b8ce3fbb0e3\n   Compiled from \"UtilsTest.java\"\n class dev.langchain4j.internal.UtilsTest\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #97                         // dev/langchain4j/internal/UtilsTest\n-  super_class: #45                        // java/lang/Object\n+  this_class: #312                        // dev/langchain4j/internal/UtilsTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 0, methods: 22, attributes: 3\n Constant pool:\n-    #1 = Methodref          #45.#163      // java/lang/Object.\"<init>\":()V\n-    #2 = String             #164          // foo\n-    #3 = String             #165          // bar\n-    #4 = Methodref          #166.#167     // dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-    #5 = Class              #168          // java/lang/String\n-    #6 = Methodref          #169.#170     // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-    #7 = Methodref          #29.#171      // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-    #8 = InvokeDynamic      #0:#177       // #0:get:()Ljava/util/function/Supplier;\n-    #9 = Methodref          #166.#178     // dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-   #10 = InvokeDynamic      #1:#177       // #1:get:()Ljava/util/function/Supplier;\n-   #11 = Methodref          #166.#180     // dev/langchain4j/internal/Utils.isNullOrBlank:(Ljava/lang/String;)Z\n-   #12 = Methodref          #169.#181     // org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-   #13 = Methodref          #182.#183     // org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n-   #14 = String             #184          //\n-   #15 = String             #185          //\n-   #16 = Methodref          #182.#186     // org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n-   #17 = Methodref          #166.#187     // dev/langchain4j/internal/Utils.isNotNullOrBlank:(Ljava/lang/String;)Z\n-   #18 = Methodref          #166.#188     // dev/langchain4j/internal/Utils.areNotNullOrBlank:([Ljava/lang/String;)Z\n-   #19 = Methodref          #166.#189     // dev/langchain4j/internal/Utils.isNullOrEmpty:(Ljava/util/Collection;)Z\n-   #20 = Methodref          #190.#191     // java/util/Collections.emptyList:()Ljava/util/List;\n-   #21 = String             #192          // abc\n-   #22 = Methodref          #190.#193     // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-   #23 = Methodref          #166.#194     // dev/langchain4j/internal/Utils.isCollectionEmpty:(Ljava/util/Collection;)Z\n-   #24 = Methodref          #166.#195     // dev/langchain4j/internal/Utils.repeat:(Ljava/lang/String;I)Ljava/lang/String;\n-   #25 = String             #196          // foofoo\n-   #26 = String             #197          // foofoofoo\n-   #27 = Methodref          #166.#198     // dev/langchain4j/internal/Utils.randomUUID:()Ljava/lang/String;\n-   #28 = Methodref          #29.#199      // org/assertj/core/api/AbstractStringAssert.isNotNull:()Lorg/assertj/core/api/AbstractAssert;\n-   #29 = Class              #200          // org/assertj/core/api/AbstractStringAssert\n-   #30 = Methodref          #29.#201      // org/assertj/core/api/AbstractStringAssert.isNotEmpty:()Lorg/assertj/core/api/AbstractCharSequenceAssert;\n-   #31 = Methodref          #29.#202      // org/assertj/core/api/AbstractStringAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #32 = Methodref          #34.#203      // java/util/UUID.fromString:(Ljava/lang/String;)Ljava/util/UUID;\n-   #33 = Methodref          #169.#204     // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-   #34 = Class              #205          // java/util/UUID\n-   #35 = Methodref          #206.#207     // org/assertj/core/api/AbstractComparableAssert.isInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n-   #36 = String             #208          // Hello\n-   #37 = String             #209          // World\n-   #38 = Methodref          #166.#210     // dev/langchain4j/internal/Utils.generateUUIDFrom:(Ljava/lang/String;)Ljava/lang/String;\n-   #39 = Class              #211          // java/lang/NullPointerException\n-   #40 = Methodref          #169.#212     // org/assertj/core/api/Assertions.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-   #41 = InvokeDynamic      #2:#215       // #2:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #42 = Methodref          #216.#217     // org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #43 = Methodref          #166.#218     // dev/langchain4j/internal/Utils.quoted:(Ljava/lang/Object;)Ljava/lang/String;\n-   #44 = Class              #219          // org/junit/jupiter/params/provider/Arguments\n-   #45 = Class              #220          // java/lang/Object\n-   #46 = String             #221          // null\n-   #47 = InterfaceMethodref #44.#222      // org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-   #48 = String             #223          // \\\"\\\"\n-   #49 = String             #224          // \\\" \\\"\n-   #50 = String             #225          // hello\n-   #51 = String             #226          // \\\"hello\\\"\n-   #52 = InterfaceMethodref #227.#228     // java/util/stream/Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;\n-   #53 = Methodref          #166.#229     // dev/langchain4j/internal/Utils.firstChars:(Ljava/lang/String;I)Ljava/lang/String;\n-   #54 = Methodref          #29.#230      // org/assertj/core/api/AbstractStringAssert.isNull:()V\n-   #55 = Methodref          #29.#231      // org/assertj/core/api/AbstractStringAssert.isEmpty:()V\n-   #56 = String             #232          // foobar\n-   #57 = Class              #233          // java/net/InetSocketAddress\n-   #58 = Methodref          #57.#234      // java/net/InetSocketAddress.\"<init>\":(I)V\n-   #59 = Methodref          #235.#236     // com/sun/net/httpserver/HttpServer.create:(Ljava/net/InetSocketAddress;I)Lcom/sun/net/httpserver/HttpServer;\n-   #60 = Methodref          #235.#237     // com/sun/net/httpserver/HttpServer.getAddress:()Ljava/net/InetSocketAddress;\n-   #61 = Methodref          #57.#238      // java/net/InetSocketAddress.getPort:()I\n-   #62 = String             #239          // /ok_endpoint\n-   #63 = InvokeDynamic      #3:#242       // #3:handle:()Lcom/sun/net/httpserver/HttpHandler;\n-   #64 = Methodref          #235.#243     // com/sun/net/httpserver/HttpServer.createContext:(Ljava/lang/String;Lcom/sun/net/httpserver/HttpHandler;)Lcom/sun/net/httpserver/HttpContext;\n-   #65 = String             #244          // /error_endpoint\n-   #66 = InvokeDynamic      #4:#242       // #4:handle:()Lcom/sun/net/httpserver/HttpHandler;\n-   #67 = Methodref          #235.#246     // com/sun/net/httpserver/HttpServer.start:()V\n-   #68 = Class              #247          // java/lang/StringBuilder\n-   #69 = Methodref          #68.#163      // java/lang/StringBuilder.\"<init>\":()V\n-   #70 = String             #248          // http://localhost:\n-   #71 = Methodref          #68.#249      // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-   #72 = Methodref          #68.#250      // java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;\n-   #73 = Methodref          #68.#251      // java/lang/StringBuilder.toString:()Ljava/lang/String;\n-   #74 = Methodref          #166.#252     // dev/langchain4j/internal/Utils.readBytes:(Ljava/lang/String;)[B\n-   #75 = Methodref          #169.#253     // org/assertj/core/api/Assertions.assertThat:([B)Lorg/assertj/core/api/AbstractByteArrayAssert;\n-   #76 = Methodref          #5.#254       // java/lang/String.getBytes:()[B\n-   #77 = Methodref          #255.#256     // org/assertj/core/api/AbstractByteArrayAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #78 = Class              #257          // java/lang/RuntimeException\n-   #79 = InvokeDynamic      #5:#259       // #5:call:(I)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #80 = String             #260          // Error while reading: 500\n-   #81 = Methodref          #261.#262     // org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #82 = Methodref          #235.#263     // com/sun/net/httpserver/HttpServer.stop:(I)V\n-   #83 = Methodref          #166.#264     // dev/langchain4j/internal/Utils.copyIfNotNull:(Ljava/util/List;)Ljava/util/List;\n-   #84 = Methodref          #169.#265     // org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-   #85 = Methodref          #266.#230     // org/assertj/core/api/ListAssert.isNull:()V\n-   #86 = Methodref          #266.#231     // org/assertj/core/api/ListAssert.isEmpty:()V\n-   #87 = String             #267          // one\n-   #88 = Methodref          #266.#268     // org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-   #89 = String             #269          // two\n-   #90 = Methodref          #270.#271     // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-   #91 = String             #272          // nope\n-   #92 = Class              #273          // java/net/HttpURLConnection\n-   #93 = Methodref          #274.#275     // com/sun/net/httpserver/HttpExchange.sendResponseHeaders:(IJ)V\n-   #94 = Methodref          #274.#276     // com/sun/net/httpserver/HttpExchange.getResponseBody:()Ljava/io/OutputStream;\n-   #95 = Methodref          #277.#278     // java/io/OutputStream.write:([B)V\n-   #96 = Methodref          #274.#279     // com/sun/net/httpserver/HttpExchange.close:()V\n-   #97 = Class              #280          // dev/langchain4j/internal/UtilsTest\n-   #98 = Utf8               <init>\n-   #99 = Utf8               ()V\n-  #100 = Utf8               Code\n-  #101 = Utf8               LineNumberTable\n-  #102 = Utf8               LocalVariableTable\n-  #103 = Utf8               this\n-  #104 = Utf8               Ldev/langchain4j/internal/UtilsTest;\n-  #105 = Utf8               test_getOrDefault\n-  #106 = Utf8               RuntimeVisibleAnnotations\n-  #107 = Utf8               Lorg/junit/jupiter/api/Test;\n-  #108 = Utf8               test_isNullOrBlank\n-  #109 = Utf8               test_areNotNullOrBlank\n-  #110 = Utf8               test_isNullOrEmpty\n-  #111 = Utf8               test_isCollectionEmpty\n-  #112 = Utf8               test_repeat\n-  #113 = Utf8               randomUUIDWorks\n-  #114 = Utf8               uuid1\n-  #115 = Utf8               Ljava/lang/String;\n-  #116 = Utf8               uuid2\n-  #117 = Utf8               generateUUIDFromTextWorks\n-  #118 = Utf8               input1\n-  #119 = Utf8               input2\n-  #120 = Utf8               uuidFromInput1\n-  #121 = Utf8               uuidFromInput2\n-  #122 = Utf8               generateUUIDFromEmptyInputWorks\n-  #123 = Utf8               uuidFromEmptyInput\n-  #124 = Utf8               generateUUIDFromNullInputWorks\n-  #125 = Utf8               test_quoted\n-  #126 = Utf8               (Ljava/lang/String;Ljava/lang/String;)V\n-  #127 = Utf8               string\n-  #128 = Utf8               expected\n-  #129 = Utf8               Lorg/junit/jupiter/params/provider/MethodSource;\n-  #130 = Utf8               Lorg/junit/jupiter/params/ParameterizedTest;\n-  #131 = Utf8               ()Ljava/util/stream/Stream;\n-  #132 = Utf8               Signature\n-  #133 = Utf8               ()Ljava/util/stream/Stream<Lorg/junit/jupiter/params/provider/Arguments;>;\n-  #134 = Utf8               test_firstChars\n-  #135 = Utf8               test_readBytes\n-  #136 = Utf8               port\n-  #137 = Utf8               I\n-  #138 = Utf8               httpServer\n-  #139 = Utf8               Lcom/sun/net/httpserver/HttpServer;\n-  #140 = Utf8               StackMapTable\n-  #141 = Class              #280          // dev/langchain4j/internal/UtilsTest\n-  #142 = Class              #281          // com/sun/net/httpserver/HttpServer\n-  #143 = Class              #282          // java/lang/Throwable\n-  #144 = Utf8               Exceptions\n-  #145 = Class              #283          // java/io/IOException\n-  #146 = Utf8               test_copyIfNotNull\n-  #147 = Utf8               lambda$test_readBytes$5\n-  #148 = Utf8               (I)V\n-  #149 = Class              #282          // java/lang/Throwable\n-  #150 = Utf8               lambda$test_readBytes$4\n-  #151 = Utf8               (Lcom/sun/net/httpserver/HttpExchange;)V\n-  #152 = Utf8               exchange\n-  #153 = Utf8               Lcom/sun/net/httpserver/HttpExchange;\n-  #154 = Utf8               response\n-  #155 = Utf8               [B\n-  #156 = Utf8               lambda$test_readBytes$3\n-  #157 = Utf8               lambda$generateUUIDFromNullInputWorks$2\n-  #158 = Utf8               lambda$test_getOrDefault$1\n-  #159 = Utf8               ()Ljava/lang/String;\n-  #160 = Utf8               lambda$test_getOrDefault$0\n-  #161 = Utf8               SourceFile\n-  #162 = Utf8               UtilsTest.java\n-  #163 = NameAndType        #98:#99       // \"<init>\":()V\n-  #164 = Utf8               foo\n-  #165 = Utf8               bar\n-  #166 = Class              #284          // dev/langchain4j/internal/Utils\n-  #167 = NameAndType        #285:#286     // getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-  #168 = Utf8               java/lang/String\n-  #169 = Class              #287          // org/assertj/core/api/Assertions\n-  #170 = NameAndType        #288:#289     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #171 = NameAndType        #290:#289     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #172 = Utf8               BootstrapMethods\n-  #173 = MethodHandle       6:#291        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #174 = MethodType         #292          //  ()Ljava/lang/Object;\n-  #175 = MethodHandle       6:#293        // REF_invokeStatic dev/langchain4j/internal/UtilsTest.lambda$test_getOrDefault$0:()Ljava/lang/String;\n-  #176 = MethodType         #159          //  ()Ljava/lang/String;\n-  #177 = NameAndType        #294:#295     // get:()Ljava/util/function/Supplier;\n-  #178 = NameAndType        #285:#296     // getOrDefault:(Ljava/lang/Object;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-  #179 = MethodHandle       6:#297        // REF_invokeStatic dev/langchain4j/internal/UtilsTest.lambda$test_getOrDefault$1:()Ljava/lang/String;\n-  #180 = NameAndType        #298:#299     // isNullOrBlank:(Ljava/lang/String;)Z\n-  #181 = NameAndType        #288:#300     // assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-  #182 = Class              #301          // org/assertj/core/api/AbstractBooleanAssert\n-  #183 = NameAndType        #302:#303     // isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n-  #184 = Utf8\n-  #185 = Utf8\n-  #186 = NameAndType        #304:#303     // isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n-  #187 = NameAndType        #305:#299     // isNotNullOrBlank:(Ljava/lang/String;)Z\n-  #188 = NameAndType        #306:#307     // areNotNullOrBlank:([Ljava/lang/String;)Z\n-  #189 = NameAndType        #308:#309     // isNullOrEmpty:(Ljava/util/Collection;)Z\n-  #190 = Class              #310          // java/util/Collections\n-  #191 = NameAndType        #311:#312     // emptyList:()Ljava/util/List;\n-  #192 = Utf8               abc\n-  #193 = NameAndType        #313:#314     // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-  #194 = NameAndType        #315:#309     // isCollectionEmpty:(Ljava/util/Collection;)Z\n-  #195 = NameAndType        #316:#317     // repeat:(Ljava/lang/String;I)Ljava/lang/String;\n-  #196 = Utf8               foofoo\n-  #197 = Utf8               foofoofoo\n-  #198 = NameAndType        #318:#159     // randomUUID:()Ljava/lang/String;\n-  #199 = NameAndType        #319:#320     // isNotNull:()Lorg/assertj/core/api/AbstractAssert;\n-  #200 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #201 = NameAndType        #321:#322     // isNotEmpty:()Lorg/assertj/core/api/AbstractCharSequenceAssert;\n-  #202 = NameAndType        #323:#324     // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #203 = NameAndType        #325:#326     // fromString:(Ljava/lang/String;)Ljava/util/UUID;\n-  #204 = NameAndType        #288:#327     // assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-  #205 = Utf8               java/util/UUID\n-  #206 = Class              #328          // org/assertj/core/api/AbstractComparableAssert\n-  #207 = NameAndType        #329:#330     // isInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n-  #208 = Utf8               Hello\n-  #209 = Utf8               World\n-  #210 = NameAndType        #331:#332     // generateUUIDFrom:(Ljava/lang/String;)Ljava/lang/String;\n-  #211 = Utf8               java/lang/NullPointerException\n-  #212 = NameAndType        #333:#334     // assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-  #213 = MethodType         #99           //  ()V\n-  #214 = MethodHandle       6:#335        // REF_invokeStatic dev/langchain4j/internal/UtilsTest.lambda$generateUUIDFromNullInputWorks$2:()V\n-  #215 = NameAndType        #336:#340     // call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-  #216 = Class              #341          // org/assertj/core/api/ThrowableTypeAssert\n-  #217 = NameAndType        #342:#343     // isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #218 = NameAndType        #344:#345     // quoted:(Ljava/lang/Object;)Ljava/lang/String;\n-  #219 = Utf8               org/junit/jupiter/params/provider/Arguments\n-  #220 = Utf8               java/lang/Object\n-  #221 = Utf8               null\n-  #222 = NameAndType        #346:#347     // of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-  #223 = Utf8               \\\"\\\"\n-  #224 = Utf8               \\\" \\\"\n-  #225 = Utf8               hello\n-  #226 = Utf8               \\\"hello\\\"\n-  #227 = Class              #348          // java/util/stream/Stream\n-  #228 = NameAndType        #346:#349     // of:([Ljava/lang/Object;)Ljava/util/stream/Stream;\n-  #229 = NameAndType        #350:#317     // firstChars:(Ljava/lang/String;I)Ljava/lang/String;\n-  #230 = NameAndType        #351:#99      // isNull:()V\n-  #231 = NameAndType        #352:#99      // isEmpty:()V\n-  #232 = Utf8               foobar\n-  #233 = Utf8               java/net/InetSocketAddress\n-  #234 = NameAndType        #98:#148      // \"<init>\":(I)V\n-  #235 = Class              #281          // com/sun/net/httpserver/HttpServer\n-  #236 = NameAndType        #353:#354     // create:(Ljava/net/InetSocketAddress;I)Lcom/sun/net/httpserver/HttpServer;\n-  #237 = NameAndType        #355:#356     // getAddress:()Ljava/net/InetSocketAddress;\n-  #238 = NameAndType        #357:#358     // getPort:()I\n-  #239 = Utf8               /ok_endpoint\n-  #240 = MethodType         #151          //  (Lcom/sun/net/httpserver/HttpExchange;)V\n-  #241 = MethodHandle       6:#359        // REF_invokeStatic dev/langchain4j/internal/UtilsTest.lambda$test_readBytes$3:(Lcom/sun/net/httpserver/HttpExchange;)V\n-  #242 = NameAndType        #360:#361     // handle:()Lcom/sun/net/httpserver/HttpHandler;\n-  #243 = NameAndType        #362:#363     // createContext:(Ljava/lang/String;Lcom/sun/net/httpserver/HttpHandler;)Lcom/sun/net/httpserver/HttpContext;\n-  #244 = Utf8               /error_endpoint\n-  #245 = MethodHandle       6:#364        // REF_invokeStatic dev/langchain4j/internal/UtilsTest.lambda$test_readBytes$4:(Lcom/sun/net/httpserver/HttpExchange;)V\n-  #246 = NameAndType        #365:#99      // start:()V\n-  #247 = Utf8               java/lang/StringBuilder\n-  #248 = Utf8               http://localhost:\n-  #249 = NameAndType        #366:#367     // append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-  #250 = NameAndType        #366:#368     // append:(I)Ljava/lang/StringBuilder;\n-  #251 = NameAndType        #369:#159     // toString:()Ljava/lang/String;\n-  #252 = NameAndType        #370:#371     // readBytes:(Ljava/lang/String;)[B\n-  #253 = NameAndType        #288:#372     // assertThat:([B)Lorg/assertj/core/api/AbstractByteArrayAssert;\n-  #254 = NameAndType        #373:#374     // getBytes:()[B\n-  #255 = Class              #375          // org/assertj/core/api/AbstractByteArrayAssert\n-  #256 = NameAndType        #290:#324     // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #257 = Utf8               java/lang/RuntimeException\n-  #258 = MethodHandle       6:#376        // REF_invokeStatic dev/langchain4j/internal/UtilsTest.lambda$test_readBytes$5:(I)V\n-  #259 = NameAndType        #336:#377     // call:(I)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-  #260 = Utf8               Error while reading: 500\n-  #261 = Class              #378          // org/assertj/core/api/ThrowableAssertAlternative\n-  #262 = NameAndType        #379:#380     // withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #263 = NameAndType        #381:#148     // stop:(I)V\n-  #264 = NameAndType        #382:#383     // copyIfNotNull:(Ljava/util/List;)Ljava/util/List;\n-  #265 = NameAndType        #288:#384     // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #266 = Class              #385          // org/assertj/core/api/ListAssert\n-  #267 = Utf8               one\n-  #268 = NameAndType        #386:#387     // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #269 = Utf8               two\n-  #270 = Class              #388          // java/util/Arrays\n-  #271 = NameAndType        #389:#390     // asList:([Ljava/lang/Object;)Ljava/util/List;\n-  #272 = Utf8               nope\n-  #273 = Utf8               java/net/HttpURLConnection\n-  #274 = Class              #391          // com/sun/net/httpserver/HttpExchange\n-  #275 = NameAndType        #392:#393     // sendResponseHeaders:(IJ)V\n-  #276 = NameAndType        #394:#395     // getResponseBody:()Ljava/io/OutputStream;\n-  #277 = Class              #396          // java/io/OutputStream\n-  #278 = NameAndType        #397:#398     // write:([B)V\n-  #279 = NameAndType        #399:#99      // close:()V\n-  #280 = Utf8               dev/langchain4j/internal/UtilsTest\n-  #281 = Utf8               com/sun/net/httpserver/HttpServer\n-  #282 = Utf8               java/lang/Throwable\n-  #283 = Utf8               java/io/IOException\n-  #284 = Utf8               dev/langchain4j/internal/Utils\n-  #285 = Utf8               getOrDefault\n-  #286 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-  #287 = Utf8               org/assertj/core/api/Assertions\n-  #288 = Utf8               assertThat\n-  #289 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #290 = Utf8               isEqualTo\n-  #291 = Methodref          #400.#401     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #292 = Utf8               ()Ljava/lang/Object;\n-  #293 = Methodref          #97.#402      // dev/langchain4j/internal/UtilsTest.lambda$test_getOrDefault$0:()Ljava/lang/String;\n-  #294 = Utf8               get\n-  #295 = Utf8               ()Ljava/util/function/Supplier;\n-  #296 = Utf8               (Ljava/lang/Object;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-  #297 = Methodref          #97.#403      // dev/langchain4j/internal/UtilsTest.lambda$test_getOrDefault$1:()Ljava/lang/String;\n-  #298 = Utf8               isNullOrBlank\n-  #299 = Utf8               (Ljava/lang/String;)Z\n-  #300 = Utf8               (Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-  #301 = Utf8               org/assertj/core/api/AbstractBooleanAssert\n-  #302 = Utf8               isTrue\n-  #303 = Utf8               ()Lorg/assertj/core/api/AbstractBooleanAssert;\n-  #304 = Utf8               isFalse\n-  #305 = Utf8               isNotNullOrBlank\n-  #306 = Utf8               areNotNullOrBlank\n-  #307 = Utf8               ([Ljava/lang/String;)Z\n-  #308 = Utf8               isNullOrEmpty\n-  #309 = Utf8               (Ljava/util/Collection;)Z\n-  #310 = Utf8               java/util/Collections\n-  #311 = Utf8               emptyList\n-  #312 = Utf8               ()Ljava/util/List;\n-  #313 = Utf8               singletonList\n-  #314 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n-  #315 = Utf8               isCollectionEmpty\n-  #316 = Utf8               repeat\n-  #317 = Utf8               (Ljava/lang/String;I)Ljava/lang/String;\n-  #318 = Utf8               randomUUID\n-  #319 = Utf8               isNotNull\n-  #320 = Utf8               ()Lorg/assertj/core/api/AbstractAssert;\n-  #321 = Utf8               isNotEmpty\n-  #322 = Utf8               ()Lorg/assertj/core/api/AbstractCharSequenceAssert;\n-  #323 = Utf8               isNotEqualTo\n-  #324 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #325 = Utf8               fromString\n-  #326 = Utf8               (Ljava/lang/String;)Ljava/util/UUID;\n-  #327 = Utf8               (Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-  #328 = Utf8               org/assertj/core/api/AbstractComparableAssert\n-  #329 = Utf8               isInstanceOf\n-  #330 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n-  #331 = Utf8               generateUUIDFrom\n-  #332 = Utf8               (Ljava/lang/String;)Ljava/lang/String;\n-  #333 = Utf8               assertThatExceptionOfType\n-  #334 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-  #335 = Methodref          #97.#404      // dev/langchain4j/internal/UtilsTest.lambda$generateUUIDFromNullInputWorks$2:()V\n-  #336 = Utf8               call\n-  #337 = Class              #406          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #338 = Utf8               ThrowingCallable\n-  #339 = Utf8               InnerClasses\n-  #340 = Utf8               ()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-  #341 = Utf8               org/assertj/core/api/ThrowableTypeAssert\n-  #342 = Utf8               isThrownBy\n-  #343 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #344 = Utf8               quoted\n-  #345 = Utf8               (Ljava/lang/Object;)Ljava/lang/String;\n-  #346 = Utf8               of\n-  #347 = Utf8               ([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-  #348 = Utf8               java/util/stream/Stream\n-  #349 = Utf8               ([Ljava/lang/Object;)Ljava/util/stream/Stream;\n-  #350 = Utf8               firstChars\n-  #351 = Utf8               isNull\n-  #352 = Utf8               isEmpty\n-  #353 = Utf8               create\n-  #354 = Utf8               (Ljava/net/InetSocketAddress;I)Lcom/sun/net/httpserver/HttpServer;\n-  #355 = Utf8               getAddress\n-  #356 = Utf8               ()Ljava/net/InetSocketAddress;\n-  #357 = Utf8               getPort\n-  #358 = Utf8               ()I\n-  #359 = Methodref          #97.#407      // dev/langchain4j/internal/UtilsTest.lambda$test_readBytes$3:(Lcom/sun/net/httpserver/HttpExchange;)V\n-  #360 = Utf8               handle\n-  #361 = Utf8               ()Lcom/sun/net/httpserver/HttpHandler;\n-  #362 = Utf8               createContext\n-  #363 = Utf8               (Ljava/lang/String;Lcom/sun/net/httpserver/HttpHandler;)Lcom/sun/net/httpserver/HttpContext;\n-  #364 = Methodref          #97.#408      // dev/langchain4j/internal/UtilsTest.lambda$test_readBytes$4:(Lcom/sun/net/httpserver/HttpExchange;)V\n-  #365 = Utf8               start\n-  #366 = Utf8               append\n-  #367 = Utf8               (Ljava/lang/String;)Ljava/lang/StringBuilder;\n-  #368 = Utf8               (I)Ljava/lang/StringBuilder;\n-  #369 = Utf8               toString\n-  #370 = Utf8               readBytes\n-  #371 = Utf8               (Ljava/lang/String;)[B\n-  #372 = Utf8               ([B)Lorg/assertj/core/api/AbstractByteArrayAssert;\n-  #373 = Utf8               getBytes\n-  #374 = Utf8               ()[B\n-  #375 = Utf8               org/assertj/core/api/AbstractByteArrayAssert\n-  #376 = Methodref          #97.#409      // dev/langchain4j/internal/UtilsTest.lambda$test_readBytes$5:(I)V\n-  #377 = Utf8               (I)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-  #378 = Utf8               org/assertj/core/api/ThrowableAssertAlternative\n-  #379 = Utf8               withMessageContaining\n-  #380 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #381 = Utf8               stop\n-  #382 = Utf8               copyIfNotNull\n-  #383 = Utf8               (Ljava/util/List;)Ljava/util/List;\n-  #384 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #385 = Utf8               org/assertj/core/api/ListAssert\n-  #386 = Utf8               containsExactly\n-  #387 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #388 = Utf8               java/util/Arrays\n-  #389 = Utf8               asList\n-  #390 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n-  #391 = Utf8               com/sun/net/httpserver/HttpExchange\n-  #392 = Utf8               sendResponseHeaders\n-  #393 = Utf8               (IJ)V\n-  #394 = Utf8               getResponseBody\n-  #395 = Utf8               ()Ljava/io/OutputStream;\n-  #396 = Utf8               java/io/OutputStream\n-  #397 = Utf8               write\n-  #398 = Utf8               ([B)V\n-  #399 = Utf8               close\n-  #400 = Class              #410          // java/lang/invoke/LambdaMetafactory\n-  #401 = NameAndType        #411:#414     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #402 = NameAndType        #160:#159     // lambda$test_getOrDefault$0:()Ljava/lang/String;\n-  #403 = NameAndType        #158:#159     // lambda$test_getOrDefault$1:()Ljava/lang/String;\n-  #404 = NameAndType        #157:#99      // lambda$generateUUIDFromNullInputWorks$2:()V\n-  #405 = Class              #415          // org/assertj/core/api/ThrowableAssert\n-  #406 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #407 = NameAndType        #156:#151     // lambda$test_readBytes$3:(Lcom/sun/net/httpserver/HttpExchange;)V\n-  #408 = NameAndType        #150:#151     // lambda$test_readBytes$4:(Lcom/sun/net/httpserver/HttpExchange;)V\n-  #409 = NameAndType        #147:#148     // lambda$test_readBytes$5:(I)V\n-  #410 = Utf8               java/lang/invoke/LambdaMetafactory\n-  #411 = Utf8               metafactory\n-  #412 = Class              #417          // java/lang/invoke/MethodHandles$Lookup\n-  #413 = Utf8               Lookup\n-  #414 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #415 = Utf8               org/assertj/core/api/ThrowableAssert\n-  #416 = Class              #418          // java/lang/invoke/MethodHandles\n-  #417 = Utf8               java/lang/invoke/MethodHandles$Lookup\n-  #418 = Utf8               java/lang/invoke/MethodHandles\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = String             #8            // foo\n+    #8 = Utf8               foo\n+    #9 = String             #10           // bar\n+   #10 = Utf8               bar\n+   #11 = Methodref          #12.#13       // dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+   #12 = Class              #14           // dev/langchain4j/internal/Utils\n+   #13 = NameAndType        #15:#16       // getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+   #14 = Utf8               dev/langchain4j/internal/Utils\n+   #15 = Utf8               getOrDefault\n+   #16 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+   #17 = Class              #18           // java/lang/String\n+   #18 = Utf8               java/lang/String\n+   #19 = Methodref          #20.#21       // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #20 = Class              #22           // org/assertj/core/api/Assertions\n+   #21 = NameAndType        #23:#24       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #22 = Utf8               org/assertj/core/api/Assertions\n+   #23 = Utf8               assertThat\n+   #24 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #25 = Methodref          #26.#27       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #26 = Class              #28           // org/assertj/core/api/AbstractStringAssert\n+   #27 = NameAndType        #29:#24       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #28 = Utf8               org/assertj/core/api/AbstractStringAssert\n+   #29 = Utf8               isEqualTo\n+   #30 = InvokeDynamic      #0:#31        // #0:get:()Ljava/util/function/Supplier;\n+   #31 = NameAndType        #32:#33       // get:()Ljava/util/function/Supplier;\n+   #32 = Utf8               get\n+   #33 = Utf8               ()Ljava/util/function/Supplier;\n+   #34 = Methodref          #12.#35       // dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+   #35 = NameAndType        #15:#36       // getOrDefault:(Ljava/lang/Object;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+   #36 = Utf8               (Ljava/lang/Object;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+   #37 = InvokeDynamic      #1:#31        // #1:get:()Ljava/util/function/Supplier;\n+   #38 = Methodref          #12.#39       // dev/langchain4j/internal/Utils.isNullOrBlank:(Ljava/lang/String;)Z\n+   #39 = NameAndType        #40:#41       // isNullOrBlank:(Ljava/lang/String;)Z\n+   #40 = Utf8               isNullOrBlank\n+   #41 = Utf8               (Ljava/lang/String;)Z\n+   #42 = Methodref          #20.#43       // org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+   #43 = NameAndType        #23:#44       // assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+   #44 = Utf8               (Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+   #45 = Methodref          #46.#47       // org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+   #46 = Class              #48           // org/assertj/core/api/AbstractBooleanAssert\n+   #47 = NameAndType        #49:#50       // isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+   #48 = Utf8               org/assertj/core/api/AbstractBooleanAssert\n+   #49 = Utf8               isTrue\n+   #50 = Utf8               ()Lorg/assertj/core/api/AbstractBooleanAssert;\n+   #51 = String             #52           //\n+   #52 = Utf8\n+   #53 = String             #54           //\n+   #54 = Utf8\n+   #55 = Methodref          #46.#56       // org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+   #56 = NameAndType        #57:#50       // isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+   #57 = Utf8               isFalse\n+   #58 = Methodref          #12.#59       // dev/langchain4j/internal/Utils.isNotNullOrBlank:(Ljava/lang/String;)Z\n+   #59 = NameAndType        #60:#41       // isNotNullOrBlank:(Ljava/lang/String;)Z\n+   #60 = Utf8               isNotNullOrBlank\n+   #61 = Methodref          #12.#62       // dev/langchain4j/internal/Utils.areNotNullOrBlank:([Ljava/lang/String;)Z\n+   #62 = NameAndType        #63:#64       // areNotNullOrBlank:([Ljava/lang/String;)Z\n+   #63 = Utf8               areNotNullOrBlank\n+   #64 = Utf8               ([Ljava/lang/String;)Z\n+   #65 = Methodref          #12.#66       // dev/langchain4j/internal/Utils.isNullOrEmpty:(Ljava/util/Collection;)Z\n+   #66 = NameAndType        #67:#68       // isNullOrEmpty:(Ljava/util/Collection;)Z\n+   #67 = Utf8               isNullOrEmpty\n+   #68 = Utf8               (Ljava/util/Collection;)Z\n+   #69 = Methodref          #70.#71       // java/util/Collections.emptyList:()Ljava/util/List;\n+   #70 = Class              #72           // java/util/Collections\n+   #71 = NameAndType        #73:#74       // emptyList:()Ljava/util/List;\n+   #72 = Utf8               java/util/Collections\n+   #73 = Utf8               emptyList\n+   #74 = Utf8               ()Ljava/util/List;\n+   #75 = String             #76           // abc\n+   #76 = Utf8               abc\n+   #77 = Methodref          #70.#78       // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+   #78 = NameAndType        #79:#80       // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+   #79 = Utf8               singletonList\n+   #80 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n+   #81 = Methodref          #12.#82       // dev/langchain4j/internal/Utils.isCollectionEmpty:(Ljava/util/Collection;)Z\n+   #82 = NameAndType        #83:#68       // isCollectionEmpty:(Ljava/util/Collection;)Z\n+   #83 = Utf8               isCollectionEmpty\n+   #84 = Methodref          #12.#85       // dev/langchain4j/internal/Utils.repeat:(Ljava/lang/String;I)Ljava/lang/String;\n+   #85 = NameAndType        #86:#87       // repeat:(Ljava/lang/String;I)Ljava/lang/String;\n+   #86 = Utf8               repeat\n+   #87 = Utf8               (Ljava/lang/String;I)Ljava/lang/String;\n+   #88 = String             #89           // foofoo\n+   #89 = Utf8               foofoo\n+   #90 = String             #91           // foofoofoo\n+   #91 = Utf8               foofoofoo\n+   #92 = Methodref          #12.#93       // dev/langchain4j/internal/Utils.randomUUID:()Ljava/lang/String;\n+   #93 = NameAndType        #94:#95       // randomUUID:()Ljava/lang/String;\n+   #94 = Utf8               randomUUID\n+   #95 = Utf8               ()Ljava/lang/String;\n+   #96 = Methodref          #26.#97       // org/assertj/core/api/AbstractStringAssert.isNotNull:()Lorg/assertj/core/api/AbstractAssert;\n+   #97 = NameAndType        #98:#99       // isNotNull:()Lorg/assertj/core/api/AbstractAssert;\n+   #98 = Utf8               isNotNull\n+   #99 = Utf8               ()Lorg/assertj/core/api/AbstractAssert;\n+  #100 = Methodref          #26.#101      // org/assertj/core/api/AbstractStringAssert.isNotEmpty:()Lorg/assertj/core/api/AbstractCharSequenceAssert;\n+  #101 = NameAndType        #102:#103     // isNotEmpty:()Lorg/assertj/core/api/AbstractCharSequenceAssert;\n+  #102 = Utf8               isNotEmpty\n+  #103 = Utf8               ()Lorg/assertj/core/api/AbstractCharSequenceAssert;\n+  #104 = Methodref          #26.#105      // org/assertj/core/api/AbstractStringAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #105 = NameAndType        #106:#107     // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #106 = Utf8               isNotEqualTo\n+  #107 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #108 = Methodref          #109.#110     // java/util/UUID.fromString:(Ljava/lang/String;)Ljava/util/UUID;\n+  #109 = Class              #111          // java/util/UUID\n+  #110 = NameAndType        #112:#113     // fromString:(Ljava/lang/String;)Ljava/util/UUID;\n+  #111 = Utf8               java/util/UUID\n+  #112 = Utf8               fromString\n+  #113 = Utf8               (Ljava/lang/String;)Ljava/util/UUID;\n+  #114 = Methodref          #20.#115      // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+  #115 = NameAndType        #23:#116      // assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+  #116 = Utf8               (Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+  #117 = Methodref          #118.#119     // org/assertj/core/api/AbstractComparableAssert.isInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+  #118 = Class              #120          // org/assertj/core/api/AbstractComparableAssert\n+  #119 = NameAndType        #121:#122     // isInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+  #120 = Utf8               org/assertj/core/api/AbstractComparableAssert\n+  #121 = Utf8               isInstanceOf\n+  #122 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+  #123 = String             #124          // Hello\n+  #124 = Utf8               Hello\n+  #125 = String             #126          // World\n+  #126 = Utf8               World\n+  #127 = Methodref          #12.#128      // dev/langchain4j/internal/Utils.generateUUIDFrom:(Ljava/lang/String;)Ljava/lang/String;\n+  #128 = NameAndType        #129:#130     // generateUUIDFrom:(Ljava/lang/String;)Ljava/lang/String;\n+  #129 = Utf8               generateUUIDFrom\n+  #130 = Utf8               (Ljava/lang/String;)Ljava/lang/String;\n+  #131 = Class              #132          // java/lang/NullPointerException\n+  #132 = Utf8               java/lang/NullPointerException\n+  #133 = Methodref          #20.#134      // org/assertj/core/api/Assertions.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+  #134 = NameAndType        #135:#136     // assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+  #135 = Utf8               assertThatExceptionOfType\n+  #136 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+  #137 = InvokeDynamic      #2:#138       // #2:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+  #138 = NameAndType        #139:#140     // call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+  #139 = Utf8               call\n+  #140 = Utf8               ()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+  #141 = Methodref          #142.#143     // org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+  #142 = Class              #144          // org/assertj/core/api/ThrowableTypeAssert\n+  #143 = NameAndType        #145:#146     // isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+  #144 = Utf8               org/assertj/core/api/ThrowableTypeAssert\n+  #145 = Utf8               isThrownBy\n+  #146 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+  #147 = Methodref          #12.#148      // dev/langchain4j/internal/Utils.quoted:(Ljava/lang/Object;)Ljava/lang/String;\n+  #148 = NameAndType        #149:#150     // quoted:(Ljava/lang/Object;)Ljava/lang/String;\n+  #149 = Utf8               quoted\n+  #150 = Utf8               (Ljava/lang/Object;)Ljava/lang/String;\n+  #151 = Class              #152          // org/junit/jupiter/params/provider/Arguments\n+  #152 = Utf8               org/junit/jupiter/params/provider/Arguments\n+  #153 = String             #154          // null\n+  #154 = Utf8               null\n+  #155 = InterfaceMethodref #151.#156     // org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+  #156 = NameAndType        #157:#158     // of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+  #157 = Utf8               of\n+  #158 = Utf8               ([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+  #159 = String             #160          // \\\"\\\"\n+  #160 = Utf8               \\\"\\\"\n+  #161 = String             #162          // \\\" \\\"\n+  #162 = Utf8               \\\" \\\"\n+  #163 = String             #164          // hello\n+  #164 = Utf8               hello\n+  #165 = String             #166          // \\\"hello\\\"\n+  #166 = Utf8               \\\"hello\\\"\n+  #167 = InterfaceMethodref #168.#169     // java/util/stream/Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;\n+  #168 = Class              #170          // java/util/stream/Stream\n+  #169 = NameAndType        #157:#171     // of:([Ljava/lang/Object;)Ljava/util/stream/Stream;\n+  #170 = Utf8               java/util/stream/Stream\n+  #171 = Utf8               ([Ljava/lang/Object;)Ljava/util/stream/Stream;\n+  #172 = Methodref          #12.#173      // dev/langchain4j/internal/Utils.firstChars:(Ljava/lang/String;I)Ljava/lang/String;\n+  #173 = NameAndType        #174:#87      // firstChars:(Ljava/lang/String;I)Ljava/lang/String;\n+  #174 = Utf8               firstChars\n+  #175 = Methodref          #26.#176      // org/assertj/core/api/AbstractStringAssert.isNull:()V\n+  #176 = NameAndType        #177:#6       // isNull:()V\n+  #177 = Utf8               isNull\n+  #178 = Methodref          #26.#179      // org/assertj/core/api/AbstractStringAssert.isEmpty:()V\n+  #179 = NameAndType        #180:#6       // isEmpty:()V\n+  #180 = Utf8               isEmpty\n+  #181 = String             #182          // foobar\n+  #182 = Utf8               foobar\n+  #183 = Class              #184          // java/net/InetSocketAddress\n+  #184 = Utf8               java/net/InetSocketAddress\n+  #185 = Methodref          #183.#186     // java/net/InetSocketAddress.\"<init>\":(I)V\n+  #186 = NameAndType        #5:#187       // \"<init>\":(I)V\n+  #187 = Utf8               (I)V\n+  #188 = Methodref          #189.#190     // com/sun/net/httpserver/HttpServer.create:(Ljava/net/InetSocketAddress;I)Lcom/sun/net/httpserver/HttpServer;\n+  #189 = Class              #191          // com/sun/net/httpserver/HttpServer\n+  #190 = NameAndType        #192:#193     // create:(Ljava/net/InetSocketAddress;I)Lcom/sun/net/httpserver/HttpServer;\n+  #191 = Utf8               com/sun/net/httpserver/HttpServer\n+  #192 = Utf8               create\n+  #193 = Utf8               (Ljava/net/InetSocketAddress;I)Lcom/sun/net/httpserver/HttpServer;\n+  #194 = Methodref          #189.#195     // com/sun/net/httpserver/HttpServer.getAddress:()Ljava/net/InetSocketAddress;\n+  #195 = NameAndType        #196:#197     // getAddress:()Ljava/net/InetSocketAddress;\n+  #196 = Utf8               getAddress\n+  #197 = Utf8               ()Ljava/net/InetSocketAddress;\n+  #198 = Methodref          #183.#199     // java/net/InetSocketAddress.getPort:()I\n+  #199 = NameAndType        #200:#201     // getPort:()I\n+  #200 = Utf8               getPort\n+  #201 = Utf8               ()I\n+  #202 = String             #203          // /ok_endpoint\n+  #203 = Utf8               /ok_endpoint\n+  #204 = InvokeDynamic      #3:#205       // #3:handle:()Lcom/sun/net/httpserver/HttpHandler;\n+  #205 = NameAndType        #206:#207     // handle:()Lcom/sun/net/httpserver/HttpHandler;\n+  #206 = Utf8               handle\n+  #207 = Utf8               ()Lcom/sun/net/httpserver/HttpHandler;\n+  #208 = Methodref          #189.#209     // com/sun/net/httpserver/HttpServer.createContext:(Ljava/lang/String;Lcom/sun/net/httpserver/HttpHandler;)Lcom/sun/net/httpserver/HttpContext;\n+  #209 = NameAndType        #210:#211     // createContext:(Ljava/lang/String;Lcom/sun/net/httpserver/HttpHandler;)Lcom/sun/net/httpserver/HttpContext;\n+  #210 = Utf8               createContext\n+  #211 = Utf8               (Ljava/lang/String;Lcom/sun/net/httpserver/HttpHandler;)Lcom/sun/net/httpserver/HttpContext;\n+  #212 = String             #213          // /error_endpoint\n+  #213 = Utf8               /error_endpoint\n+  #214 = InvokeDynamic      #4:#205       // #4:handle:()Lcom/sun/net/httpserver/HttpHandler;\n+  #215 = Methodref          #189.#216     // com/sun/net/httpserver/HttpServer.start:()V\n+  #216 = NameAndType        #217:#6       // start:()V\n+  #217 = Utf8               start\n+  #218 = Class              #219          // java/lang/StringBuilder\n+  #219 = Utf8               java/lang/StringBuilder\n+  #220 = Methodref          #218.#3       // java/lang/StringBuilder.\"<init>\":()V\n+  #221 = String             #222          // http://localhost:\n+  #222 = Utf8               http://localhost:\n+  #223 = Methodref          #218.#224     // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+  #224 = NameAndType        #225:#226     // append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+  #225 = Utf8               append\n+  #226 = Utf8               (Ljava/lang/String;)Ljava/lang/StringBuilder;\n+  #227 = Methodref          #218.#228     // java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;\n+  #228 = NameAndType        #225:#229     // append:(I)Ljava/lang/StringBuilder;\n+  #229 = Utf8               (I)Ljava/lang/StringBuilder;\n+  #230 = Methodref          #218.#231     // java/lang/StringBuilder.toString:()Ljava/lang/String;\n+  #231 = NameAndType        #232:#95      // toString:()Ljava/lang/String;\n+  #232 = Utf8               toString\n+  #233 = Methodref          #12.#234      // dev/langchain4j/internal/Utils.readBytes:(Ljava/lang/String;)[B\n+  #234 = NameAndType        #235:#236     // readBytes:(Ljava/lang/String;)[B\n+  #235 = Utf8               readBytes\n+  #236 = Utf8               (Ljava/lang/String;)[B\n+  #237 = Methodref          #20.#238      // org/assertj/core/api/Assertions.assertThat:([B)Lorg/assertj/core/api/AbstractByteArrayAssert;\n+  #238 = NameAndType        #23:#239      // assertThat:([B)Lorg/assertj/core/api/AbstractByteArrayAssert;\n+  #239 = Utf8               ([B)Lorg/assertj/core/api/AbstractByteArrayAssert;\n+  #240 = Methodref          #17.#241      // java/lang/String.getBytes:()[B\n+  #241 = NameAndType        #242:#243     // getBytes:()[B\n+  #242 = Utf8               getBytes\n+  #243 = Utf8               ()[B\n+  #244 = Methodref          #245.#246     // org/assertj/core/api/AbstractByteArrayAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #245 = Class              #247          // org/assertj/core/api/AbstractByteArrayAssert\n+  #246 = NameAndType        #29:#107      // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #247 = Utf8               org/assertj/core/api/AbstractByteArrayAssert\n+  #248 = Class              #249          // java/lang/RuntimeException\n+  #249 = Utf8               java/lang/RuntimeException\n+  #250 = InvokeDynamic      #5:#251       // #5:call:(I)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+  #251 = NameAndType        #139:#252     // call:(I)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+  #252 = Utf8               (I)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+  #253 = String             #254          // Error while reading: 500\n+  #254 = Utf8               Error while reading: 500\n+  #255 = Methodref          #256.#257     // org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+  #256 = Class              #258          // org/assertj/core/api/ThrowableAssertAlternative\n+  #257 = NameAndType        #259:#260     // withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+  #258 = Utf8               org/assertj/core/api/ThrowableAssertAlternative\n+  #259 = Utf8               withMessageContaining\n+  #260 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+  #261 = Methodref          #189.#262     // com/sun/net/httpserver/HttpServer.stop:(I)V\n+  #262 = NameAndType        #263:#187     // stop:(I)V\n+  #263 = Utf8               stop\n+  #264 = Methodref          #12.#265      // dev/langchain4j/internal/Utils.copyIfNotNull:(Ljava/util/List;)Ljava/util/List;\n+  #265 = NameAndType        #266:#267     // copyIfNotNull:(Ljava/util/List;)Ljava/util/List;\n+  #266 = Utf8               copyIfNotNull\n+  #267 = Utf8               (Ljava/util/List;)Ljava/util/List;\n+  #268 = Methodref          #20.#269      // org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #269 = NameAndType        #23:#270      // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #270 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #271 = Methodref          #272.#176     // org/assertj/core/api/ListAssert.isNull:()V\n+  #272 = Class              #273          // org/assertj/core/api/ListAssert\n+  #273 = Utf8               org/assertj/core/api/ListAssert\n+  #274 = Methodref          #272.#179     // org/assertj/core/api/ListAssert.isEmpty:()V\n+  #275 = String             #276          // one\n+  #276 = Utf8               one\n+  #277 = Methodref          #272.#278     // org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #278 = NameAndType        #279:#280     // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #279 = Utf8               containsExactly\n+  #280 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #281 = String             #282          // two\n+  #282 = Utf8               two\n+  #283 = Methodref          #284.#285     // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+  #284 = Class              #286          // java/util/Arrays\n+  #285 = NameAndType        #287:#288     // asList:([Ljava/lang/Object;)Ljava/util/List;\n+  #286 = Utf8               java/util/Arrays\n+  #287 = Utf8               asList\n+  #288 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n+  #289 = String             #290          // nope\n+  #290 = Utf8               nope\n+  #291 = Class              #292          // java/net/HttpURLConnection\n+  #292 = Utf8               java/net/HttpURLConnection\n+  #293 = Methodref          #294.#295     // com/sun/net/httpserver/HttpExchange.sendResponseHeaders:(IJ)V\n+  #294 = Class              #296          // com/sun/net/httpserver/HttpExchange\n+  #295 = NameAndType        #297:#298     // sendResponseHeaders:(IJ)V\n+  #296 = Utf8               com/sun/net/httpserver/HttpExchange\n+  #297 = Utf8               sendResponseHeaders\n+  #298 = Utf8               (IJ)V\n+  #299 = Methodref          #294.#300     // com/sun/net/httpserver/HttpExchange.getResponseBody:()Ljava/io/OutputStream;\n+  #300 = NameAndType        #301:#302     // getResponseBody:()Ljava/io/OutputStream;\n+  #301 = Utf8               getResponseBody\n+  #302 = Utf8               ()Ljava/io/OutputStream;\n+  #303 = Methodref          #304.#305     // java/io/OutputStream.write:([B)V\n+  #304 = Class              #306          // java/io/OutputStream\n+  #305 = NameAndType        #307:#308     // write:([B)V\n+  #306 = Utf8               java/io/OutputStream\n+  #307 = Utf8               write\n+  #308 = Utf8               ([B)V\n+  #309 = Methodref          #294.#310     // com/sun/net/httpserver/HttpExchange.close:()V\n+  #310 = NameAndType        #311:#6       // close:()V\n+  #311 = Utf8               close\n+  #312 = Class              #313          // dev/langchain4j/internal/UtilsTest\n+  #313 = Utf8               dev/langchain4j/internal/UtilsTest\n+  #314 = Utf8               Code\n+  #315 = Utf8               LineNumberTable\n+  #316 = Utf8               LocalVariableTable\n+  #317 = Utf8               this\n+  #318 = Utf8               Ldev/langchain4j/internal/UtilsTest;\n+  #319 = Utf8               test_getOrDefault\n+  #320 = Utf8               RuntimeVisibleAnnotations\n+  #321 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #322 = Utf8               test_isNullOrBlank\n+  #323 = Utf8               test_areNotNullOrBlank\n+  #324 = Utf8               test_isNullOrEmpty\n+  #325 = Utf8               test_isCollectionEmpty\n+  #326 = Utf8               test_repeat\n+  #327 = Utf8               randomUUIDWorks\n+  #328 = Utf8               uuid1\n+  #329 = Utf8               Ljava/lang/String;\n+  #330 = Utf8               uuid2\n+  #331 = Utf8               generateUUIDFromTextWorks\n+  #332 = Utf8               input1\n+  #333 = Utf8               input2\n+  #334 = Utf8               uuidFromInput1\n+  #335 = Utf8               uuidFromInput2\n+  #336 = Utf8               generateUUIDFromEmptyInputWorks\n+  #337 = Utf8               uuidFromEmptyInput\n+  #338 = Utf8               generateUUIDFromNullInputWorks\n+  #339 = Utf8               test_quoted\n+  #340 = Utf8               (Ljava/lang/String;Ljava/lang/String;)V\n+  #341 = Utf8               string\n+  #342 = Utf8               expected\n+  #343 = Utf8               Lorg/junit/jupiter/params/provider/MethodSource;\n+  #344 = Utf8               Lorg/junit/jupiter/params/ParameterizedTest;\n+  #345 = Utf8               ()Ljava/util/stream/Stream;\n+  #346 = Utf8               Signature\n+  #347 = Utf8               ()Ljava/util/stream/Stream<Lorg/junit/jupiter/params/provider/Arguments;>;\n+  #348 = Utf8               test_firstChars\n+  #349 = Utf8               test_readBytes\n+  #350 = Utf8               port\n+  #351 = Utf8               I\n+  #352 = Utf8               httpServer\n+  #353 = Utf8               Lcom/sun/net/httpserver/HttpServer;\n+  #354 = Utf8               StackMapTable\n+  #355 = Class              #356          // java/lang/Throwable\n+  #356 = Utf8               java/lang/Throwable\n+  #357 = Utf8               Exceptions\n+  #358 = Class              #359          // java/io/IOException\n+  #359 = Utf8               java/io/IOException\n+  #360 = Utf8               test_copyIfNotNull\n+  #361 = Utf8               lambda$test_readBytes$5\n+  #362 = Utf8               lambda$test_readBytes$4\n+  #363 = Utf8               (Lcom/sun/net/httpserver/HttpExchange;)V\n+  #364 = Utf8               exchange\n+  #365 = Utf8               Lcom/sun/net/httpserver/HttpExchange;\n+  #366 = Utf8               response\n+  #367 = Utf8               [B\n+  #368 = Utf8               lambda$test_readBytes$3\n+  #369 = Utf8               lambda$generateUUIDFromNullInputWorks$2\n+  #370 = Utf8               lambda$test_getOrDefault$1\n+  #371 = Utf8               lambda$test_getOrDefault$0\n+  #372 = Utf8               SourceFile\n+  #373 = Utf8               UtilsTest.java\n+  #374 = Utf8               BootstrapMethods\n+  #375 = MethodHandle       6:#376        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #376 = Methodref          #377.#378     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #377 = Class              #379          // java/lang/invoke/LambdaMetafactory\n+  #378 = NameAndType        #380:#381     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #379 = Utf8               java/lang/invoke/LambdaMetafactory\n+  #380 = Utf8               metafactory\n+  #381 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #382 = MethodType         #383          //  ()Ljava/lang/Object;\n+  #383 = Utf8               ()Ljava/lang/Object;\n+  #384 = MethodHandle       6:#385        // REF_invokeStatic dev/langchain4j/internal/UtilsTest.lambda$test_getOrDefault$0:()Ljava/lang/String;\n+  #385 = Methodref          #312.#386     // dev/langchain4j/internal/UtilsTest.lambda$test_getOrDefault$0:()Ljava/lang/String;\n+  #386 = NameAndType        #371:#95      // lambda$test_getOrDefault$0:()Ljava/lang/String;\n+  #387 = MethodType         #95           //  ()Ljava/lang/String;\n+  #388 = MethodHandle       6:#389        // REF_invokeStatic dev/langchain4j/internal/UtilsTest.lambda$test_getOrDefault$1:()Ljava/lang/String;\n+  #389 = Methodref          #312.#390     // dev/langchain4j/internal/UtilsTest.lambda$test_getOrDefault$1:()Ljava/lang/String;\n+  #390 = NameAndType        #370:#95      // lambda$test_getOrDefault$1:()Ljava/lang/String;\n+  #391 = MethodType         #6            //  ()V\n+  #392 = MethodHandle       6:#393        // REF_invokeStatic dev/langchain4j/internal/UtilsTest.lambda$generateUUIDFromNullInputWorks$2:()V\n+  #393 = Methodref          #312.#394     // dev/langchain4j/internal/UtilsTest.lambda$generateUUIDFromNullInputWorks$2:()V\n+  #394 = NameAndType        #369:#6       // lambda$generateUUIDFromNullInputWorks$2:()V\n+  #395 = MethodType         #363          //  (Lcom/sun/net/httpserver/HttpExchange;)V\n+  #396 = MethodHandle       6:#397        // REF_invokeStatic dev/langchain4j/internal/UtilsTest.lambda$test_readBytes$3:(Lcom/sun/net/httpserver/HttpExchange;)V\n+  #397 = Methodref          #312.#398     // dev/langchain4j/internal/UtilsTest.lambda$test_readBytes$3:(Lcom/sun/net/httpserver/HttpExchange;)V\n+  #398 = NameAndType        #368:#363     // lambda$test_readBytes$3:(Lcom/sun/net/httpserver/HttpExchange;)V\n+  #399 = MethodHandle       6:#400        // REF_invokeStatic dev/langchain4j/internal/UtilsTest.lambda$test_readBytes$4:(Lcom/sun/net/httpserver/HttpExchange;)V\n+  #400 = Methodref          #312.#401     // dev/langchain4j/internal/UtilsTest.lambda$test_readBytes$4:(Lcom/sun/net/httpserver/HttpExchange;)V\n+  #401 = NameAndType        #362:#363     // lambda$test_readBytes$4:(Lcom/sun/net/httpserver/HttpExchange;)V\n+  #402 = MethodHandle       6:#403        // REF_invokeStatic dev/langchain4j/internal/UtilsTest.lambda$test_readBytes$5:(I)V\n+  #403 = Methodref          #312.#404     // dev/langchain4j/internal/UtilsTest.lambda$test_readBytes$5:(I)V\n+  #404 = NameAndType        #361:#187     // lambda$test_readBytes$5:(I)V\n+  #405 = Utf8               InnerClasses\n+  #406 = Class              #407          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n+  #407 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n+  #408 = Class              #409          // org/assertj/core/api/ThrowableAssert\n+  #409 = Utf8               org/assertj/core/api/ThrowableAssert\n+  #410 = Utf8               ThrowingCallable\n+  #411 = Class              #412          // java/lang/invoke/MethodHandles$Lookup\n+  #412 = Utf8               java/lang/invoke/MethodHandles$Lookup\n+  #413 = Class              #414          // java/lang/invoke/MethodHandles\n+  #414 = Utf8               java/lang/invoke/MethodHandles\n+  #415 = Utf8               Lookup\n {\n   dev.langchain4j.internal.UtilsTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -442,104 +439,104 @@\n             0       5     0  this   Ldev/langchain4j/internal/UtilsTest;\n \n   public void test_getOrDefault();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=1, args_size=1\n-         0: ldc           #2                  // String foo\n-         2: ldc           #3                  // String bar\n-         4: invokestatic  #4                  // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-         7: checkcast     #5                  // class java/lang/String\n-        10: invokestatic  #6                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        13: ldc           #2                  // String foo\n-        15: invokevirtual #7                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+         0: ldc           #7                  // String foo\n+         2: ldc           #9                  // String bar\n+         4: invokestatic  #11                 // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+         7: checkcast     #17                 // class java/lang/String\n+        10: invokestatic  #19                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        13: ldc           #7                  // String foo\n+        15: invokevirtual #25                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         18: pop\n         19: aconst_null\n-        20: ldc           #3                  // String bar\n-        22: invokestatic  #4                  // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-        25: checkcast     #5                  // class java/lang/String\n-        28: invokestatic  #6                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        31: ldc           #3                  // String bar\n-        33: invokevirtual #7                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        20: ldc           #9                  // String bar\n+        22: invokestatic  #11                 // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+        25: checkcast     #17                 // class java/lang/String\n+        28: invokestatic  #19                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        31: ldc           #9                  // String bar\n+        33: invokevirtual #25                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         36: pop\n-        37: ldc           #2                  // String foo\n-        39: invokedynamic #8,  0              // InvokeDynamic #0:get:()Ljava/util/function/Supplier;\n-        44: invokestatic  #9                  // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-        47: checkcast     #5                  // class java/lang/String\n-        50: invokestatic  #6                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        53: ldc           #2                  // String foo\n-        55: invokevirtual #7                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        37: ldc           #7                  // String foo\n+        39: invokedynamic #30,  0             // InvokeDynamic #0:get:()Ljava/util/function/Supplier;\n+        44: invokestatic  #34                 // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+        47: checkcast     #17                 // class java/lang/String\n+        50: invokestatic  #19                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        53: ldc           #7                  // String foo\n+        55: invokevirtual #25                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         58: pop\n         59: aconst_null\n-        60: invokedynamic #10,  0             // InvokeDynamic #1:get:()Ljava/util/function/Supplier;\n-        65: invokestatic  #9                  // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-        68: checkcast     #5                  // class java/lang/String\n-        71: invokestatic  #6                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        74: ldc           #3                  // String bar\n-        76: invokevirtual #7                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        60: invokedynamic #37,  0             // InvokeDynamic #1:get:()Ljava/util/function/Supplier;\n+        65: invokestatic  #34                 // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+        68: checkcast     #17                 // class java/lang/String\n+        71: invokestatic  #19                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        74: ldc           #9                  // String bar\n+        76: invokevirtual #25                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         79: pop\n         80: return\n       LineNumberTable:\n         line 27: 0\n         line 28: 19\n         line 30: 37\n         line 31: 59\n         line 32: 80\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      81     0  this   Ldev/langchain4j/internal/UtilsTest;\n     RuntimeVisibleAnnotations:\n-      0: #107()\n+      0: #321()\n         org.junit.jupiter.api.Test\n \n   public void test_isNullOrBlank();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aconst_null\n-         1: invokestatic  #11                 // Method dev/langchain4j/internal/Utils.isNullOrBlank:(Ljava/lang/String;)Z\n-         4: invokestatic  #12                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-         7: invokevirtual #13                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+         1: invokestatic  #38                 // Method dev/langchain4j/internal/Utils.isNullOrBlank:(Ljava/lang/String;)Z\n+         4: invokestatic  #42                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+         7: invokevirtual #45                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n         10: pop\n-        11: ldc           #14                 // String\n-        13: invokestatic  #11                 // Method dev/langchain4j/internal/Utils.isNullOrBlank:(Ljava/lang/String;)Z\n-        16: invokestatic  #12                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-        19: invokevirtual #13                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+        11: ldc           #51                 // String\n+        13: invokestatic  #38                 // Method dev/langchain4j/internal/Utils.isNullOrBlank:(Ljava/lang/String;)Z\n+        16: invokestatic  #42                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+        19: invokevirtual #45                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n         22: pop\n-        23: ldc           #15                 // String\n-        25: invokestatic  #11                 // Method dev/langchain4j/internal/Utils.isNullOrBlank:(Ljava/lang/String;)Z\n-        28: invokestatic  #12                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-        31: invokevirtual #13                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+        23: ldc           #53                 // String\n+        25: invokestatic  #38                 // Method dev/langchain4j/internal/Utils.isNullOrBlank:(Ljava/lang/String;)Z\n+        28: invokestatic  #42                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+        31: invokevirtual #45                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n         34: pop\n-        35: ldc           #2                  // String foo\n-        37: invokestatic  #11                 // Method dev/langchain4j/internal/Utils.isNullOrBlank:(Ljava/lang/String;)Z\n-        40: invokestatic  #12                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-        43: invokevirtual #16                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+        35: ldc           #7                  // String foo\n+        37: invokestatic  #38                 // Method dev/langchain4j/internal/Utils.isNullOrBlank:(Ljava/lang/String;)Z\n+        40: invokestatic  #42                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+        43: invokevirtual #55                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n         46: pop\n         47: aconst_null\n-        48: invokestatic  #17                 // Method dev/langchain4j/internal/Utils.isNotNullOrBlank:(Ljava/lang/String;)Z\n-        51: invokestatic  #12                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-        54: invokevirtual #16                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+        48: invokestatic  #58                 // Method dev/langchain4j/internal/Utils.isNotNullOrBlank:(Ljava/lang/String;)Z\n+        51: invokestatic  #42                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+        54: invokevirtual #55                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n         57: pop\n-        58: ldc           #14                 // String\n-        60: invokestatic  #17                 // Method dev/langchain4j/internal/Utils.isNotNullOrBlank:(Ljava/lang/String;)Z\n-        63: invokestatic  #12                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-        66: invokevirtual #16                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+        58: ldc           #51                 // String\n+        60: invokestatic  #58                 // Method dev/langchain4j/internal/Utils.isNotNullOrBlank:(Ljava/lang/String;)Z\n+        63: invokestatic  #42                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+        66: invokevirtual #55                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n         69: pop\n-        70: ldc           #15                 // String\n-        72: invokestatic  #17                 // Method dev/langchain4j/internal/Utils.isNotNullOrBlank:(Ljava/lang/String;)Z\n-        75: invokestatic  #12                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-        78: invokevirtual #16                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+        70: ldc           #53                 // String\n+        72: invokestatic  #58                 // Method dev/langchain4j/internal/Utils.isNotNullOrBlank:(Ljava/lang/String;)Z\n+        75: invokestatic  #42                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+        78: invokevirtual #55                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n         81: pop\n-        82: ldc           #2                  // String foo\n-        84: invokestatic  #17                 // Method dev/langchain4j/internal/Utils.isNotNullOrBlank:(Ljava/lang/String;)Z\n-        87: invokestatic  #12                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-        90: invokevirtual #13                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+        82: ldc           #7                  // String foo\n+        84: invokestatic  #58                 // Method dev/langchain4j/internal/Utils.isNotNullOrBlank:(Ljava/lang/String;)Z\n+        87: invokestatic  #42                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+        90: invokevirtual #45                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n         93: pop\n         94: return\n       LineNumberTable:\n         line 36: 0\n         line 37: 11\n         line 38: 23\n         line 39: 35\n@@ -548,124 +545,124 @@\n         line 43: 70\n         line 44: 82\n         line 45: 94\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      95     0  this   Ldev/langchain4j/internal/UtilsTest;\n     RuntimeVisibleAnnotations:\n-      0: #107()\n+      0: #321()\n         org.junit.jupiter.api.Test\n \n   public void test_areNotNullOrBlank();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=4, locals=1, args_size=1\n          0: iconst_0\n-         1: anewarray     #5                  // class java/lang/String\n-         4: invokestatic  #18                 // Method dev/langchain4j/internal/Utils.areNotNullOrBlank:([Ljava/lang/String;)Z\n-         7: invokestatic  #12                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-        10: invokevirtual #16                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+         1: anewarray     #17                 // class java/lang/String\n+         4: invokestatic  #61                 // Method dev/langchain4j/internal/Utils.areNotNullOrBlank:([Ljava/lang/String;)Z\n+         7: invokestatic  #42                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+        10: invokevirtual #55                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n         13: pop\n         14: iconst_1\n-        15: anewarray     #5                  // class java/lang/String\n+        15: anewarray     #17                 // class java/lang/String\n         18: dup\n         19: iconst_0\n         20: aconst_null\n-        21: checkcast     #5                  // class java/lang/String\n+        21: checkcast     #17                 // class java/lang/String\n         24: aastore\n-        25: invokestatic  #18                 // Method dev/langchain4j/internal/Utils.areNotNullOrBlank:([Ljava/lang/String;)Z\n-        28: invokestatic  #12                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-        31: invokevirtual #16                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+        25: invokestatic  #61                 // Method dev/langchain4j/internal/Utils.areNotNullOrBlank:([Ljava/lang/String;)Z\n+        28: invokestatic  #42                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+        31: invokevirtual #55                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n         34: pop\n         35: iconst_1\n-        36: anewarray     #5                  // class java/lang/String\n+        36: anewarray     #17                 // class java/lang/String\n         39: dup\n         40: iconst_0\n-        41: ldc           #14                 // String\n+        41: ldc           #51                 // String\n         43: aastore\n-        44: invokestatic  #18                 // Method dev/langchain4j/internal/Utils.areNotNullOrBlank:([Ljava/lang/String;)Z\n-        47: invokestatic  #12                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-        50: invokevirtual #16                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+        44: invokestatic  #61                 // Method dev/langchain4j/internal/Utils.areNotNullOrBlank:([Ljava/lang/String;)Z\n+        47: invokestatic  #42                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+        50: invokevirtual #55                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n         53: pop\n         54: iconst_1\n-        55: anewarray     #5                  // class java/lang/String\n+        55: anewarray     #17                 // class java/lang/String\n         58: dup\n         59: iconst_0\n-        60: ldc           #15                 // String\n+        60: ldc           #53                 // String\n         62: aastore\n-        63: invokestatic  #18                 // Method dev/langchain4j/internal/Utils.areNotNullOrBlank:([Ljava/lang/String;)Z\n-        66: invokestatic  #12                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-        69: invokevirtual #16                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+        63: invokestatic  #61                 // Method dev/langchain4j/internal/Utils.areNotNullOrBlank:([Ljava/lang/String;)Z\n+        66: invokestatic  #42                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+        69: invokevirtual #55                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n         72: pop\n         73: iconst_1\n-        74: anewarray     #5                  // class java/lang/String\n+        74: anewarray     #17                 // class java/lang/String\n         77: dup\n         78: iconst_0\n-        79: ldc           #2                  // String foo\n+        79: ldc           #7                  // String foo\n         81: aastore\n-        82: invokestatic  #18                 // Method dev/langchain4j/internal/Utils.areNotNullOrBlank:([Ljava/lang/String;)Z\n-        85: invokestatic  #12                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-        88: invokevirtual #13                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+        82: invokestatic  #61                 // Method dev/langchain4j/internal/Utils.areNotNullOrBlank:([Ljava/lang/String;)Z\n+        85: invokestatic  #42                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+        88: invokevirtual #45                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n         91: pop\n         92: iconst_2\n-        93: anewarray     #5                  // class java/lang/String\n+        93: anewarray     #17                 // class java/lang/String\n         96: dup\n         97: iconst_0\n-        98: ldc           #2                  // String foo\n+        98: ldc           #7                  // String foo\n        100: aastore\n        101: dup\n        102: iconst_1\n-       103: ldc           #3                  // String bar\n+       103: ldc           #9                  // String bar\n        105: aastore\n-       106: invokestatic  #18                 // Method dev/langchain4j/internal/Utils.areNotNullOrBlank:([Ljava/lang/String;)Z\n-       109: invokestatic  #12                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-       112: invokevirtual #13                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+       106: invokestatic  #61                 // Method dev/langchain4j/internal/Utils.areNotNullOrBlank:([Ljava/lang/String;)Z\n+       109: invokestatic  #42                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+       112: invokevirtual #45                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n        115: pop\n        116: iconst_2\n-       117: anewarray     #5                  // class java/lang/String\n+       117: anewarray     #17                 // class java/lang/String\n        120: dup\n        121: iconst_0\n-       122: ldc           #2                  // String foo\n+       122: ldc           #7                  // String foo\n        124: aastore\n        125: dup\n        126: iconst_1\n        127: aconst_null\n        128: aastore\n-       129: invokestatic  #18                 // Method dev/langchain4j/internal/Utils.areNotNullOrBlank:([Ljava/lang/String;)Z\n-       132: invokestatic  #12                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-       135: invokevirtual #16                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+       129: invokestatic  #61                 // Method dev/langchain4j/internal/Utils.areNotNullOrBlank:([Ljava/lang/String;)Z\n+       132: invokestatic  #42                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+       135: invokevirtual #55                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n        138: pop\n        139: iconst_2\n-       140: anewarray     #5                  // class java/lang/String\n+       140: anewarray     #17                 // class java/lang/String\n        143: dup\n        144: iconst_0\n        145: aconst_null\n        146: aastore\n        147: dup\n        148: iconst_1\n-       149: ldc           #3                  // String bar\n+       149: ldc           #9                  // String bar\n        151: aastore\n-       152: invokestatic  #18                 // Method dev/langchain4j/internal/Utils.areNotNullOrBlank:([Ljava/lang/String;)Z\n-       155: invokestatic  #12                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-       158: invokevirtual #16                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+       152: invokestatic  #61                 // Method dev/langchain4j/internal/Utils.areNotNullOrBlank:([Ljava/lang/String;)Z\n+       155: invokestatic  #42                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+       158: invokevirtual #55                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n        161: pop\n        162: iconst_2\n-       163: anewarray     #5                  // class java/lang/String\n+       163: anewarray     #17                 // class java/lang/String\n        166: dup\n        167: iconst_0\n        168: aconst_null\n        169: aastore\n        170: dup\n        171: iconst_1\n        172: aconst_null\n        173: aastore\n-       174: invokestatic  #18                 // Method dev/langchain4j/internal/Utils.areNotNullOrBlank:([Ljava/lang/String;)Z\n-       177: invokestatic  #12                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-       180: invokevirtual #16                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+       174: invokestatic  #61                 // Method dev/langchain4j/internal/Utils.areNotNullOrBlank:([Ljava/lang/String;)Z\n+       177: invokestatic  #42                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+       180: invokevirtual #55                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n        183: pop\n        184: return\n       LineNumberTable:\n         line 49: 0\n         line 50: 14\n         line 51: 35\n         line 52: 54\n@@ -675,169 +672,169 @@\n         line 56: 139\n         line 57: 162\n         line 58: 184\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     185     0  this   Ldev/langchain4j/internal/UtilsTest;\n     RuntimeVisibleAnnotations:\n-      0: #107()\n+      0: #321()\n         org.junit.jupiter.api.Test\n \n   public void test_isNullOrEmpty();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aconst_null\n-         1: invokestatic  #19                 // Method dev/langchain4j/internal/Utils.isNullOrEmpty:(Ljava/util/Collection;)Z\n-         4: invokestatic  #12                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-         7: invokevirtual #13                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+         1: invokestatic  #65                 // Method dev/langchain4j/internal/Utils.isNullOrEmpty:(Ljava/util/Collection;)Z\n+         4: invokestatic  #42                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+         7: invokevirtual #45                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n         10: pop\n-        11: invokestatic  #20                 // Method java/util/Collections.emptyList:()Ljava/util/List;\n-        14: invokestatic  #19                 // Method dev/langchain4j/internal/Utils.isNullOrEmpty:(Ljava/util/Collection;)Z\n-        17: invokestatic  #12                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-        20: invokevirtual #13                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+        11: invokestatic  #69                 // Method java/util/Collections.emptyList:()Ljava/util/List;\n+        14: invokestatic  #65                 // Method dev/langchain4j/internal/Utils.isNullOrEmpty:(Ljava/util/Collection;)Z\n+        17: invokestatic  #42                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+        20: invokevirtual #45                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n         23: pop\n-        24: ldc           #21                 // String abc\n-        26: invokestatic  #22                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-        29: invokestatic  #19                 // Method dev/langchain4j/internal/Utils.isNullOrEmpty:(Ljava/util/Collection;)Z\n-        32: invokestatic  #12                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-        35: invokevirtual #16                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+        24: ldc           #75                 // String abc\n+        26: invokestatic  #77                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+        29: invokestatic  #65                 // Method dev/langchain4j/internal/Utils.isNullOrEmpty:(Ljava/util/Collection;)Z\n+        32: invokestatic  #42                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+        35: invokevirtual #55                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n         38: pop\n         39: return\n       LineNumberTable:\n         line 62: 0\n         line 63: 11\n         line 64: 24\n         line 65: 39\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      40     0  this   Ldev/langchain4j/internal/UtilsTest;\n     RuntimeVisibleAnnotations:\n-      0: #107()\n+      0: #321()\n         org.junit.jupiter.api.Test\n \n   public void test_isCollectionEmpty();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aconst_null\n-         1: invokestatic  #23                 // Method dev/langchain4j/internal/Utils.isCollectionEmpty:(Ljava/util/Collection;)Z\n-         4: invokestatic  #12                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-         7: invokevirtual #13                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+         1: invokestatic  #81                 // Method dev/langchain4j/internal/Utils.isCollectionEmpty:(Ljava/util/Collection;)Z\n+         4: invokestatic  #42                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+         7: invokevirtual #45                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n         10: pop\n-        11: invokestatic  #20                 // Method java/util/Collections.emptyList:()Ljava/util/List;\n-        14: invokestatic  #23                 // Method dev/langchain4j/internal/Utils.isCollectionEmpty:(Ljava/util/Collection;)Z\n-        17: invokestatic  #12                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-        20: invokevirtual #13                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+        11: invokestatic  #69                 // Method java/util/Collections.emptyList:()Ljava/util/List;\n+        14: invokestatic  #81                 // Method dev/langchain4j/internal/Utils.isCollectionEmpty:(Ljava/util/Collection;)Z\n+        17: invokestatic  #42                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+        20: invokevirtual #45                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n         23: pop\n-        24: ldc           #21                 // String abc\n-        26: invokestatic  #22                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-        29: invokestatic  #23                 // Method dev/langchain4j/internal/Utils.isCollectionEmpty:(Ljava/util/Collection;)Z\n-        32: invokestatic  #12                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-        35: invokevirtual #16                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+        24: ldc           #75                 // String abc\n+        26: invokestatic  #77                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+        29: invokestatic  #81                 // Method dev/langchain4j/internal/Utils.isCollectionEmpty:(Ljava/util/Collection;)Z\n+        32: invokestatic  #42                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+        35: invokevirtual #55                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n         38: pop\n         39: return\n       LineNumberTable:\n         line 70: 0\n         line 71: 11\n         line 72: 24\n         line 73: 39\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      40     0  this   Ldev/langchain4j/internal/UtilsTest;\n     RuntimeVisibleAnnotations:\n-      0: #107()\n+      0: #321()\n         org.junit.jupiter.api.Test\n \n   public void test_repeat();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=1, args_size=1\n-         0: ldc           #2                  // String foo\n+         0: ldc           #7                  // String foo\n          2: iconst_0\n-         3: invokestatic  #24                 // Method dev/langchain4j/internal/Utils.repeat:(Ljava/lang/String;I)Ljava/lang/String;\n-         6: invokestatic  #6                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-         9: ldc           #14                 // String\n-        11: invokevirtual #7                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+         3: invokestatic  #84                 // Method dev/langchain4j/internal/Utils.repeat:(Ljava/lang/String;I)Ljava/lang/String;\n+         6: invokestatic  #19                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+         9: ldc           #51                 // String\n+        11: invokevirtual #25                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         14: pop\n-        15: ldc           #2                  // String foo\n+        15: ldc           #7                  // String foo\n         17: iconst_1\n-        18: invokestatic  #24                 // Method dev/langchain4j/internal/Utils.repeat:(Ljava/lang/String;I)Ljava/lang/String;\n-        21: invokestatic  #6                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        24: ldc           #2                  // String foo\n-        26: invokevirtual #7                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        18: invokestatic  #84                 // Method dev/langchain4j/internal/Utils.repeat:(Ljava/lang/String;I)Ljava/lang/String;\n+        21: invokestatic  #19                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        24: ldc           #7                  // String foo\n+        26: invokevirtual #25                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         29: pop\n-        30: ldc           #2                  // String foo\n+        30: ldc           #7                  // String foo\n         32: iconst_2\n-        33: invokestatic  #24                 // Method dev/langchain4j/internal/Utils.repeat:(Ljava/lang/String;I)Ljava/lang/String;\n-        36: invokestatic  #6                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        39: ldc           #25                 // String foofoo\n-        41: invokevirtual #7                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        33: invokestatic  #84                 // Method dev/langchain4j/internal/Utils.repeat:(Ljava/lang/String;I)Ljava/lang/String;\n+        36: invokestatic  #19                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        39: ldc           #88                 // String foofoo\n+        41: invokevirtual #25                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         44: pop\n-        45: ldc           #2                  // String foo\n+        45: ldc           #7                  // String foo\n         47: iconst_3\n-        48: invokestatic  #24                 // Method dev/langchain4j/internal/Utils.repeat:(Ljava/lang/String;I)Ljava/lang/String;\n-        51: invokestatic  #6                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        54: ldc           #26                 // String foofoofoo\n-        56: invokevirtual #7                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        48: invokestatic  #84                 // Method dev/langchain4j/internal/Utils.repeat:(Ljava/lang/String;I)Ljava/lang/String;\n+        51: invokestatic  #19                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        54: ldc           #90                 // String foofoofoo\n+        56: invokevirtual #25                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         59: pop\n         60: return\n       LineNumberTable:\n         line 77: 0\n         line 78: 15\n         line 79: 30\n         line 80: 45\n         line 81: 60\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      61     0  this   Ldev/langchain4j/internal/UtilsTest;\n     RuntimeVisibleAnnotations:\n-      0: #107()\n+      0: #321()\n         org.junit.jupiter.api.Test\n \n   void randomUUIDWorks();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=2, locals=3, args_size=1\n-         0: invokestatic  #27                 // Method dev/langchain4j/internal/Utils.randomUUID:()Ljava/lang/String;\n+         0: invokestatic  #92                 // Method dev/langchain4j/internal/Utils.randomUUID:()Ljava/lang/String;\n          3: astore_1\n-         4: invokestatic  #27                 // Method dev/langchain4j/internal/Utils.randomUUID:()Ljava/lang/String;\n+         4: invokestatic  #92                 // Method dev/langchain4j/internal/Utils.randomUUID:()Ljava/lang/String;\n          7: astore_2\n          8: aload_1\n-         9: invokestatic  #6                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        12: invokevirtual #28                 // Method org/assertj/core/api/AbstractStringAssert.isNotNull:()Lorg/assertj/core/api/AbstractAssert;\n-        15: checkcast     #29                 // class org/assertj/core/api/AbstractStringAssert\n-        18: invokevirtual #30                 // Method org/assertj/core/api/AbstractStringAssert.isNotEmpty:()Lorg/assertj/core/api/AbstractCharSequenceAssert;\n+         9: invokestatic  #19                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        12: invokevirtual #96                 // Method org/assertj/core/api/AbstractStringAssert.isNotNull:()Lorg/assertj/core/api/AbstractAssert;\n+        15: checkcast     #26                 // class org/assertj/core/api/AbstractStringAssert\n+        18: invokevirtual #100                // Method org/assertj/core/api/AbstractStringAssert.isNotEmpty:()Lorg/assertj/core/api/AbstractCharSequenceAssert;\n         21: pop\n         22: aload_2\n-        23: invokestatic  #6                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        26: invokevirtual #28                 // Method org/assertj/core/api/AbstractStringAssert.isNotNull:()Lorg/assertj/core/api/AbstractAssert;\n-        29: checkcast     #29                 // class org/assertj/core/api/AbstractStringAssert\n-        32: invokevirtual #30                 // Method org/assertj/core/api/AbstractStringAssert.isNotEmpty:()Lorg/assertj/core/api/AbstractCharSequenceAssert;\n+        23: invokestatic  #19                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        26: invokevirtual #96                 // Method org/assertj/core/api/AbstractStringAssert.isNotNull:()Lorg/assertj/core/api/AbstractAssert;\n+        29: checkcast     #26                 // class org/assertj/core/api/AbstractStringAssert\n+        32: invokevirtual #100                // Method org/assertj/core/api/AbstractStringAssert.isNotEmpty:()Lorg/assertj/core/api/AbstractCharSequenceAssert;\n         35: pop\n         36: aload_1\n-        37: invokestatic  #6                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        37: invokestatic  #19                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         40: aload_2\n-        41: invokevirtual #31                 // Method org/assertj/core/api/AbstractStringAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        41: invokevirtual #104                // Method org/assertj/core/api/AbstractStringAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         44: pop\n         45: aload_1\n-        46: invokestatic  #32                 // Method java/util/UUID.fromString:(Ljava/lang/String;)Ljava/util/UUID;\n-        49: invokestatic  #33                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-        52: ldc           #34                 // class java/util/UUID\n-        54: invokevirtual #35                 // Method org/assertj/core/api/AbstractComparableAssert.isInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+        46: invokestatic  #108                // Method java/util/UUID.fromString:(Ljava/lang/String;)Ljava/util/UUID;\n+        49: invokestatic  #114                // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+        52: ldc           #109                // class java/util/UUID\n+        54: invokevirtual #117                // Method org/assertj/core/api/AbstractComparableAssert.isInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n         57: pop\n         58: aload_2\n-        59: invokestatic  #32                 // Method java/util/UUID.fromString:(Ljava/lang/String;)Ljava/util/UUID;\n-        62: invokestatic  #33                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-        65: ldc           #34                 // class java/util/UUID\n-        67: invokevirtual #35                 // Method org/assertj/core/api/AbstractComparableAssert.isInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+        59: invokestatic  #108                // Method java/util/UUID.fromString:(Ljava/lang/String;)Ljava/util/UUID;\n+        62: invokestatic  #114                // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+        65: ldc           #109                // class java/util/UUID\n+        67: invokevirtual #117                // Method org/assertj/core/api/AbstractComparableAssert.isInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n         70: pop\n         71: return\n       LineNumberTable:\n         line 85: 0\n         line 86: 4\n         line 88: 8\n         line 89: 22\n@@ -849,66 +846,66 @@\n         line 99: 71\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      72     0  this   Ldev/langchain4j/internal/UtilsTest;\n             4      68     1 uuid1   Ljava/lang/String;\n             8      64     2 uuid2   Ljava/lang/String;\n     RuntimeVisibleAnnotations:\n-      0: #107()\n+      0: #321()\n         org.junit.jupiter.api.Test\n \n   void generateUUIDFromTextWorks();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=2, locals=5, args_size=1\n-         0: ldc           #36                 // String Hello\n+         0: ldc           #123                // String Hello\n          2: astore_1\n-         3: ldc           #37                 // String World\n+         3: ldc           #125                // String World\n          5: astore_2\n          6: aload_1\n-         7: invokestatic  #38                 // Method dev/langchain4j/internal/Utils.generateUUIDFrom:(Ljava/lang/String;)Ljava/lang/String;\n+         7: invokestatic  #127                // Method dev/langchain4j/internal/Utils.generateUUIDFrom:(Ljava/lang/String;)Ljava/lang/String;\n         10: astore_3\n         11: aload_2\n-        12: invokestatic  #38                 // Method dev/langchain4j/internal/Utils.generateUUIDFrom:(Ljava/lang/String;)Ljava/lang/String;\n+        12: invokestatic  #127                // Method dev/langchain4j/internal/Utils.generateUUIDFrom:(Ljava/lang/String;)Ljava/lang/String;\n         15: astore        4\n         17: aload_3\n-        18: invokestatic  #6                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        21: invokevirtual #28                 // Method org/assertj/core/api/AbstractStringAssert.isNotNull:()Lorg/assertj/core/api/AbstractAssert;\n-        24: checkcast     #29                 // class org/assertj/core/api/AbstractStringAssert\n-        27: invokevirtual #30                 // Method org/assertj/core/api/AbstractStringAssert.isNotEmpty:()Lorg/assertj/core/api/AbstractCharSequenceAssert;\n+        18: invokestatic  #19                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        21: invokevirtual #96                 // Method org/assertj/core/api/AbstractStringAssert.isNotNull:()Lorg/assertj/core/api/AbstractAssert;\n+        24: checkcast     #26                 // class org/assertj/core/api/AbstractStringAssert\n+        27: invokevirtual #100                // Method org/assertj/core/api/AbstractStringAssert.isNotEmpty:()Lorg/assertj/core/api/AbstractCharSequenceAssert;\n         30: pop\n         31: aload         4\n-        33: invokestatic  #6                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        36: invokevirtual #28                 // Method org/assertj/core/api/AbstractStringAssert.isNotNull:()Lorg/assertj/core/api/AbstractAssert;\n-        39: checkcast     #29                 // class org/assertj/core/api/AbstractStringAssert\n-        42: invokevirtual #30                 // Method org/assertj/core/api/AbstractStringAssert.isNotEmpty:()Lorg/assertj/core/api/AbstractCharSequenceAssert;\n+        33: invokestatic  #19                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        36: invokevirtual #96                 // Method org/assertj/core/api/AbstractStringAssert.isNotNull:()Lorg/assertj/core/api/AbstractAssert;\n+        39: checkcast     #26                 // class org/assertj/core/api/AbstractStringAssert\n+        42: invokevirtual #100                // Method org/assertj/core/api/AbstractStringAssert.isNotEmpty:()Lorg/assertj/core/api/AbstractCharSequenceAssert;\n         45: pop\n         46: aload_3\n-        47: invokestatic  #6                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        47: invokestatic  #19                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         50: aload         4\n-        52: invokevirtual #31                 // Method org/assertj/core/api/AbstractStringAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        52: invokevirtual #104                // Method org/assertj/core/api/AbstractStringAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         55: pop\n         56: aload_3\n-        57: invokestatic  #32                 // Method java/util/UUID.fromString:(Ljava/lang/String;)Ljava/util/UUID;\n-        60: invokestatic  #33                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-        63: ldc           #34                 // class java/util/UUID\n-        65: invokevirtual #35                 // Method org/assertj/core/api/AbstractComparableAssert.isInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+        57: invokestatic  #108                // Method java/util/UUID.fromString:(Ljava/lang/String;)Ljava/util/UUID;\n+        60: invokestatic  #114                // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+        63: ldc           #109                // class java/util/UUID\n+        65: invokevirtual #117                // Method org/assertj/core/api/AbstractComparableAssert.isInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n         68: pop\n         69: aload         4\n-        71: invokestatic  #32                 // Method java/util/UUID.fromString:(Ljava/lang/String;)Ljava/util/UUID;\n-        74: invokestatic  #33                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-        77: ldc           #34                 // class java/util/UUID\n-        79: invokevirtual #35                 // Method org/assertj/core/api/AbstractComparableAssert.isInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+        71: invokestatic  #108                // Method java/util/UUID.fromString:(Ljava/lang/String;)Ljava/util/UUID;\n+        74: invokestatic  #114                // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+        77: ldc           #109                // class java/util/UUID\n+        79: invokevirtual #117                // Method org/assertj/core/api/AbstractComparableAssert.isInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n         82: pop\n         83: aload_1\n-        84: invokestatic  #38                 // Method dev/langchain4j/internal/Utils.generateUUIDFrom:(Ljava/lang/String;)Ljava/lang/String;\n-        87: invokestatic  #6                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        84: invokestatic  #127                // Method dev/langchain4j/internal/Utils.generateUUIDFrom:(Ljava/lang/String;)Ljava/lang/String;\n+        87: invokestatic  #19                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         90: aload_3\n-        91: invokevirtual #7                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        91: invokevirtual #25                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         94: pop\n         95: return\n       LineNumberTable:\n         line 103: 0\n         line 104: 3\n         line 106: 6\n         line 107: 11\n@@ -925,271 +922,271 @@\n         Start  Length  Slot  Name   Signature\n             0      96     0  this   Ldev/langchain4j/internal/UtilsTest;\n             3      93     1 input1   Ljava/lang/String;\n             6      90     2 input2   Ljava/lang/String;\n            11      85     3 uuidFromInput1   Ljava/lang/String;\n            17      79     4 uuidFromInput2   Ljava/lang/String;\n     RuntimeVisibleAnnotations:\n-      0: #107()\n+      0: #321()\n         org.junit.jupiter.api.Test\n \n   void generateUUIDFromEmptyInputWorks();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=2, locals=2, args_size=1\n-         0: ldc           #14                 // String\n-         2: invokestatic  #38                 // Method dev/langchain4j/internal/Utils.generateUUIDFrom:(Ljava/lang/String;)Ljava/lang/String;\n+         0: ldc           #51                 // String\n+         2: invokestatic  #127                // Method dev/langchain4j/internal/Utils.generateUUIDFrom:(Ljava/lang/String;)Ljava/lang/String;\n          5: astore_1\n          6: aload_1\n-         7: invokestatic  #6                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        10: invokevirtual #28                 // Method org/assertj/core/api/AbstractStringAssert.isNotNull:()Lorg/assertj/core/api/AbstractAssert;\n-        13: checkcast     #29                 // class org/assertj/core/api/AbstractStringAssert\n-        16: invokevirtual #30                 // Method org/assertj/core/api/AbstractStringAssert.isNotEmpty:()Lorg/assertj/core/api/AbstractCharSequenceAssert;\n+         7: invokestatic  #19                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        10: invokevirtual #96                 // Method org/assertj/core/api/AbstractStringAssert.isNotNull:()Lorg/assertj/core/api/AbstractAssert;\n+        13: checkcast     #26                 // class org/assertj/core/api/AbstractStringAssert\n+        16: invokevirtual #100                // Method org/assertj/core/api/AbstractStringAssert.isNotEmpty:()Lorg/assertj/core/api/AbstractCharSequenceAssert;\n         19: pop\n         20: aload_1\n-        21: invokestatic  #32                 // Method java/util/UUID.fromString:(Ljava/lang/String;)Ljava/util/UUID;\n-        24: invokestatic  #33                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-        27: ldc           #34                 // class java/util/UUID\n-        29: invokevirtual #35                 // Method org/assertj/core/api/AbstractComparableAssert.isInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+        21: invokestatic  #108                // Method java/util/UUID.fromString:(Ljava/lang/String;)Ljava/util/UUID;\n+        24: invokestatic  #114                // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+        27: ldc           #109                // class java/util/UUID\n+        29: invokevirtual #117                // Method org/assertj/core/api/AbstractComparableAssert.isInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n         32: pop\n         33: return\n       LineNumberTable:\n         line 127: 0\n         line 129: 6\n         line 132: 20\n         line 133: 29\n         line 134: 33\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      34     0  this   Ldev/langchain4j/internal/UtilsTest;\n             6      28     1 uuidFromEmptyInput   Ljava/lang/String;\n     RuntimeVisibleAnnotations:\n-      0: #107()\n+      0: #321()\n         org.junit.jupiter.api.Test\n \n   void generateUUIDFromNullInputWorks();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=2, locals=1, args_size=1\n-         0: ldc           #39                 // class java/lang/NullPointerException\n-         2: invokestatic  #40                 // Method org/assertj/core/api/Assertions.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-         5: invokedynamic #41,  0             // InvokeDynamic #2:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-        10: invokevirtual #42                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+         0: ldc           #131                // class java/lang/NullPointerException\n+         2: invokestatic  #133                // Method org/assertj/core/api/Assertions.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+         5: invokedynamic #137,  0            // InvokeDynamic #2:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+        10: invokevirtual #141                // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n         13: pop\n         14: return\n       LineNumberTable:\n         line 139: 0\n         line 140: 14\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      15     0  this   Ldev/langchain4j/internal/UtilsTest;\n     RuntimeVisibleAnnotations:\n-      0: #107()\n+      0: #321()\n         org.junit.jupiter.api.Test\n \n   void test_quoted(java.lang.String, java.lang.String);\n     descriptor: (Ljava/lang/String;Ljava/lang/String;)V\n     flags: (0x0000)\n     Code:\n       stack=2, locals=3, args_size=3\n          0: aload_1\n-         1: invokestatic  #43                 // Method dev/langchain4j/internal/Utils.quoted:(Ljava/lang/Object;)Ljava/lang/String;\n-         4: invokestatic  #6                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+         1: invokestatic  #147                // Method dev/langchain4j/internal/Utils.quoted:(Ljava/lang/Object;)Ljava/lang/String;\n+         4: invokestatic  #19                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n          7: aload_2\n-         8: invokevirtual #7                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+         8: invokevirtual #25                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         11: pop\n         12: return\n       LineNumberTable:\n         line 145: 0\n         line 146: 12\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      13     0  this   Ldev/langchain4j/internal/UtilsTest;\n             0      13     1 string   Ljava/lang/String;\n             0      13     2 expected   Ljava/lang/String;\n     RuntimeVisibleAnnotations:\n-      0: #129()\n+      0: #343()\n         org.junit.jupiter.params.provider.MethodSource\n-      1: #130()\n+      1: #344()\n         org.junit.jupiter.params.ParameterizedTest\n \n   static java.util.stream.Stream<org.junit.jupiter.params.provider.Arguments> test_quoted();\n     descriptor: ()Ljava/util/stream/Stream;\n     flags: (0x0008) ACC_STATIC\n     Code:\n       stack=7, locals=0, args_size=0\n          0: iconst_4\n-         1: anewarray     #44                 // class org/junit/jupiter/params/provider/Arguments\n+         1: anewarray     #151                // class org/junit/jupiter/params/provider/Arguments\n          4: dup\n          5: iconst_0\n          6: iconst_2\n-         7: anewarray     #45                 // class java/lang/Object\n+         7: anewarray     #2                  // class java/lang/Object\n         10: dup\n         11: iconst_0\n         12: aconst_null\n         13: aastore\n         14: dup\n         15: iconst_1\n-        16: ldc           #46                 // String null\n+        16: ldc           #153                // String null\n         18: aastore\n-        19: invokestatic  #47                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+        19: invokestatic  #155                // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n         22: aastore\n         23: dup\n         24: iconst_1\n         25: iconst_2\n-        26: anewarray     #45                 // class java/lang/Object\n+        26: anewarray     #2                  // class java/lang/Object\n         29: dup\n         30: iconst_0\n-        31: ldc           #14                 // String\n+        31: ldc           #51                 // String\n         33: aastore\n         34: dup\n         35: iconst_1\n-        36: ldc           #48                 // String \\\"\\\"\n+        36: ldc           #159                // String \\\"\\\"\n         38: aastore\n-        39: invokestatic  #47                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+        39: invokestatic  #155                // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n         42: aastore\n         43: dup\n         44: iconst_2\n         45: iconst_2\n-        46: anewarray     #45                 // class java/lang/Object\n+        46: anewarray     #2                  // class java/lang/Object\n         49: dup\n         50: iconst_0\n-        51: ldc           #15                 // String\n+        51: ldc           #53                 // String\n         53: aastore\n         54: dup\n         55: iconst_1\n-        56: ldc           #49                 // String \\\" \\\"\n+        56: ldc           #161                // String \\\" \\\"\n         58: aastore\n-        59: invokestatic  #47                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+        59: invokestatic  #155                // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n         62: aastore\n         63: dup\n         64: iconst_3\n         65: iconst_2\n-        66: anewarray     #45                 // class java/lang/Object\n+        66: anewarray     #2                  // class java/lang/Object\n         69: dup\n         70: iconst_0\n-        71: ldc           #50                 // String hello\n+        71: ldc           #163                // String hello\n         73: aastore\n         74: dup\n         75: iconst_1\n-        76: ldc           #51                 // String \\\"hello\\\"\n+        76: ldc           #165                // String \\\"hello\\\"\n         78: aastore\n-        79: invokestatic  #47                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+        79: invokestatic  #155                // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n         82: aastore\n-        83: invokestatic  #52                 // InterfaceMethod java/util/stream/Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;\n+        83: invokestatic  #167                // InterfaceMethod java/util/stream/Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;\n         86: areturn\n       LineNumberTable:\n         line 149: 0\n-    Signature: #133                         // ()Ljava/util/stream/Stream<Lorg/junit/jupiter/params/provider/Arguments;>;\n+    Signature: #347                         // ()Ljava/util/stream/Stream<Lorg/junit/jupiter/params/provider/Arguments;>;\n \n   public void test_firstChars();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=1, args_size=1\n          0: aconst_null\n          1: iconst_3\n-         2: invokestatic  #53                 // Method dev/langchain4j/internal/Utils.firstChars:(Ljava/lang/String;I)Ljava/lang/String;\n-         5: invokestatic  #6                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-         8: invokevirtual #54                 // Method org/assertj/core/api/AbstractStringAssert.isNull:()V\n-        11: ldc           #14                 // String\n+         2: invokestatic  #172                // Method dev/langchain4j/internal/Utils.firstChars:(Ljava/lang/String;I)Ljava/lang/String;\n+         5: invokestatic  #19                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+         8: invokevirtual #175                // Method org/assertj/core/api/AbstractStringAssert.isNull:()V\n+        11: ldc           #51                 // String\n         13: iconst_3\n-        14: invokestatic  #53                 // Method dev/langchain4j/internal/Utils.firstChars:(Ljava/lang/String;I)Ljava/lang/String;\n-        17: invokestatic  #6                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        20: invokevirtual #55                 // Method org/assertj/core/api/AbstractStringAssert.isEmpty:()V\n-        23: ldc           #2                  // String foo\n+        14: invokestatic  #172                // Method dev/langchain4j/internal/Utils.firstChars:(Ljava/lang/String;I)Ljava/lang/String;\n+        17: invokestatic  #19                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        20: invokevirtual #178                // Method org/assertj/core/api/AbstractStringAssert.isEmpty:()V\n+        23: ldc           #7                  // String foo\n         25: iconst_3\n-        26: invokestatic  #53                 // Method dev/langchain4j/internal/Utils.firstChars:(Ljava/lang/String;I)Ljava/lang/String;\n-        29: invokestatic  #6                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        32: ldc           #2                  // String foo\n-        34: invokevirtual #7                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        26: invokestatic  #172                // Method dev/langchain4j/internal/Utils.firstChars:(Ljava/lang/String;I)Ljava/lang/String;\n+        29: invokestatic  #19                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        32: ldc           #7                  // String foo\n+        34: invokevirtual #25                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         37: pop\n-        38: ldc           #56                 // String foobar\n+        38: ldc           #181                // String foobar\n         40: iconst_3\n-        41: invokestatic  #53                 // Method dev/langchain4j/internal/Utils.firstChars:(Ljava/lang/String;I)Ljava/lang/String;\n-        44: invokestatic  #6                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        47: ldc           #2                  // String foo\n-        49: invokevirtual #7                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        41: invokestatic  #172                // Method dev/langchain4j/internal/Utils.firstChars:(Ljava/lang/String;I)Ljava/lang/String;\n+        44: invokestatic  #19                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        47: ldc           #7                  // String foo\n+        49: invokevirtual #25                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         52: pop\n         53: return\n       LineNumberTable:\n         line 154: 0\n         line 155: 11\n         line 156: 23\n         line 157: 38\n         line 158: 53\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      54     0  this   Ldev/langchain4j/internal/UtilsTest;\n     RuntimeVisibleAnnotations:\n-      0: #107()\n+      0: #321()\n         org.junit.jupiter.api.Test\n \n   public void test_readBytes() throws java.io.IOException;\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=4, args_size=1\n-         0: new           #57                 // class java/net/InetSocketAddress\n+         0: new           #183                // class java/net/InetSocketAddress\n          3: dup\n          4: iconst_0\n-         5: invokespecial #58                 // Method java/net/InetSocketAddress.\"<init>\":(I)V\n+         5: invokespecial #185                // Method java/net/InetSocketAddress.\"<init>\":(I)V\n          8: iconst_0\n-         9: invokestatic  #59                 // Method com/sun/net/httpserver/HttpServer.create:(Ljava/net/InetSocketAddress;I)Lcom/sun/net/httpserver/HttpServer;\n+         9: invokestatic  #188                // Method com/sun/net/httpserver/HttpServer.create:(Ljava/net/InetSocketAddress;I)Lcom/sun/net/httpserver/HttpServer;\n         12: astore_1\n         13: aload_1\n-        14: invokevirtual #60                 // Method com/sun/net/httpserver/HttpServer.getAddress:()Ljava/net/InetSocketAddress;\n-        17: invokevirtual #61                 // Method java/net/InetSocketAddress.getPort:()I\n+        14: invokevirtual #194                // Method com/sun/net/httpserver/HttpServer.getAddress:()Ljava/net/InetSocketAddress;\n+        17: invokevirtual #198                // Method java/net/InetSocketAddress.getPort:()I\n         20: istore_2\n         21: aload_1\n-        22: ldc           #62                 // String /ok_endpoint\n-        24: invokedynamic #63,  0             // InvokeDynamic #3:handle:()Lcom/sun/net/httpserver/HttpHandler;\n-        29: invokevirtual #64                 // Method com/sun/net/httpserver/HttpServer.createContext:(Ljava/lang/String;Lcom/sun/net/httpserver/HttpHandler;)Lcom/sun/net/httpserver/HttpContext;\n+        22: ldc           #202                // String /ok_endpoint\n+        24: invokedynamic #204,  0            // InvokeDynamic #3:handle:()Lcom/sun/net/httpserver/HttpHandler;\n+        29: invokevirtual #208                // Method com/sun/net/httpserver/HttpServer.createContext:(Ljava/lang/String;Lcom/sun/net/httpserver/HttpHandler;)Lcom/sun/net/httpserver/HttpContext;\n         32: pop\n         33: aload_1\n-        34: ldc           #65                 // String /error_endpoint\n-        36: invokedynamic #66,  0             // InvokeDynamic #4:handle:()Lcom/sun/net/httpserver/HttpHandler;\n-        41: invokevirtual #64                 // Method com/sun/net/httpserver/HttpServer.createContext:(Ljava/lang/String;Lcom/sun/net/httpserver/HttpHandler;)Lcom/sun/net/httpserver/HttpContext;\n+        34: ldc           #212                // String /error_endpoint\n+        36: invokedynamic #214,  0            // InvokeDynamic #4:handle:()Lcom/sun/net/httpserver/HttpHandler;\n+        41: invokevirtual #208                // Method com/sun/net/httpserver/HttpServer.createContext:(Ljava/lang/String;Lcom/sun/net/httpserver/HttpHandler;)Lcom/sun/net/httpserver/HttpContext;\n         44: pop\n         45: aload_1\n-        46: invokevirtual #67                 // Method com/sun/net/httpserver/HttpServer.start:()V\n-        49: new           #68                 // class java/lang/StringBuilder\n+        46: invokevirtual #215                // Method com/sun/net/httpserver/HttpServer.start:()V\n+        49: new           #218                // class java/lang/StringBuilder\n         52: dup\n-        53: invokespecial #69                 // Method java/lang/StringBuilder.\"<init>\":()V\n-        56: ldc           #70                 // String http://localhost:\n-        58: invokevirtual #71                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        53: invokespecial #220                // Method java/lang/StringBuilder.\"<init>\":()V\n+        56: ldc           #221                // String http://localhost:\n+        58: invokevirtual #223                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         61: iload_2\n-        62: invokevirtual #72                 // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;\n-        65: ldc           #62                 // String /ok_endpoint\n-        67: invokevirtual #71                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-        70: invokevirtual #73                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n-        73: invokestatic  #74                 // Method dev/langchain4j/internal/Utils.readBytes:(Ljava/lang/String;)[B\n-        76: invokestatic  #75                 // Method org/assertj/core/api/Assertions.assertThat:([B)Lorg/assertj/core/api/AbstractByteArrayAssert;\n-        79: ldc           #50                 // String hello\n-        81: invokevirtual #76                 // Method java/lang/String.getBytes:()[B\n-        84: invokevirtual #77                 // Method org/assertj/core/api/AbstractByteArrayAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        62: invokevirtual #227                // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;\n+        65: ldc           #202                // String /ok_endpoint\n+        67: invokevirtual #223                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        70: invokevirtual #230                // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n+        73: invokestatic  #233                // Method dev/langchain4j/internal/Utils.readBytes:(Ljava/lang/String;)[B\n+        76: invokestatic  #237                // Method org/assertj/core/api/Assertions.assertThat:([B)Lorg/assertj/core/api/AbstractByteArrayAssert;\n+        79: ldc           #163                // String hello\n+        81: invokevirtual #240                // Method java/lang/String.getBytes:()[B\n+        84: invokevirtual #244                // Method org/assertj/core/api/AbstractByteArrayAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         87: pop\n-        88: ldc           #78                 // class java/lang/RuntimeException\n-        90: invokestatic  #40                 // Method org/assertj/core/api/Assertions.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+        88: ldc           #248                // class java/lang/RuntimeException\n+        90: invokestatic  #133                // Method org/assertj/core/api/Assertions.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n         93: iload_2\n-        94: invokedynamic #79,  0             // InvokeDynamic #5:call:(I)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-        99: invokevirtual #42                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-       102: ldc           #80                 // String Error while reading: 500\n-       104: invokevirtual #81                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        94: invokedynamic #250,  0            // InvokeDynamic #5:call:(I)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+        99: invokevirtual #141                // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+       102: ldc           #253                // String Error while reading: 500\n+       104: invokevirtual #255                // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n        107: pop\n        108: aload_1\n        109: iconst_0\n-       110: invokevirtual #82                 // Method com/sun/net/httpserver/HttpServer.stop:(I)V\n+       110: invokevirtual #261                // Method com/sun/net/httpserver/HttpServer.stop:(I)V\n        113: goto          124\n        116: astore_3\n        117: aload_1\n        118: iconst_0\n-       119: invokevirtual #82                 // Method com/sun/net/httpserver/HttpServer.stop:(I)V\n+       119: invokevirtual #261                // Method com/sun/net/httpserver/HttpServer.stop:(I)V\n        122: aload_3\n        123: athrow\n        124: return\n       Exception table:\n          from    to  target type\n             13   108   116   any\n       LineNumberTable:\n@@ -1218,97 +1215,97 @@\n           offset_delta = 116\n           locals = [ class dev/langchain4j/internal/UtilsTest, class com/sun/net/httpserver/HttpServer ]\n           stack = [ class java/lang/Throwable ]\n         frame_type = 7 /* same */\n     Exceptions:\n       throws java.io.IOException\n     RuntimeVisibleAnnotations:\n-      0: #107()\n+      0: #321()\n         org.junit.jupiter.api.Test\n \n   void test_copyIfNotNull();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=5, locals=1, args_size=1\n          0: aconst_null\n-         1: invokestatic  #83                 // Method dev/langchain4j/internal/Utils.copyIfNotNull:(Ljava/util/List;)Ljava/util/List;\n-         4: invokestatic  #84                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-         7: invokevirtual #85                 // Method org/assertj/core/api/ListAssert.isNull:()V\n-        10: invokestatic  #20                 // Method java/util/Collections.emptyList:()Ljava/util/List;\n-        13: invokestatic  #83                 // Method dev/langchain4j/internal/Utils.copyIfNotNull:(Ljava/util/List;)Ljava/util/List;\n-        16: invokestatic  #84                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-        19: invokevirtual #86                 // Method org/assertj/core/api/ListAssert.isEmpty:()V\n-        22: ldc           #87                 // String one\n-        24: invokestatic  #22                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-        27: invokestatic  #83                 // Method dev/langchain4j/internal/Utils.copyIfNotNull:(Ljava/util/List;)Ljava/util/List;\n-        30: invokestatic  #84                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-        33: iconst_1\n-        34: anewarray     #5                  // class java/lang/String\n-        37: dup\n-        38: iconst_0\n-        39: ldc           #87                 // String one\n-        41: aastore\n-        42: invokevirtual #88                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-        45: pop\n-        46: iconst_2\n-        47: anewarray     #5                  // class java/lang/String\n-        50: dup\n-        51: iconst_0\n-        52: ldc           #87                 // String one\n-        54: aastore\n-        55: dup\n-        56: iconst_1\n-        57: ldc           #89                 // String two\n-        59: aastore\n-        60: invokestatic  #90                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-        63: invokestatic  #83                 // Method dev/langchain4j/internal/Utils.copyIfNotNull:(Ljava/util/List;)Ljava/util/List;\n-        66: invokestatic  #84                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-        69: iconst_2\n-        70: anewarray     #5                  // class java/lang/String\n-        73: dup\n-        74: iconst_0\n-        75: ldc           #87                 // String one\n-        77: aastore\n-        78: dup\n-        79: iconst_1\n-        80: ldc           #89                 // String two\n+         1: invokestatic  #264                // Method dev/langchain4j/internal/Utils.copyIfNotNull:(Ljava/util/List;)Ljava/util/List;\n+         4: invokestatic  #268                // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+         7: invokevirtual #271                // Method org/assertj/core/api/ListAssert.isNull:()V\n+        10: invokestatic  #69                 // Method java/util/Collections.emptyList:()Ljava/util/List;\n+        13: invokestatic  #264                // Method dev/langchain4j/internal/Utils.copyIfNotNull:(Ljava/util/List;)Ljava/util/List;\n+        16: invokestatic  #268                // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+        19: invokevirtual #274                // Method org/assertj/core/api/ListAssert.isEmpty:()V\n+        22: ldc_w         #275                // String one\n+        25: invokestatic  #77                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+        28: invokestatic  #264                // Method dev/langchain4j/internal/Utils.copyIfNotNull:(Ljava/util/List;)Ljava/util/List;\n+        31: invokestatic  #268                // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+        34: iconst_1\n+        35: anewarray     #17                 // class java/lang/String\n+        38: dup\n+        39: iconst_0\n+        40: ldc_w         #275                // String one\n+        43: aastore\n+        44: invokevirtual #277                // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+        47: pop\n+        48: iconst_2\n+        49: anewarray     #17                 // class java/lang/String\n+        52: dup\n+        53: iconst_0\n+        54: ldc_w         #275                // String one\n+        57: aastore\n+        58: dup\n+        59: iconst_1\n+        60: ldc_w         #281                // String two\n+        63: aastore\n+        64: invokestatic  #283                // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        67: invokestatic  #264                // Method dev/langchain4j/internal/Utils.copyIfNotNull:(Ljava/util/List;)Ljava/util/List;\n+        70: invokestatic  #268                // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+        73: iconst_2\n+        74: anewarray     #17                 // class java/lang/String\n+        77: dup\n+        78: iconst_0\n+        79: ldc_w         #275                // String one\n         82: aastore\n-        83: invokevirtual #88                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-        86: pop\n-        87: return\n+        83: dup\n+        84: iconst_1\n+        85: ldc_w         #281                // String two\n+        88: aastore\n+        89: invokevirtual #277                // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+        92: pop\n+        93: return\n       LineNumberTable:\n         line 193: 0\n         line 194: 10\n         line 195: 22\n-        line 196: 46\n-        line 197: 87\n+        line 196: 48\n+        line 197: 93\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n-            0      88     0  this   Ldev/langchain4j/internal/UtilsTest;\n+            0      94     0  this   Ldev/langchain4j/internal/UtilsTest;\n     RuntimeVisibleAnnotations:\n-      0: #107()\n+      0: #321()\n         org.junit.jupiter.api.Test\n \n   private static void lambda$test_readBytes$5(int) throws java.lang.Throwable;\n     descriptor: (I)V\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=2, locals=1, args_size=1\n-         0: new           #68                 // class java/lang/StringBuilder\n+         0: new           #218                // class java/lang/StringBuilder\n          3: dup\n-         4: invokespecial #69                 // Method java/lang/StringBuilder.\"<init>\":()V\n-         7: ldc           #70                 // String http://localhost:\n-         9: invokevirtual #71                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+         4: invokespecial #220                // Method java/lang/StringBuilder.\"<init>\":()V\n+         7: ldc           #221                // String http://localhost:\n+         9: invokevirtual #223                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         12: iload_0\n-        13: invokevirtual #72                 // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;\n-        16: ldc           #65                 // String /error_endpoint\n-        18: invokevirtual #71                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-        21: invokevirtual #73                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n-        24: invokestatic  #74                 // Method dev/langchain4j/internal/Utils.readBytes:(Ljava/lang/String;)[B\n+        13: invokevirtual #227                // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;\n+        16: ldc           #212                // String /error_endpoint\n+        18: invokevirtual #223                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        21: invokevirtual #230                // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n+        24: invokestatic  #233                // Method dev/langchain4j/internal/Utils.readBytes:(Ljava/lang/String;)[B\n         27: pop\n         28: return\n       LineNumberTable:\n         line 183: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      29     0  port   I\n@@ -1316,63 +1313,63 @@\n       throws java.lang.Throwable\n \n   private static void lambda$test_readBytes$4(com.sun.net.httpserver.HttpExchange) throws java.io.IOException;\n     descriptor: (Lcom/sun/net/httpserver/HttpExchange;)V\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=4, locals=2, args_size=1\n-         0: ldc           #91                 // String nope\n-         2: invokevirtual #76                 // Method java/lang/String.getBytes:()[B\n-         5: astore_1\n-         6: aload_0\n-         7: sipush        500\n-        10: aload_1\n-        11: arraylength\n-        12: i2l\n-        13: invokevirtual #93                 // Method com/sun/net/httpserver/HttpExchange.sendResponseHeaders:(IJ)V\n-        16: aload_0\n-        17: invokevirtual #94                 // Method com/sun/net/httpserver/HttpExchange.getResponseBody:()Ljava/io/OutputStream;\n-        20: aload_1\n-        21: invokevirtual #95                 // Method java/io/OutputStream.write:([B)V\n-        24: aload_0\n-        25: invokevirtual #96                 // Method com/sun/net/httpserver/HttpExchange.close:()V\n-        28: return\n+         0: ldc_w         #289                // String nope\n+         3: invokevirtual #240                // Method java/lang/String.getBytes:()[B\n+         6: astore_1\n+         7: aload_0\n+         8: sipush        500\n+        11: aload_1\n+        12: arraylength\n+        13: i2l\n+        14: invokevirtual #293                // Method com/sun/net/httpserver/HttpExchange.sendResponseHeaders:(IJ)V\n+        17: aload_0\n+        18: invokevirtual #299                // Method com/sun/net/httpserver/HttpExchange.getResponseBody:()Ljava/io/OutputStream;\n+        21: aload_1\n+        22: invokevirtual #303                // Method java/io/OutputStream.write:([B)V\n+        25: aload_0\n+        26: invokevirtual #309                // Method com/sun/net/httpserver/HttpExchange.close:()V\n+        29: return\n       LineNumberTable:\n         line 172: 0\n-        line 173: 6\n-        line 174: 16\n-        line 175: 24\n-        line 176: 28\n+        line 173: 7\n+        line 174: 17\n+        line 175: 25\n+        line 176: 29\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n-            0      29     0 exchange   Lcom/sun/net/httpserver/HttpExchange;\n-            6      23     1 response   [B\n+            0      30     0 exchange   Lcom/sun/net/httpserver/HttpExchange;\n+            7      23     1 response   [B\n     Exceptions:\n       throws java.io.IOException\n \n   private static void lambda$test_readBytes$3(com.sun.net.httpserver.HttpExchange) throws java.io.IOException;\n     descriptor: (Lcom/sun/net/httpserver/HttpExchange;)V\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=4, locals=2, args_size=1\n-         0: ldc           #50                 // String hello\n-         2: invokevirtual #76                 // Method java/lang/String.getBytes:()[B\n+         0: ldc           #163                // String hello\n+         2: invokevirtual #240                // Method java/lang/String.getBytes:()[B\n          5: astore_1\n          6: aload_0\n          7: sipush        200\n         10: aload_1\n         11: arraylength\n         12: i2l\n-        13: invokevirtual #93                 // Method com/sun/net/httpserver/HttpExchange.sendResponseHeaders:(IJ)V\n+        13: invokevirtual #293                // Method com/sun/net/httpserver/HttpExchange.sendResponseHeaders:(IJ)V\n         16: aload_0\n-        17: invokevirtual #94                 // Method com/sun/net/httpserver/HttpExchange.getResponseBody:()Ljava/io/OutputStream;\n+        17: invokevirtual #299                // Method com/sun/net/httpserver/HttpExchange.getResponseBody:()Ljava/io/OutputStream;\n         20: aload_1\n-        21: invokevirtual #95                 // Method java/io/OutputStream.write:([B)V\n+        21: invokevirtual #303                // Method java/io/OutputStream.write:([B)V\n         24: aload_0\n-        25: invokevirtual #96                 // Method com/sun/net/httpserver/HttpExchange.close:()V\n+        25: invokevirtual #309                // Method com/sun/net/httpserver/HttpExchange.close:()V\n         28: return\n       LineNumberTable:\n         line 166: 0\n         line 167: 6\n         line 168: 16\n         line 169: 24\n         line 170: 28\n@@ -1385,70 +1382,70 @@\n \n   private static void lambda$generateUUIDFromNullInputWorks$2() throws java.lang.Throwable;\n     descriptor: ()V\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=1, locals=0, args_size=0\n          0: aconst_null\n-         1: invokestatic  #38                 // Method dev/langchain4j/internal/Utils.generateUUIDFrom:(Ljava/lang/String;)Ljava/lang/String;\n+         1: invokestatic  #127                // Method dev/langchain4j/internal/Utils.generateUUIDFrom:(Ljava/lang/String;)Ljava/lang/String;\n          4: pop\n          5: return\n       LineNumberTable:\n         line 139: 0\n     Exceptions:\n       throws java.lang.Throwable\n \n   private static java.lang.String lambda$test_getOrDefault$1();\n     descriptor: ()Ljava/lang/String;\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=1, locals=0, args_size=0\n-         0: ldc           #3                  // String bar\n+         0: ldc           #9                  // String bar\n          2: areturn\n       LineNumberTable:\n         line 31: 0\n \n   private static java.lang.String lambda$test_getOrDefault$0();\n     descriptor: ()Ljava/lang/String;\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=1, locals=0, args_size=0\n-         0: ldc           #3                  // String bar\n+         0: ldc           #9                  // String bar\n          2: areturn\n       LineNumberTable:\n         line 30: 0\n }\n SourceFile: \"UtilsTest.java\"\n-InnerClasses:\n-  public static #338= #337 of #405;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n-  public static final #413= #412 of #416; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n BootstrapMethods:\n-  0: #173 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  0: #375 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #174 ()Ljava/lang/Object;\n-      #175 REF_invokeStatic dev/langchain4j/internal/UtilsTest.lambda$test_getOrDefault$0:()Ljava/lang/String;\n-      #176 ()Ljava/lang/String;\n-  1: #173 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #382 ()Ljava/lang/Object;\n+      #384 REF_invokeStatic dev/langchain4j/internal/UtilsTest.lambda$test_getOrDefault$0:()Ljava/lang/String;\n+      #387 ()Ljava/lang/String;\n+  1: #375 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #174 ()Ljava/lang/Object;\n-      #179 REF_invokeStatic dev/langchain4j/internal/UtilsTest.lambda$test_getOrDefault$1:()Ljava/lang/String;\n-      #176 ()Ljava/lang/String;\n-  2: #173 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #382 ()Ljava/lang/Object;\n+      #388 REF_invokeStatic dev/langchain4j/internal/UtilsTest.lambda$test_getOrDefault$1:()Ljava/lang/String;\n+      #387 ()Ljava/lang/String;\n+  2: #375 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #213 ()V\n-      #214 REF_invokeStatic dev/langchain4j/internal/UtilsTest.lambda$generateUUIDFromNullInputWorks$2:()V\n-      #213 ()V\n-  3: #173 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #391 ()V\n+      #392 REF_invokeStatic dev/langchain4j/internal/UtilsTest.lambda$generateUUIDFromNullInputWorks$2:()V\n+      #391 ()V\n+  3: #375 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #240 (Lcom/sun/net/httpserver/HttpExchange;)V\n-      #241 REF_invokeStatic dev/langchain4j/internal/UtilsTest.lambda$test_readBytes$3:(Lcom/sun/net/httpserver/HttpExchange;)V\n-      #240 (Lcom/sun/net/httpserver/HttpExchange;)V\n-  4: #173 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #395 (Lcom/sun/net/httpserver/HttpExchange;)V\n+      #396 REF_invokeStatic dev/langchain4j/internal/UtilsTest.lambda$test_readBytes$3:(Lcom/sun/net/httpserver/HttpExchange;)V\n+      #395 (Lcom/sun/net/httpserver/HttpExchange;)V\n+  4: #375 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #240 (Lcom/sun/net/httpserver/HttpExchange;)V\n-      #245 REF_invokeStatic dev/langchain4j/internal/UtilsTest.lambda$test_readBytes$4:(Lcom/sun/net/httpserver/HttpExchange;)V\n-      #240 (Lcom/sun/net/httpserver/HttpExchange;)V\n-  5: #173 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #395 (Lcom/sun/net/httpserver/HttpExchange;)V\n+      #399 REF_invokeStatic dev/langchain4j/internal/UtilsTest.lambda$test_readBytes$4:(Lcom/sun/net/httpserver/HttpExchange;)V\n+      #395 (Lcom/sun/net/httpserver/HttpExchange;)V\n+  5: #375 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #213 ()V\n-      #258 REF_invokeStatic dev/langchain4j/internal/UtilsTest.lambda$test_readBytes$5:(I)V\n-      #213 ()V\n+      #391 ()V\n+      #402 REF_invokeStatic dev/langchain4j/internal/UtilsTest.lambda$test_readBytes$5:(I)V\n+      #391 ()V\n+InnerClasses:\n+  public static #410= #406 of #408;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n+  public static final #415= #411 of #413; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n"}]}, {"source1": "dev/langchain4j/internal/ValidationUtilsTest.class", "source2": "dev/langchain4j/internal/ValidationUtilsTest.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -35,17 +35,15 @@\n     \n     @Test\n     public void test_ensureNotEmpty_collection() {\n         List<Object> list = new ArrayList<Object>();\n         list.add(new Object());\n         this.assertThat((List)ValidationUtils.ensureNotEmpty((Collection)list, \"test\")).isSameAs((Object)list);\n         list = new ArrayList<Object>();\n-        this.assertThatExceptionOfType((Class)IllegalArgumentException.class).isThrownBy(() -> {\n-            final List list2 = (List)ValidationUtils.ensureNotEmpty((Collection)list, \"test\");\n-        }).withMessageContaining(\"test cannot be null or empty\");\n+        this.assertThatExceptionOfType((Class)IllegalArgumentException.class).isThrownBy(() -> ValidationUtils.ensureNotEmpty((Collection)list, \"test\")).withMessageContaining(\"test cannot be null or empty\");\n         this.assertThatExceptionOfType((Class)IllegalArgumentException.class).isThrownBy(() -> ValidationUtils.ensureNotEmpty((Collection)null, \"test\")).withMessageContaining(\"test cannot be null or empty\");\n     }\n     \n     @Test\n     public void test_ensureNotEmpty_map() {\n         Map<Object, Object> map = new HashMap<Object, Object>();\n         map.put(new Object(), new Object());\n"}]}, {"source1": "dev/langchain4j/model/ExampleTestTokenizer.class", "source2": "dev/langchain4j/model/ExampleTestTokenizer.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,109 +1,108 @@\n-  SHA-256 checksum 3b8b3aaf858cb4cdf201d22906d82f8fb181981439e539f699641b96c06cb933\n+  SHA-256 checksum 8fdfa8cb6c5520468fda18fa2191a7fa1b6f99351c4721f54b3c6017cc06db81\n   Compiled from \"ExampleTestTokenizer.java\"\n public class dev.langchain4j.model.ExampleTestTokenizer implements dev.langchain4j.model.Tokenizer\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #15                         // dev/langchain4j/model/ExampleTestTokenizer\n-  super_class: #16                        // java/lang/Object\n+  this_class: #22                         // dev/langchain4j/model/ExampleTestTokenizer\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 6, attributes: 1\n Constant pool:\n-   #1 = Methodref          #16.#59        // java/lang/Object.\"<init>\":()V\n-   #2 = String             #60            //\n-   #3 = Methodref          #61.#62        // java/lang/String.split:(Ljava/lang/String;)[Ljava/lang/String;\n-   #4 = InterfaceMethodref #9.#63         // dev/langchain4j/data/message/ChatMessage.text:()Ljava/lang/String;\n-   #5 = Methodref          #15.#64        // dev/langchain4j/model/ExampleTestTokenizer.estimateTokenCountInText:(Ljava/lang/String;)I\n-   #6 = InterfaceMethodref #65.#66        // java/lang/Iterable.iterator:()Ljava/util/Iterator;\n-   #7 = InterfaceMethodref #67.#68        // java/util/Iterator.hasNext:()Z\n-   #8 = InterfaceMethodref #67.#69        // java/util/Iterator.next:()Ljava/lang/Object;\n-   #9 = Class              #70            // dev/langchain4j/data/message/ChatMessage\n-  #10 = Methodref          #15.#71        // dev/langchain4j/model/ExampleTestTokenizer.estimateTokenCountInMessage:(Ldev/langchain4j/data/message/ChatMessage;)I\n-  #11 = Class              #72            // dev/langchain4j/agent/tool/ToolSpecification\n-  #12 = Methodref          #11.#73        // dev/langchain4j/agent/tool/ToolSpecification.description:()Ljava/lang/String;\n-  #13 = Class              #74            // dev/langchain4j/agent/tool/ToolExecutionRequest\n-  #14 = Methodref          #13.#75        // dev/langchain4j/agent/tool/ToolExecutionRequest.arguments:()Ljava/lang/String;\n-  #15 = Class              #76            // dev/langchain4j/model/ExampleTestTokenizer\n-  #16 = Class              #77            // java/lang/Object\n-  #17 = Class              #78            // dev/langchain4j/model/Tokenizer\n-  #18 = Utf8               <init>\n-  #19 = Utf8               ()V\n-  #20 = Utf8               Code\n-  #21 = Utf8               LineNumberTable\n-  #22 = Utf8               LocalVariableTable\n-  #23 = Utf8               this\n-  #24 = Utf8               Ldev/langchain4j/model/ExampleTestTokenizer;\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = String             #8             //\n+   #8 = Utf8\n+   #9 = Methodref          #10.#11        // java/lang/String.split:(Ljava/lang/String;)[Ljava/lang/String;\n+  #10 = Class              #12            // java/lang/String\n+  #11 = NameAndType        #13:#14        // split:(Ljava/lang/String;)[Ljava/lang/String;\n+  #12 = Utf8               java/lang/String\n+  #13 = Utf8               split\n+  #14 = Utf8               (Ljava/lang/String;)[Ljava/lang/String;\n+  #15 = InterfaceMethodref #16.#17        // dev/langchain4j/data/message/ChatMessage.text:()Ljava/lang/String;\n+  #16 = Class              #18            // dev/langchain4j/data/message/ChatMessage\n+  #17 = NameAndType        #19:#20        // text:()Ljava/lang/String;\n+  #18 = Utf8               dev/langchain4j/data/message/ChatMessage\n+  #19 = Utf8               text\n+  #20 = Utf8               ()Ljava/lang/String;\n+  #21 = Methodref          #22.#23        // dev/langchain4j/model/ExampleTestTokenizer.estimateTokenCountInText:(Ljava/lang/String;)I\n+  #22 = Class              #24            // dev/langchain4j/model/ExampleTestTokenizer\n+  #23 = NameAndType        #25:#26        // estimateTokenCountInText:(Ljava/lang/String;)I\n+  #24 = Utf8               dev/langchain4j/model/ExampleTestTokenizer\n   #25 = Utf8               estimateTokenCountInText\n   #26 = Utf8               (Ljava/lang/String;)I\n-  #27 = Utf8               text\n-  #28 = Utf8               Ljava/lang/String;\n-  #29 = Utf8               estimateTokenCountInMessage\n-  #30 = Utf8               (Ldev/langchain4j/data/message/ChatMessage;)I\n-  #31 = Utf8               message\n-  #32 = Utf8               Ldev/langchain4j/data/message/ChatMessage;\n-  #33 = Utf8               estimateTokenCountInMessages\n-  #34 = Utf8               (Ljava/lang/Iterable;)I\n-  #35 = Utf8               messages\n-  #36 = Utf8               Ljava/lang/Iterable;\n-  #37 = Utf8               tokenCount\n-  #38 = Utf8               I\n-  #39 = Utf8               LocalVariableTypeTable\n-  #40 = Utf8               Ljava/lang/Iterable<Ldev/langchain4j/data/message/ChatMessage;>;\n-  #41 = Utf8               StackMapTable\n-  #42 = Class              #79            // java/util/Iterator\n-  #43 = Utf8               Signature\n-  #44 = Utf8               (Ljava/lang/Iterable<Ldev/langchain4j/data/message/ChatMessage;>;)I\n-  #45 = Utf8               estimateTokenCountInToolSpecifications\n-  #46 = Utf8               specification\n-  #47 = Utf8               Ldev/langchain4j/agent/tool/ToolSpecification;\n-  #48 = Utf8               toolSpecifications\n-  #49 = Utf8               Ljava/lang/Iterable<Ldev/langchain4j/agent/tool/ToolSpecification;>;\n-  #50 = Utf8               (Ljava/lang/Iterable<Ldev/langchain4j/agent/tool/ToolSpecification;>;)I\n-  #51 = Utf8               estimateTokenCountInToolExecutionRequests\n-  #52 = Utf8               request\n-  #53 = Utf8               Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-  #54 = Utf8               toolExecutionRequests\n-  #55 = Utf8               Ljava/lang/Iterable<Ldev/langchain4j/agent/tool/ToolExecutionRequest;>;\n-  #56 = Utf8               (Ljava/lang/Iterable<Ldev/langchain4j/agent/tool/ToolExecutionRequest;>;)I\n-  #57 = Utf8               SourceFile\n-  #58 = Utf8               ExampleTestTokenizer.java\n-  #59 = NameAndType        #18:#19        // \"<init>\":()V\n-  #60 = Utf8\n-  #61 = Class              #80            // java/lang/String\n-  #62 = NameAndType        #81:#82        // split:(Ljava/lang/String;)[Ljava/lang/String;\n-  #63 = NameAndType        #27:#83        // text:()Ljava/lang/String;\n-  #64 = NameAndType        #25:#26        // estimateTokenCountInText:(Ljava/lang/String;)I\n-  #65 = Class              #84            // java/lang/Iterable\n-  #66 = NameAndType        #85:#86        // iterator:()Ljava/util/Iterator;\n-  #67 = Class              #79            // java/util/Iterator\n-  #68 = NameAndType        #87:#88        // hasNext:()Z\n-  #69 = NameAndType        #89:#90        // next:()Ljava/lang/Object;\n-  #70 = Utf8               dev/langchain4j/data/message/ChatMessage\n-  #71 = NameAndType        #29:#30        // estimateTokenCountInMessage:(Ldev/langchain4j/data/message/ChatMessage;)I\n-  #72 = Utf8               dev/langchain4j/agent/tool/ToolSpecification\n-  #73 = NameAndType        #91:#83        // description:()Ljava/lang/String;\n-  #74 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest\n-  #75 = NameAndType        #92:#83        // arguments:()Ljava/lang/String;\n-  #76 = Utf8               dev/langchain4j/model/ExampleTestTokenizer\n-  #77 = Utf8               java/lang/Object\n-  #78 = Utf8               dev/langchain4j/model/Tokenizer\n-  #79 = Utf8               java/util/Iterator\n-  #80 = Utf8               java/lang/String\n-  #81 = Utf8               split\n-  #82 = Utf8               (Ljava/lang/String;)[Ljava/lang/String;\n-  #83 = Utf8               ()Ljava/lang/String;\n-  #84 = Utf8               java/lang/Iterable\n-  #85 = Utf8               iterator\n-  #86 = Utf8               ()Ljava/util/Iterator;\n-  #87 = Utf8               hasNext\n-  #88 = Utf8               ()Z\n-  #89 = Utf8               next\n-  #90 = Utf8               ()Ljava/lang/Object;\n-  #91 = Utf8               description\n-  #92 = Utf8               arguments\n+  #27 = InterfaceMethodref #28.#29        // java/lang/Iterable.iterator:()Ljava/util/Iterator;\n+  #28 = Class              #30            // java/lang/Iterable\n+  #29 = NameAndType        #31:#32        // iterator:()Ljava/util/Iterator;\n+  #30 = Utf8               java/lang/Iterable\n+  #31 = Utf8               iterator\n+  #32 = Utf8               ()Ljava/util/Iterator;\n+  #33 = InterfaceMethodref #34.#35        // java/util/Iterator.hasNext:()Z\n+  #34 = Class              #36            // java/util/Iterator\n+  #35 = NameAndType        #37:#38        // hasNext:()Z\n+  #36 = Utf8               java/util/Iterator\n+  #37 = Utf8               hasNext\n+  #38 = Utf8               ()Z\n+  #39 = InterfaceMethodref #34.#40        // java/util/Iterator.next:()Ljava/lang/Object;\n+  #40 = NameAndType        #41:#42        // next:()Ljava/lang/Object;\n+  #41 = Utf8               next\n+  #42 = Utf8               ()Ljava/lang/Object;\n+  #43 = Methodref          #22.#44        // dev/langchain4j/model/ExampleTestTokenizer.estimateTokenCountInMessage:(Ldev/langchain4j/data/message/ChatMessage;)I\n+  #44 = NameAndType        #45:#46        // estimateTokenCountInMessage:(Ldev/langchain4j/data/message/ChatMessage;)I\n+  #45 = Utf8               estimateTokenCountInMessage\n+  #46 = Utf8               (Ldev/langchain4j/data/message/ChatMessage;)I\n+  #47 = Class              #48            // dev/langchain4j/agent/tool/ToolSpecification\n+  #48 = Utf8               dev/langchain4j/agent/tool/ToolSpecification\n+  #49 = Methodref          #47.#50        // dev/langchain4j/agent/tool/ToolSpecification.description:()Ljava/lang/String;\n+  #50 = NameAndType        #51:#20        // description:()Ljava/lang/String;\n+  #51 = Utf8               description\n+  #52 = Class              #53            // dev/langchain4j/agent/tool/ToolExecutionRequest\n+  #53 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest\n+  #54 = Methodref          #52.#55        // dev/langchain4j/agent/tool/ToolExecutionRequest.arguments:()Ljava/lang/String;\n+  #55 = NameAndType        #56:#20        // arguments:()Ljava/lang/String;\n+  #56 = Utf8               arguments\n+  #57 = Class              #58            // dev/langchain4j/model/Tokenizer\n+  #58 = Utf8               dev/langchain4j/model/Tokenizer\n+  #59 = Utf8               Code\n+  #60 = Utf8               LineNumberTable\n+  #61 = Utf8               LocalVariableTable\n+  #62 = Utf8               this\n+  #63 = Utf8               Ldev/langchain4j/model/ExampleTestTokenizer;\n+  #64 = Utf8               Ljava/lang/String;\n+  #65 = Utf8               message\n+  #66 = Utf8               Ldev/langchain4j/data/message/ChatMessage;\n+  #67 = Utf8               estimateTokenCountInMessages\n+  #68 = Utf8               (Ljava/lang/Iterable;)I\n+  #69 = Utf8               messages\n+  #70 = Utf8               Ljava/lang/Iterable;\n+  #71 = Utf8               tokenCount\n+  #72 = Utf8               I\n+  #73 = Utf8               LocalVariableTypeTable\n+  #74 = Utf8               Ljava/lang/Iterable<Ldev/langchain4j/data/message/ChatMessage;>;\n+  #75 = Utf8               StackMapTable\n+  #76 = Utf8               Signature\n+  #77 = Utf8               (Ljava/lang/Iterable<Ldev/langchain4j/data/message/ChatMessage;>;)I\n+  #78 = Utf8               estimateTokenCountInToolSpecifications\n+  #79 = Utf8               specification\n+  #80 = Utf8               Ldev/langchain4j/agent/tool/ToolSpecification;\n+  #81 = Utf8               toolSpecifications\n+  #82 = Utf8               Ljava/lang/Iterable<Ldev/langchain4j/agent/tool/ToolSpecification;>;\n+  #83 = Utf8               (Ljava/lang/Iterable<Ldev/langchain4j/agent/tool/ToolSpecification;>;)I\n+  #84 = Utf8               estimateTokenCountInToolExecutionRequests\n+  #85 = Utf8               request\n+  #86 = Utf8               Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+  #87 = Utf8               toolExecutionRequests\n+  #88 = Utf8               Ljava/lang/Iterable<Ldev/langchain4j/agent/tool/ToolExecutionRequest;>;\n+  #89 = Utf8               (Ljava/lang/Iterable<Ldev/langchain4j/agent/tool/ToolExecutionRequest;>;)I\n+  #90 = Utf8               SourceFile\n+  #91 = Utf8               ExampleTestTokenizer.java\n {\n   public dev.langchain4j.model.ExampleTestTokenizer();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -117,16 +116,16 @@\n \n   public int estimateTokenCountInText(java.lang.String);\n     descriptor: (Ljava/lang/String;)I\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_1\n-         1: ldc           #2                  // String\n-         3: invokevirtual #3                  // Method java/lang/String.split:(Ljava/lang/String;)[Ljava/lang/String;\n+         1: ldc           #7                  // String\n+         3: invokevirtual #9                  // Method java/lang/String.split:(Ljava/lang/String;)[Ljava/lang/String;\n          6: arraylength\n          7: ireturn\n       LineNumberTable:\n         line 11: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       8     0  this   Ldev/langchain4j/model/ExampleTestTokenizer;\n@@ -135,16 +134,16 @@\n   public int estimateTokenCountInMessage(dev.langchain4j.data.message.ChatMessage);\n     descriptor: (Ldev/langchain4j/data/message/ChatMessage;)I\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: invokeinterface #4,  1            // InterfaceMethod dev/langchain4j/data/message/ChatMessage.text:()Ljava/lang/String;\n-         7: invokevirtual #5                  // Method estimateTokenCountInText:(Ljava/lang/String;)I\n+         2: invokeinterface #15,  1           // InterfaceMethod dev/langchain4j/data/message/ChatMessage.text:()Ljava/lang/String;\n+         7: invokevirtual #21                 // Method estimateTokenCountInText:(Ljava/lang/String;)I\n         10: ireturn\n       LineNumberTable:\n         line 16: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      11     0  this   Ldev/langchain4j/model/ExampleTestTokenizer;\n             0      11     1 message   Ldev/langchain4j/data/message/ChatMessage;\n@@ -153,27 +152,27 @@\n     descriptor: (Ljava/lang/Iterable;)I\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=5, args_size=2\n          0: iconst_0\n          1: istore_2\n          2: aload_1\n-         3: invokeinterface #6,  1            // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;\n+         3: invokeinterface #27,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;\n          8: astore_3\n          9: aload_3\n-        10: invokeinterface #7,  1            // InterfaceMethod java/util/Iterator.hasNext:()Z\n+        10: invokeinterface #33,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z\n         15: ifeq          41\n         18: aload_3\n-        19: invokeinterface #8,  1            // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;\n-        24: checkcast     #9                  // class dev/langchain4j/data/message/ChatMessage\n+        19: invokeinterface #39,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;\n+        24: checkcast     #16                 // class dev/langchain4j/data/message/ChatMessage\n         27: astore        4\n         29: iload_2\n         30: aload_0\n         31: aload         4\n-        33: invokevirtual #10                 // Method estimateTokenCountInMessage:(Ldev/langchain4j/data/message/ChatMessage;)I\n+        33: invokevirtual #43                 // Method estimateTokenCountInMessage:(Ldev/langchain4j/data/message/ChatMessage;)I\n         36: iadd\n         37: istore_2\n         38: goto          9\n         41: iload_2\n         42: ireturn\n       LineNumberTable:\n         line 21: 0\n@@ -192,38 +191,38 @@\n             0      43     1 messages   Ljava/lang/Iterable<Ldev/langchain4j/data/message/ChatMessage;>;\n       StackMapTable: number_of_entries = 2\n         frame_type = 253 /* append */\n           offset_delta = 9\n           locals = [ int, class java/util/Iterator ]\n         frame_type = 250 /* chop */\n           offset_delta = 31\n-    Signature: #44                          // (Ljava/lang/Iterable<Ldev/langchain4j/data/message/ChatMessage;>;)I\n+    Signature: #77                          // (Ljava/lang/Iterable<Ldev/langchain4j/data/message/ChatMessage;>;)I\n \n   public int estimateTokenCountInToolSpecifications(java.lang.Iterable<dev.langchain4j.agent.tool.ToolSpecification>);\n     descriptor: (Ljava/lang/Iterable;)I\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=5, args_size=2\n          0: iconst_0\n          1: istore_2\n          2: aload_1\n-         3: invokeinterface #6,  1            // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;\n+         3: invokeinterface #27,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;\n          8: astore_3\n          9: aload_3\n-        10: invokeinterface #7,  1            // InterfaceMethod java/util/Iterator.hasNext:()Z\n+        10: invokeinterface #33,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z\n         15: ifeq          44\n         18: aload_3\n-        19: invokeinterface #8,  1            // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;\n-        24: checkcast     #11                 // class dev/langchain4j/agent/tool/ToolSpecification\n+        19: invokeinterface #39,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;\n+        24: checkcast     #47                 // class dev/langchain4j/agent/tool/ToolSpecification\n         27: astore        4\n         29: iload_2\n         30: aload_0\n         31: aload         4\n-        33: invokevirtual #12                 // Method dev/langchain4j/agent/tool/ToolSpecification.description:()Ljava/lang/String;\n-        36: invokevirtual #5                  // Method estimateTokenCountInText:(Ljava/lang/String;)I\n+        33: invokevirtual #49                 // Method dev/langchain4j/agent/tool/ToolSpecification.description:()Ljava/lang/String;\n+        36: invokevirtual #21                 // Method estimateTokenCountInText:(Ljava/lang/String;)I\n         39: iadd\n         40: istore_2\n         41: goto          9\n         44: iload_2\n         45: ireturn\n       LineNumberTable:\n         line 30: 0\n@@ -242,38 +241,38 @@\n             0      46     1 toolSpecifications   Ljava/lang/Iterable<Ldev/langchain4j/agent/tool/ToolSpecification;>;\n       StackMapTable: number_of_entries = 2\n         frame_type = 253 /* append */\n           offset_delta = 9\n           locals = [ int, class java/util/Iterator ]\n         frame_type = 250 /* chop */\n           offset_delta = 34\n-    Signature: #50                          // (Ljava/lang/Iterable<Ldev/langchain4j/agent/tool/ToolSpecification;>;)I\n+    Signature: #83                          // (Ljava/lang/Iterable<Ldev/langchain4j/agent/tool/ToolSpecification;>;)I\n \n   public int estimateTokenCountInToolExecutionRequests(java.lang.Iterable<dev.langchain4j.agent.tool.ToolExecutionRequest>);\n     descriptor: (Ljava/lang/Iterable;)I\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=5, args_size=2\n          0: iconst_0\n          1: istore_2\n          2: aload_1\n-         3: invokeinterface #6,  1            // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;\n+         3: invokeinterface #27,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;\n          8: astore_3\n          9: aload_3\n-        10: invokeinterface #7,  1            // InterfaceMethod java/util/Iterator.hasNext:()Z\n+        10: invokeinterface #33,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z\n         15: ifeq          44\n         18: aload_3\n-        19: invokeinterface #8,  1            // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;\n-        24: checkcast     #13                 // class dev/langchain4j/agent/tool/ToolExecutionRequest\n+        19: invokeinterface #39,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;\n+        24: checkcast     #52                 // class dev/langchain4j/agent/tool/ToolExecutionRequest\n         27: astore        4\n         29: iload_2\n         30: aload_0\n         31: aload         4\n-        33: invokevirtual #14                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.arguments:()Ljava/lang/String;\n-        36: invokevirtual #5                  // Method estimateTokenCountInText:(Ljava/lang/String;)I\n+        33: invokevirtual #54                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.arguments:()Ljava/lang/String;\n+        36: invokevirtual #21                 // Method estimateTokenCountInText:(Ljava/lang/String;)I\n         39: iadd\n         40: istore_2\n         41: goto          9\n         44: iload_2\n         45: ireturn\n       LineNumberTable:\n         line 39: 0\n@@ -292,10 +291,10 @@\n             0      46     1 toolExecutionRequests   Ljava/lang/Iterable<Ldev/langchain4j/agent/tool/ToolExecutionRequest;>;\n       StackMapTable: number_of_entries = 2\n         frame_type = 253 /* append */\n           offset_delta = 9\n           locals = [ int, class java/util/Iterator ]\n         frame_type = 250 /* chop */\n           offset_delta = 34\n-    Signature: #56                          // (Ljava/lang/Iterable<Ldev/langchain4j/agent/tool/ToolExecutionRequest;>;)I\n+    Signature: #89                          // (Ljava/lang/Iterable<Ldev/langchain4j/agent/tool/ToolExecutionRequest;>;)I\n }\n SourceFile: \"ExampleTestTokenizer.java\"\n"}]}, {"source1": "dev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler.class", "source2": "dev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,50 +1,50 @@\n-  SHA-256 checksum 14f61689e0713f56a50367a1c85a70a4ee8f94c27f9c746729c5d29d254e9e43\n+  SHA-256 checksum f6e9a13194966fd02be8105b7cc23483f24b48cf97e3034dc3d502b3631b88cf\n   Compiled from \"StreamingResponseHandlerTest.java\"\n public class dev.langchain4j.model.StreamingResponseHandlerTest$MinimalStreamingResponseHandler<T extends java.lang.Object> extends java.lang.Object implements dev.langchain4j.model.StreamingResponseHandler<T>\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #2                          // dev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler\n-  super_class: #3                         // java/lang/Object\n+  this_class: #7                          // dev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 3, attributes: 3\n Constant pool:\n-   #1 = Methodref          #3.#28         // java/lang/Object.\"<init>\":()V\n-   #2 = Class              #30            // dev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler\n-   #3 = Class              #31            // java/lang/Object\n-   #4 = Class              #32            // dev/langchain4j/model/StreamingResponseHandler\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n    #5 = Utf8               <init>\n    #6 = Utf8               ()V\n-   #7 = Utf8               Code\n-   #8 = Utf8               LineNumberTable\n-   #9 = Utf8               LocalVariableTable\n-  #10 = Utf8               this\n-  #11 = Utf8               MinimalStreamingResponseHandler\n-  #12 = Utf8               InnerClasses\n-  #13 = Utf8               Ldev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler;\n-  #14 = Utf8               LocalVariableTypeTable\n-  #15 = Utf8               Ldev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler<TT;>;\n-  #16 = Utf8               onNext\n-  #17 = Utf8               (Ljava/lang/String;)V\n-  #18 = Utf8               token\n-  #19 = Utf8               Ljava/lang/String;\n-  #20 = Utf8               onError\n-  #21 = Utf8               (Ljava/lang/Throwable;)V\n-  #22 = Utf8               error\n-  #23 = Utf8               Ljava/lang/Throwable;\n-  #24 = Utf8               Signature\n-  #25 = Utf8               <T:Ljava/lang/Object;>Ljava/lang/Object;Ldev/langchain4j/model/StreamingResponseHandler<TT;>;\n-  #26 = Utf8               SourceFile\n-  #27 = Utf8               StreamingResponseHandlerTest.java\n-  #28 = NameAndType        #5:#6          // \"<init>\":()V\n-  #29 = Class              #33            // dev/langchain4j/model/StreamingResponseHandlerTest\n-  #30 = Utf8               dev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler\n-  #31 = Utf8               java/lang/Object\n-  #32 = Utf8               dev/langchain4j/model/StreamingResponseHandler\n-  #33 = Utf8               dev/langchain4j/model/StreamingResponseHandlerTest\n+   #7 = Class              #8             // dev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler\n+   #8 = Utf8               dev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler\n+   #9 = Class              #10            // dev/langchain4j/model/StreamingResponseHandler\n+  #10 = Utf8               dev/langchain4j/model/StreamingResponseHandler\n+  #11 = Utf8               Code\n+  #12 = Utf8               LineNumberTable\n+  #13 = Utf8               LocalVariableTable\n+  #14 = Utf8               this\n+  #15 = Utf8               Ldev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler;\n+  #16 = Utf8               LocalVariableTypeTable\n+  #17 = Utf8               Ldev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler<TT;>;\n+  #18 = Utf8               onNext\n+  #19 = Utf8               (Ljava/lang/String;)V\n+  #20 = Utf8               token\n+  #21 = Utf8               Ljava/lang/String;\n+  #22 = Utf8               onError\n+  #23 = Utf8               (Ljava/lang/Throwable;)V\n+  #24 = Utf8               error\n+  #25 = Utf8               Ljava/lang/Throwable;\n+  #26 = Utf8               Signature\n+  #27 = Utf8               <T:Ljava/lang/Object;>Ljava/lang/Object;Ldev/langchain4j/model/StreamingResponseHandler<TT;>;\n+  #28 = Utf8               SourceFile\n+  #29 = Utf8               StreamingResponseHandlerTest.java\n+  #30 = Utf8               InnerClasses\n+  #31 = Class              #32            // dev/langchain4j/model/StreamingResponseHandlerTest\n+  #32 = Utf8               dev/langchain4j/model/StreamingResponseHandlerTest\n+  #33 = Utf8               MinimalStreamingResponseHandler\n {\n   public dev.langchain4j.model.StreamingResponseHandlerTest$MinimalStreamingResponseHandler();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -87,11 +87,11 @@\n         Start  Length  Slot  Name   Signature\n             0       1     0  this   Ldev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler;\n             0       1     1 error   Ljava/lang/Throwable;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0       1     0  this   Ldev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler<TT;>;\n }\n-Signature: #25                          // <T:Ljava/lang/Object;>Ljava/lang/Object;Ldev/langchain4j/model/StreamingResponseHandler<TT;>;\n+Signature: #27                          // <T:Ljava/lang/Object;>Ljava/lang/Object;Ldev/langchain4j/model/StreamingResponseHandler<TT;>;\n SourceFile: \"StreamingResponseHandlerTest.java\"\n InnerClasses:\n-  public static #11= #2 of #29;           // MinimalStreamingResponseHandler=class dev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler of class dev/langchain4j/model/StreamingResponseHandlerTest\n+  public static #33= #7 of #31;           // MinimalStreamingResponseHandler=class dev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler of class dev/langchain4j/model/StreamingResponseHandlerTest\n"}]}, {"source1": "dev/langchain4j/model/StreamingResponseHandlerTest.class", "source2": "dev/langchain4j/model/StreamingResponseHandlerTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,59 +1,59 @@\n-  SHA-256 checksum 0a79b06a851a81e9a809126f0e4f80ac96d0dcc53978242befafdbb8a96383b1\n+  SHA-256 checksum d67df72d26c557530847be0d0078e16c714bd8e4c362f51f9d1674371a217f7a\n   Compiled from \"StreamingResponseHandlerTest.java\"\n class dev.langchain4j.model.StreamingResponseHandlerTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #8                          // dev/langchain4j/model/StreamingResponseHandlerTest\n-  super_class: #9                         // java/lang/Object\n+  this_class: #23                         // dev/langchain4j/model/StreamingResponseHandlerTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 2\n Constant pool:\n-   #1 = Methodref          #9.#29         // java/lang/Object.\"<init>\":()V\n-   #2 = Class              #30            // dev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler\n-   #3 = Methodref          #2.#29         // dev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler.\"<init>\":()V\n-   #4 = Class              #31            // dev/langchain4j/model/output/Response\n-   #5 = String             #32            // test\n-   #6 = Methodref          #4.#33         // dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n-   #7 = InterfaceMethodref #34.#35        // dev/langchain4j/model/StreamingResponseHandler.onComplete:(Ldev/langchain4j/model/output/Response;)V\n-   #8 = Class              #36            // dev/langchain4j/model/StreamingResponseHandlerTest\n-   #9 = Class              #37            // java/lang/Object\n-  #10 = Class              #38            // org/assertj/core/api/WithAssertions\n-  #11 = Utf8               MinimalStreamingResponseHandler\n-  #12 = Utf8               InnerClasses\n-  #13 = Utf8               <init>\n-  #14 = Utf8               ()V\n-  #15 = Utf8               Code\n-  #16 = Utf8               LineNumberTable\n-  #17 = Utf8               LocalVariableTable\n-  #18 = Utf8               this\n-  #19 = Utf8               Ldev/langchain4j/model/StreamingResponseHandlerTest;\n-  #20 = Utf8               testMinimalStreamingResponseHandler\n-  #21 = Utf8               handler\n-  #22 = Utf8               Ldev/langchain4j/model/StreamingResponseHandler;\n-  #23 = Utf8               LocalVariableTypeTable\n-  #24 = Utf8               Ldev/langchain4j/model/StreamingResponseHandler<Ljava/lang/String;>;\n-  #25 = Utf8               RuntimeVisibleAnnotations\n-  #26 = Utf8               Lorg/junit/jupiter/api/Test;\n-  #27 = Utf8               SourceFile\n-  #28 = Utf8               StreamingResponseHandlerTest.java\n-  #29 = NameAndType        #13:#14        // \"<init>\":()V\n-  #30 = Utf8               dev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler\n-  #31 = Utf8               dev/langchain4j/model/output/Response\n-  #32 = Utf8               test\n-  #33 = NameAndType        #13:#39        // \"<init>\":(Ljava/lang/Object;)V\n-  #34 = Class              #40            // dev/langchain4j/model/StreamingResponseHandler\n-  #35 = NameAndType        #41:#42        // onComplete:(Ldev/langchain4j/model/output/Response;)V\n-  #36 = Utf8               dev/langchain4j/model/StreamingResponseHandlerTest\n-  #37 = Utf8               java/lang/Object\n-  #38 = Utf8               org/assertj/core/api/WithAssertions\n-  #39 = Utf8               (Ljava/lang/Object;)V\n-  #40 = Utf8               dev/langchain4j/model/StreamingResponseHandler\n-  #41 = Utf8               onComplete\n-  #42 = Utf8               (Ldev/langchain4j/model/output/Response;)V\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Class              #8             // dev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler\n+   #8 = Utf8               dev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler\n+   #9 = Methodref          #7.#3          // dev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler.\"<init>\":()V\n+  #10 = Class              #11            // dev/langchain4j/model/output/Response\n+  #11 = Utf8               dev/langchain4j/model/output/Response\n+  #12 = String             #13            // test\n+  #13 = Utf8               test\n+  #14 = Methodref          #10.#15        // dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n+  #15 = NameAndType        #5:#16         // \"<init>\":(Ljava/lang/Object;)V\n+  #16 = Utf8               (Ljava/lang/Object;)V\n+  #17 = InterfaceMethodref #18.#19        // dev/langchain4j/model/StreamingResponseHandler.onComplete:(Ldev/langchain4j/model/output/Response;)V\n+  #18 = Class              #20            // dev/langchain4j/model/StreamingResponseHandler\n+  #19 = NameAndType        #21:#22        // onComplete:(Ldev/langchain4j/model/output/Response;)V\n+  #20 = Utf8               dev/langchain4j/model/StreamingResponseHandler\n+  #21 = Utf8               onComplete\n+  #22 = Utf8               (Ldev/langchain4j/model/output/Response;)V\n+  #23 = Class              #24            // dev/langchain4j/model/StreamingResponseHandlerTest\n+  #24 = Utf8               dev/langchain4j/model/StreamingResponseHandlerTest\n+  #25 = Class              #26            // org/assertj/core/api/WithAssertions\n+  #26 = Utf8               org/assertj/core/api/WithAssertions\n+  #27 = Utf8               Code\n+  #28 = Utf8               LineNumberTable\n+  #29 = Utf8               LocalVariableTable\n+  #30 = Utf8               this\n+  #31 = Utf8               Ldev/langchain4j/model/StreamingResponseHandlerTest;\n+  #32 = Utf8               testMinimalStreamingResponseHandler\n+  #33 = Utf8               handler\n+  #34 = Utf8               Ldev/langchain4j/model/StreamingResponseHandler;\n+  #35 = Utf8               LocalVariableTypeTable\n+  #36 = Utf8               Ldev/langchain4j/model/StreamingResponseHandler<Ljava/lang/String;>;\n+  #37 = Utf8               RuntimeVisibleAnnotations\n+  #38 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #39 = Utf8               SourceFile\n+  #40 = Utf8               StreamingResponseHandlerTest.java\n+  #41 = Utf8               InnerClasses\n+  #42 = Utf8               MinimalStreamingResponseHandler\n {\n   dev.langchain4j.model.StreamingResponseHandlerTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -66,36 +66,36 @@\n             0       5     0  this   Ldev/langchain4j/model/StreamingResponseHandlerTest;\n \n   public void testMinimalStreamingResponseHandler();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=4, locals=2, args_size=1\n-         0: new           #2                  // class dev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler\n+         0: new           #7                  // class dev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler.\"<init>\":()V\n          7: astore_1\n          8: aload_1\n-         9: new           #4                  // class dev/langchain4j/model/output/Response\n+         9: new           #10                 // class dev/langchain4j/model/output/Response\n         12: dup\n-        13: ldc           #5                  // String test\n-        15: invokespecial #6                  // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n-        18: invokeinterface #7,  2            // InterfaceMethod dev/langchain4j/model/StreamingResponseHandler.onComplete:(Ldev/langchain4j/model/output/Response;)V\n+        13: ldc           #12                 // String test\n+        15: invokespecial #14                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n+        18: invokeinterface #17,  2           // InterfaceMethod dev/langchain4j/model/StreamingResponseHandler.onComplete:(Ldev/langchain4j/model/output/Response;)V\n         23: return\n       LineNumberTable:\n         line 21: 0\n         line 24: 8\n         line 25: 23\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      24     0  this   Ldev/langchain4j/model/StreamingResponseHandlerTest;\n             8      16     1 handler   Ldev/langchain4j/model/StreamingResponseHandler;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             8      16     1 handler   Ldev/langchain4j/model/StreamingResponseHandler<Ljava/lang/String;>;\n     RuntimeVisibleAnnotations:\n-      0: #26()\n+      0: #38()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"StreamingResponseHandlerTest.java\"\n InnerClasses:\n-  public static #11= #2 of #8;            // MinimalStreamingResponseHandler=class dev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler of class dev/langchain4j/model/StreamingResponseHandlerTest\n+  public static #42= #7 of #23;           // MinimalStreamingResponseHandler=class dev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler of class dev/langchain4j/model/StreamingResponseHandlerTest\n"}]}, {"source1": "dev/langchain4j/model/TokenizerTest$ExampleTools.class", "source2": "dev/langchain4j/model/TokenizerTest$ExampleTools.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,46 +1,46 @@\n-  SHA-256 checksum f93d15b7e6fe1e8a35f0d1a3a3ebe97895735268d543109146193e591a483e9a\n+  SHA-256 checksum ddaf5a78e1c9fcf131668048b9838a2d47e38f7490905bd111fedc60ecd2b654\n   Compiled from \"TokenizerTest.java\"\n public class dev.langchain4j.model.TokenizerTest$ExampleTools\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #2                          // dev/langchain4j/model/TokenizerTest$ExampleTools\n-  super_class: #3                         // java/lang/Object\n+  this_class: #7                          // dev/langchain4j/model/TokenizerTest$ExampleTools\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 0, methods: 3, attributes: 2\n Constant pool:\n-   #1 = Methodref          #3.#25         // java/lang/Object.\"<init>\":()V\n-   #2 = Class              #27            // dev/langchain4j/model/TokenizerTest$ExampleTools\n-   #3 = Class              #28            // java/lang/Object\n-   #4 = Utf8               <init>\n-   #5 = Utf8               ()V\n-   #6 = Utf8               Code\n-   #7 = Utf8               LineNumberTable\n-   #8 = Utf8               LocalVariableTable\n-   #9 = Utf8               this\n-  #10 = Utf8               ExampleTools\n-  #11 = Utf8               InnerClasses\n-  #12 = Utf8               Ldev/langchain4j/model/TokenizerTest$ExampleTools;\n-  #13 = Utf8               launchRockets\n-  #14 = Utf8               RuntimeVisibleAnnotations\n-  #15 = Utf8               Ldev/langchain4j/agent/tool/Tool;\n-  #16 = Utf8               name\n-  #17 = Utf8               launch\n-  #18 = Utf8               value\n-  #19 = Utf8               Launch the rockets\n-  #20 = Utf8               abortRockets\n-  #21 = Utf8               abort\n-  #22 = Utf8               Abort the rockets\n-  #23 = Utf8               SourceFile\n-  #24 = Utf8               TokenizerTest.java\n-  #25 = NameAndType        #4:#5          // \"<init>\":()V\n-  #26 = Class              #29            // dev/langchain4j/model/TokenizerTest\n-  #27 = Utf8               dev/langchain4j/model/TokenizerTest$ExampleTools\n-  #28 = Utf8               java/lang/Object\n-  #29 = Utf8               dev/langchain4j/model/TokenizerTest\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Class              #8             // dev/langchain4j/model/TokenizerTest$ExampleTools\n+   #8 = Utf8               dev/langchain4j/model/TokenizerTest$ExampleTools\n+   #9 = Utf8               Code\n+  #10 = Utf8               LineNumberTable\n+  #11 = Utf8               LocalVariableTable\n+  #12 = Utf8               this\n+  #13 = Utf8               Ldev/langchain4j/model/TokenizerTest$ExampleTools;\n+  #14 = Utf8               launchRockets\n+  #15 = Utf8               RuntimeVisibleAnnotations\n+  #16 = Utf8               Ldev/langchain4j/agent/tool/Tool;\n+  #17 = Utf8               name\n+  #18 = Utf8               launch\n+  #19 = Utf8               value\n+  #20 = Utf8               Launch the rockets\n+  #21 = Utf8               abortRockets\n+  #22 = Utf8               abort\n+  #23 = Utf8               Abort the rockets\n+  #24 = Utf8               SourceFile\n+  #25 = Utf8               TokenizerTest.java\n+  #26 = Utf8               InnerClasses\n+  #27 = Class              #28            // dev/langchain4j/model/TokenizerTest\n+  #28 = Utf8               dev/langchain4j/model/TokenizerTest\n+  #29 = Utf8               ExampleTools\n {\n   public dev.langchain4j.model.TokenizerTest$ExampleTools();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -60,15 +60,15 @@\n          0: return\n       LineNumberTable:\n         line 16: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       1     0  this   Ldev/langchain4j/model/TokenizerTest$ExampleTools;\n     RuntimeVisibleAnnotations:\n-      0: #15(#16=s#17,#18=[s#19])\n+      0: #16(#17=s#18,#19=[s#20])\n         dev.langchain4j.agent.tool.Tool(\n           name=\"launch\"\n           value=[\"Launch the rockets\"]\n         )\n \n   public void abortRockets();\n     descriptor: ()V\n@@ -78,16 +78,16 @@\n          0: return\n       LineNumberTable:\n         line 19: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       1     0  this   Ldev/langchain4j/model/TokenizerTest$ExampleTools;\n     RuntimeVisibleAnnotations:\n-      0: #15(#16=s#21,#18=[s#22])\n+      0: #16(#17=s#22,#19=[s#23])\n         dev.langchain4j.agent.tool.Tool(\n           name=\"abort\"\n           value=[\"Abort the rockets\"]\n         )\n }\n SourceFile: \"TokenizerTest.java\"\n InnerClasses:\n-  public static #10= #2 of #26;           // ExampleTools=class dev/langchain4j/model/TokenizerTest$ExampleTools of class dev/langchain4j/model/TokenizerTest\n+  public static #29= #7 of #27;           // ExampleTools=class dev/langchain4j/model/TokenizerTest$ExampleTools of class dev/langchain4j/model/TokenizerTest\n"}]}, {"source1": "dev/langchain4j/model/TokenizerTest.class", "source2": "dev/langchain4j/model/TokenizerTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,123 +1,123 @@\n-  SHA-256 checksum 84a2898b733bae1dbca05d58a4f9b3d74bf1014862471cd3a62160a6a185f159\n+  SHA-256 checksum f0f37d4495205947ea4d37908db233155c674bc237326c08f6fd345905022321\n   Compiled from \"TokenizerTest.java\"\n class dev.langchain4j.model.TokenizerTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #26                         // dev/langchain4j/model/TokenizerTest\n-  super_class: #9                         // java/lang/Object\n+  this_class: #18                         // dev/langchain4j/model/TokenizerTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 2\n Constant pool:\n-    #1 = Methodref          #9.#48        // java/lang/Object.\"<init>\":()V\n-    #2 = Class              #49           // dev/langchain4j/model/ExampleTestTokenizer\n-    #3 = Methodref          #2.#48        // dev/langchain4j/model/ExampleTestTokenizer.\"<init>\":()V\n-    #4 = Class              #50           // dev/langchain4j/model/TokenizerTest$ExampleTools\n-    #5 = Methodref          #4.#48        // dev/langchain4j/model/TokenizerTest$ExampleTools.\"<init>\":()V\n-    #6 = Methodref          #2.#51        // dev/langchain4j/model/ExampleTestTokenizer.estimateTokenCountInTools:(Ljava/lang/Object;)I\n-    #7 = Methodref          #26.#52       // dev/langchain4j/model/TokenizerTest.assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n-    #8 = Methodref          #53.#54       // org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n-    #9 = Class              #55           // java/lang/Object\n-   #10 = Methodref          #56.#57       // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-   #11 = Methodref          #2.#58        // dev/langchain4j/model/ExampleTestTokenizer.estimateTokenCountInTools:(Ljava/lang/Iterable;)I\n-   #12 = Methodref          #59.#60       // dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #13 = String             #61           // id\n-   #14 = Methodref          #62.#63       // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #15 = String             #64           // name\n-   #16 = Methodref          #62.#65       // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #17 = String             #66           // foo bar baz\n-   #18 = Methodref          #62.#67       // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #19 = Methodref          #62.#68       // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-   #20 = Methodref          #2.#69        // dev/langchain4j/model/ExampleTestTokenizer.estimateTokenCountInForcefulToolExecutionRequest:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;)I\n-   #21 = String             #70           // launchRockets\n-   #22 = Class              #71           // java/lang/Class\n-   #23 = Methodref          #22.#72       // java/lang/Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;\n-   #24 = Methodref          #73.#74       // dev/langchain4j/agent/tool/ToolSpecifications.toolSpecificationFrom:(Ljava/lang/reflect/Method;)Ldev/langchain4j/agent/tool/ToolSpecification;\n-   #25 = Methodref          #2.#75        // dev/langchain4j/model/ExampleTestTokenizer.estimateTokenCountInForcefulToolSpecification:(Ldev/langchain4j/agent/tool/ToolSpecification;)I\n-   #26 = Class              #76           // dev/langchain4j/model/TokenizerTest\n-   #27 = Class              #77           // org/assertj/core/api/WithAssertions\n-   #28 = Utf8               ExampleTools\n-   #29 = Utf8               InnerClasses\n-   #30 = Utf8               <init>\n-   #31 = Utf8               ()V\n-   #32 = Utf8               Code\n-   #33 = Utf8               LineNumberTable\n-   #34 = Utf8               LocalVariableTable\n-   #35 = Utf8               this\n-   #36 = Utf8               Ldev/langchain4j/model/TokenizerTest;\n-   #37 = Utf8               test_estimateTokenCountInTools\n-   #38 = Utf8               tokenizer\n-   #39 = Utf8               Ldev/langchain4j/model/ExampleTestTokenizer;\n-   #40 = Utf8               exampleTools\n-   #41 = Utf8               Ldev/langchain4j/model/TokenizerTest$ExampleTools;\n-   #42 = Utf8               Exceptions\n-   #43 = Class              #78           // java/lang/Exception\n-   #44 = Utf8               RuntimeVisibleAnnotations\n-   #45 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #46 = Utf8               SourceFile\n-   #47 = Utf8               TokenizerTest.java\n-   #48 = NameAndType        #30:#31       // \"<init>\":()V\n-   #49 = Utf8               dev/langchain4j/model/ExampleTestTokenizer\n-   #50 = Utf8               dev/langchain4j/model/TokenizerTest$ExampleTools\n-   #51 = NameAndType        #79:#80       // estimateTokenCountInTools:(Ljava/lang/Object;)I\n-   #52 = NameAndType        #81:#82       // assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n-   #53 = Class              #83           // org/assertj/core/api/AbstractIntegerAssert\n-   #54 = NameAndType        #84:#82       // isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n-   #55 = Utf8               java/lang/Object\n-   #56 = Class              #85           // java/util/Arrays\n-   #57 = NameAndType        #86:#87       // asList:([Ljava/lang/Object;)Ljava/util/List;\n-   #58 = NameAndType        #79:#88       // estimateTokenCountInTools:(Ljava/lang/Iterable;)I\n-   #59 = Class              #89           // dev/langchain4j/agent/tool/ToolExecutionRequest\n-   #60 = NameAndType        #90:#92       // builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #61 = Utf8               id\n-   #62 = Class              #93           // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n-   #63 = NameAndType        #61:#94       // id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #64 = Utf8               name\n-   #65 = NameAndType        #64:#94       // name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #66 = Utf8               foo bar baz\n-   #67 = NameAndType        #95:#94       // arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #68 = NameAndType        #96:#97       // build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-   #69 = NameAndType        #98:#99       // estimateTokenCountInForcefulToolExecutionRequest:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;)I\n-   #70 = Utf8               launchRockets\n-   #71 = Utf8               java/lang/Class\n-   #72 = NameAndType        #100:#101     // getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;\n-   #73 = Class              #102          // dev/langchain4j/agent/tool/ToolSpecifications\n-   #74 = NameAndType        #103:#104     // toolSpecificationFrom:(Ljava/lang/reflect/Method;)Ldev/langchain4j/agent/tool/ToolSpecification;\n-   #75 = NameAndType        #105:#106     // estimateTokenCountInForcefulToolSpecification:(Ldev/langchain4j/agent/tool/ToolSpecification;)I\n-   #76 = Utf8               dev/langchain4j/model/TokenizerTest\n-   #77 = Utf8               org/assertj/core/api/WithAssertions\n-   #78 = Utf8               java/lang/Exception\n-   #79 = Utf8               estimateTokenCountInTools\n-   #80 = Utf8               (Ljava/lang/Object;)I\n-   #81 = Utf8               assertThat\n-   #82 = Utf8               (I)Lorg/assertj/core/api/AbstractIntegerAssert;\n-   #83 = Utf8               org/assertj/core/api/AbstractIntegerAssert\n-   #84 = Utf8               isEqualTo\n-   #85 = Utf8               java/util/Arrays\n-   #86 = Utf8               asList\n-   #87 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n-   #88 = Utf8               (Ljava/lang/Iterable;)I\n-   #89 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest\n-   #90 = Utf8               builder\n-   #91 = Utf8               Builder\n-   #92 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #93 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n-   #94 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #95 = Utf8               arguments\n-   #96 = Utf8               build\n-   #97 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-   #98 = Utf8               estimateTokenCountInForcefulToolExecutionRequest\n-   #99 = Utf8               (Ldev/langchain4j/agent/tool/ToolExecutionRequest;)I\n-  #100 = Utf8               getMethod\n-  #101 = Utf8               (Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;\n-  #102 = Utf8               dev/langchain4j/agent/tool/ToolSpecifications\n-  #103 = Utf8               toolSpecificationFrom\n-  #104 = Utf8               (Ljava/lang/reflect/Method;)Ldev/langchain4j/agent/tool/ToolSpecification;\n-  #105 = Utf8               estimateTokenCountInForcefulToolSpecification\n-  #106 = Utf8               (Ldev/langchain4j/agent/tool/ToolSpecification;)I\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Class              #8            // dev/langchain4j/model/ExampleTestTokenizer\n+    #8 = Utf8               dev/langchain4j/model/ExampleTestTokenizer\n+    #9 = Methodref          #7.#3         // dev/langchain4j/model/ExampleTestTokenizer.\"<init>\":()V\n+   #10 = Class              #11           // dev/langchain4j/model/TokenizerTest$ExampleTools\n+   #11 = Utf8               dev/langchain4j/model/TokenizerTest$ExampleTools\n+   #12 = Methodref          #10.#3        // dev/langchain4j/model/TokenizerTest$ExampleTools.\"<init>\":()V\n+   #13 = Methodref          #7.#14        // dev/langchain4j/model/ExampleTestTokenizer.estimateTokenCountInTools:(Ljava/lang/Object;)I\n+   #14 = NameAndType        #15:#16       // estimateTokenCountInTools:(Ljava/lang/Object;)I\n+   #15 = Utf8               estimateTokenCountInTools\n+   #16 = Utf8               (Ljava/lang/Object;)I\n+   #17 = Methodref          #18.#19       // dev/langchain4j/model/TokenizerTest.assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+   #18 = Class              #20           // dev/langchain4j/model/TokenizerTest\n+   #19 = NameAndType        #21:#22       // assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+   #20 = Utf8               dev/langchain4j/model/TokenizerTest\n+   #21 = Utf8               assertThat\n+   #22 = Utf8               (I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+   #23 = Methodref          #24.#25       // org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+   #24 = Class              #26           // org/assertj/core/api/AbstractIntegerAssert\n+   #25 = NameAndType        #27:#22       // isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+   #26 = Utf8               org/assertj/core/api/AbstractIntegerAssert\n+   #27 = Utf8               isEqualTo\n+   #28 = Methodref          #29.#30       // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+   #29 = Class              #31           // java/util/Arrays\n+   #30 = NameAndType        #32:#33       // asList:([Ljava/lang/Object;)Ljava/util/List;\n+   #31 = Utf8               java/util/Arrays\n+   #32 = Utf8               asList\n+   #33 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n+   #34 = Methodref          #7.#35        // dev/langchain4j/model/ExampleTestTokenizer.estimateTokenCountInTools:(Ljava/lang/Iterable;)I\n+   #35 = NameAndType        #15:#36       // estimateTokenCountInTools:(Ljava/lang/Iterable;)I\n+   #36 = Utf8               (Ljava/lang/Iterable;)I\n+   #37 = Methodref          #38.#39       // dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #38 = Class              #40           // dev/langchain4j/agent/tool/ToolExecutionRequest\n+   #39 = NameAndType        #41:#42       // builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #40 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest\n+   #41 = Utf8               builder\n+   #42 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #43 = String             #44           // id\n+   #44 = Utf8               id\n+   #45 = Methodref          #46.#47       // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #46 = Class              #48           // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n+   #47 = NameAndType        #44:#49       // id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #48 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n+   #49 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #50 = String             #51           // name\n+   #51 = Utf8               name\n+   #52 = Methodref          #46.#53       // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #53 = NameAndType        #51:#49       // name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #54 = String             #55           // foo bar baz\n+   #55 = Utf8               foo bar baz\n+   #56 = Methodref          #46.#57       // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #57 = NameAndType        #58:#49       // arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #58 = Utf8               arguments\n+   #59 = Methodref          #46.#60       // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+   #60 = NameAndType        #61:#62       // build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+   #61 = Utf8               build\n+   #62 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+   #63 = Methodref          #7.#64        // dev/langchain4j/model/ExampleTestTokenizer.estimateTokenCountInForcefulToolExecutionRequest:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;)I\n+   #64 = NameAndType        #65:#66       // estimateTokenCountInForcefulToolExecutionRequest:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;)I\n+   #65 = Utf8               estimateTokenCountInForcefulToolExecutionRequest\n+   #66 = Utf8               (Ldev/langchain4j/agent/tool/ToolExecutionRequest;)I\n+   #67 = String             #68           // launchRockets\n+   #68 = Utf8               launchRockets\n+   #69 = Class              #70           // java/lang/Class\n+   #70 = Utf8               java/lang/Class\n+   #71 = Methodref          #69.#72       // java/lang/Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;\n+   #72 = NameAndType        #73:#74       // getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;\n+   #73 = Utf8               getMethod\n+   #74 = Utf8               (Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;\n+   #75 = Methodref          #76.#77       // dev/langchain4j/agent/tool/ToolSpecifications.toolSpecificationFrom:(Ljava/lang/reflect/Method;)Ldev/langchain4j/agent/tool/ToolSpecification;\n+   #76 = Class              #78           // dev/langchain4j/agent/tool/ToolSpecifications\n+   #77 = NameAndType        #79:#80       // toolSpecificationFrom:(Ljava/lang/reflect/Method;)Ldev/langchain4j/agent/tool/ToolSpecification;\n+   #78 = Utf8               dev/langchain4j/agent/tool/ToolSpecifications\n+   #79 = Utf8               toolSpecificationFrom\n+   #80 = Utf8               (Ljava/lang/reflect/Method;)Ldev/langchain4j/agent/tool/ToolSpecification;\n+   #81 = Methodref          #7.#82        // dev/langchain4j/model/ExampleTestTokenizer.estimateTokenCountInForcefulToolSpecification:(Ldev/langchain4j/agent/tool/ToolSpecification;)I\n+   #82 = NameAndType        #83:#84       // estimateTokenCountInForcefulToolSpecification:(Ldev/langchain4j/agent/tool/ToolSpecification;)I\n+   #83 = Utf8               estimateTokenCountInForcefulToolSpecification\n+   #84 = Utf8               (Ldev/langchain4j/agent/tool/ToolSpecification;)I\n+   #85 = Class              #86           // org/assertj/core/api/WithAssertions\n+   #86 = Utf8               org/assertj/core/api/WithAssertions\n+   #87 = Utf8               Code\n+   #88 = Utf8               LineNumberTable\n+   #89 = Utf8               LocalVariableTable\n+   #90 = Utf8               this\n+   #91 = Utf8               Ldev/langchain4j/model/TokenizerTest;\n+   #92 = Utf8               test_estimateTokenCountInTools\n+   #93 = Utf8               tokenizer\n+   #94 = Utf8               Ldev/langchain4j/model/ExampleTestTokenizer;\n+   #95 = Utf8               exampleTools\n+   #96 = Utf8               Ldev/langchain4j/model/TokenizerTest$ExampleTools;\n+   #97 = Utf8               Exceptions\n+   #98 = Class              #99           // java/lang/Exception\n+   #99 = Utf8               java/lang/Exception\n+  #100 = Utf8               RuntimeVisibleAnnotations\n+  #101 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #102 = Utf8               SourceFile\n+  #103 = Utf8               TokenizerTest.java\n+  #104 = Utf8               InnerClasses\n+  #105 = Utf8               ExampleTools\n+  #106 = Utf8               Builder\n {\n   dev.langchain4j.model.TokenizerTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -130,75 +130,75 @@\n             0       5     0  this   Ldev/langchain4j/model/TokenizerTest;\n \n   public void test_estimateTokenCountInTools() throws java.lang.Exception;\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=6, locals=3, args_size=1\n-         0: new           #2                  // class dev/langchain4j/model/ExampleTestTokenizer\n+         0: new           #7                  // class dev/langchain4j/model/ExampleTestTokenizer\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/model/ExampleTestTokenizer.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/model/ExampleTestTokenizer.\"<init>\":()V\n          7: astore_1\n-         8: new           #4                  // class dev/langchain4j/model/TokenizerTest$ExampleTools\n+         8: new           #10                 // class dev/langchain4j/model/TokenizerTest$ExampleTools\n         11: dup\n-        12: invokespecial #5                  // Method dev/langchain4j/model/TokenizerTest$ExampleTools.\"<init>\":()V\n+        12: invokespecial #12                 // Method dev/langchain4j/model/TokenizerTest$ExampleTools.\"<init>\":()V\n         15: astore_2\n         16: aload_0\n         17: aload_1\n         18: aload_2\n-        19: invokevirtual #6                  // Method dev/langchain4j/model/ExampleTestTokenizer.estimateTokenCountInTools:(Ljava/lang/Object;)I\n-        22: invokevirtual #7                  // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        19: invokevirtual #13                 // Method dev/langchain4j/model/ExampleTestTokenizer.estimateTokenCountInTools:(Ljava/lang/Object;)I\n+        22: invokevirtual #17                 // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         25: bipush        6\n-        27: invokevirtual #8                  // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        27: invokevirtual #23                 // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         30: pop\n         31: aload_0\n         32: aload_1\n         33: iconst_2\n-        34: anewarray     #9                  // class java/lang/Object\n+        34: anewarray     #2                  // class java/lang/Object\n         37: dup\n         38: iconst_0\n         39: aload_2\n         40: aastore\n         41: dup\n         42: iconst_1\n         43: aload_2\n         44: aastore\n-        45: invokestatic  #10                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-        48: invokevirtual #11                 // Method dev/langchain4j/model/ExampleTestTokenizer.estimateTokenCountInTools:(Ljava/lang/Iterable;)I\n-        51: invokevirtual #7                  // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        45: invokestatic  #28                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        48: invokevirtual #34                 // Method dev/langchain4j/model/ExampleTestTokenizer.estimateTokenCountInTools:(Ljava/lang/Iterable;)I\n+        51: invokevirtual #17                 // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         54: bipush        12\n-        56: invokevirtual #8                  // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        56: invokevirtual #23                 // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         59: pop\n         60: aload_0\n         61: aload_1\n-        62: invokestatic  #12                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        65: ldc           #13                 // String id\n-        67: invokevirtual #14                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        70: ldc           #15                 // String name\n-        72: invokevirtual #16                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        75: ldc           #17                 // String foo bar baz\n-        77: invokevirtual #18                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        80: invokevirtual #19                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-        83: invokevirtual #20                 // Method dev/langchain4j/model/ExampleTestTokenizer.estimateTokenCountInForcefulToolExecutionRequest:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;)I\n-        86: invokevirtual #7                  // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        62: invokestatic  #37                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        65: ldc           #43                 // String id\n+        67: invokevirtual #45                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        70: ldc           #50                 // String name\n+        72: invokevirtual #52                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        75: ldc           #54                 // String foo bar baz\n+        77: invokevirtual #56                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        80: invokevirtual #59                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+        83: invokevirtual #63                 // Method dev/langchain4j/model/ExampleTestTokenizer.estimateTokenCountInForcefulToolExecutionRequest:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;)I\n+        86: invokevirtual #17                 // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         89: iconst_3\n-        90: invokevirtual #8                  // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        90: invokevirtual #23                 // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         93: pop\n         94: aload_0\n         95: aload_1\n-        96: ldc           #4                  // class dev/langchain4j/model/TokenizerTest$ExampleTools\n-        98: ldc           #21                 // String launchRockets\n+        96: ldc           #10                 // class dev/langchain4j/model/TokenizerTest$ExampleTools\n+        98: ldc           #67                 // String launchRockets\n        100: iconst_0\n-       101: anewarray     #22                 // class java/lang/Class\n-       104: invokevirtual #23                 // Method java/lang/Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;\n-       107: invokestatic  #24                 // Method dev/langchain4j/agent/tool/ToolSpecifications.toolSpecificationFrom:(Ljava/lang/reflect/Method;)Ldev/langchain4j/agent/tool/ToolSpecification;\n-       110: invokevirtual #25                 // Method dev/langchain4j/model/ExampleTestTokenizer.estimateTokenCountInForcefulToolSpecification:(Ldev/langchain4j/agent/tool/ToolSpecification;)I\n-       113: invokevirtual #7                  // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+       101: anewarray     #69                 // class java/lang/Class\n+       104: invokevirtual #71                 // Method java/lang/Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;\n+       107: invokestatic  #75                 // Method dev/langchain4j/agent/tool/ToolSpecifications.toolSpecificationFrom:(Ljava/lang/reflect/Method;)Ldev/langchain4j/agent/tool/ToolSpecification;\n+       110: invokevirtual #81                 // Method dev/langchain4j/model/ExampleTestTokenizer.estimateTokenCountInForcefulToolSpecification:(Ldev/langchain4j/agent/tool/ToolSpecification;)I\n+       113: invokevirtual #17                 // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n        116: iconst_3\n-       117: invokevirtual #8                  // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+       117: invokevirtual #23                 // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n        120: pop\n        121: return\n       LineNumberTable:\n         line 24: 0\n         line 26: 8\n         line 29: 16\n         line 30: 27\n@@ -221,14 +221,14 @@\n         Start  Length  Slot  Name   Signature\n             0     122     0  this   Ldev/langchain4j/model/TokenizerTest;\n             8     114     1 tokenizer   Ldev/langchain4j/model/ExampleTestTokenizer;\n            16     106     2 exampleTools   Ldev/langchain4j/model/TokenizerTest$ExampleTools;\n     Exceptions:\n       throws java.lang.Exception\n     RuntimeVisibleAnnotations:\n-      0: #45()\n+      0: #101()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"TokenizerTest.java\"\n InnerClasses:\n-  public static #28= #4 of #26;           // ExampleTools=class dev/langchain4j/model/TokenizerTest$ExampleTools of class dev/langchain4j/model/TokenizerTest\n-  public static final #91= #62 of #59;    // Builder=class dev/langchain4j/agent/tool/ToolExecutionRequest$Builder of class dev/langchain4j/agent/tool/ToolExecutionRequest\n+  public static #105= #10 of #18;         // ExampleTools=class dev/langchain4j/model/TokenizerTest$ExampleTools of class dev/langchain4j/model/TokenizerTest\n+  public static final #106= #46 of #38;   // Builder=class dev/langchain4j/agent/tool/ToolExecutionRequest$Builder of class dev/langchain4j/agent/tool/ToolExecutionRequest\n"}]}, {"source1": "dev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel.class", "source2": "dev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,86 +1,86 @@\n-  SHA-256 checksum 82f8dcc3ea3ab4230e6f818ccb1edae3358e52cbe141116041227177ce30c425\n+  SHA-256 checksum edd21f87ed4713e2906a1b158fc36d6813ae826acc2eade2b26a0f8cc8f67d32\n   Compiled from \"ChatLanguageModelTest.java\"\n public class dev.langchain4j.model.chat.ChatLanguageModelTest$UpperCaseEchoModel implements dev.langchain4j.model.chat.ChatLanguageModel\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #12                         // dev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel\n-  super_class: #13                        // java/lang/Object\n+  this_class: #45                         // dev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 2\n Constant pool:\n-   #1 = Methodref          #13.#36        // java/lang/Object.\"<init>\":()V\n-   #2 = InterfaceMethodref #37.#38        // java/util/List.size:()I\n-   #3 = InterfaceMethodref #37.#39        // java/util/List.get:(I)Ljava/lang/Object;\n-   #4 = Class              #40            // dev/langchain4j/data/message/ChatMessage\n-   #5 = Class              #41            // dev/langchain4j/model/output/Response\n-   #6 = Class              #42            // dev/langchain4j/data/message/AiMessage\n-   #7 = InterfaceMethodref #4.#43         // dev/langchain4j/data/message/ChatMessage.text:()Ljava/lang/String;\n-   #8 = Fieldref           #44.#45        // java/util/Locale.ROOT:Ljava/util/Locale;\n-   #9 = Methodref          #46.#47        // java/lang/String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;\n-  #10 = Methodref          #6.#48         // dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n-  #11 = Methodref          #5.#49         // dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n-  #12 = Class              #51            // dev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel\n-  #13 = Class              #52            // java/lang/Object\n-  #14 = Class              #53            // dev/langchain4j/model/chat/ChatLanguageModel\n-  #15 = Utf8               <init>\n-  #16 = Utf8               ()V\n-  #17 = Utf8               Code\n-  #18 = Utf8               LineNumberTable\n-  #19 = Utf8               LocalVariableTable\n-  #20 = Utf8               this\n-  #21 = Utf8               UpperCaseEchoModel\n-  #22 = Utf8               InnerClasses\n-  #23 = Utf8               Ldev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel;\n-  #24 = Utf8               generate\n-  #25 = Utf8               (Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n-  #26 = Utf8               messages\n-  #27 = Utf8               Ljava/util/List;\n-  #28 = Utf8               lastMessage\n-  #29 = Utf8               Ldev/langchain4j/data/message/ChatMessage;\n-  #30 = Utf8               LocalVariableTypeTable\n-  #31 = Utf8               Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n-  #32 = Utf8               Signature\n-  #33 = Utf8               (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n-  #34 = Utf8               SourceFile\n-  #35 = Utf8               ChatLanguageModelTest.java\n-  #36 = NameAndType        #15:#16        // \"<init>\":()V\n-  #37 = Class              #54            // java/util/List\n-  #38 = NameAndType        #55:#56        // size:()I\n-  #39 = NameAndType        #57:#58        // get:(I)Ljava/lang/Object;\n-  #40 = Utf8               dev/langchain4j/data/message/ChatMessage\n-  #41 = Utf8               dev/langchain4j/model/output/Response\n-  #42 = Utf8               dev/langchain4j/data/message/AiMessage\n-  #43 = NameAndType        #59:#60        // text:()Ljava/lang/String;\n-  #44 = Class              #61            // java/util/Locale\n-  #45 = NameAndType        #62:#63        // ROOT:Ljava/util/Locale;\n-  #46 = Class              #64            // java/lang/String\n-  #47 = NameAndType        #65:#66        // toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;\n-  #48 = NameAndType        #15:#67        // \"<init>\":(Ljava/lang/String;)V\n-  #49 = NameAndType        #15:#68        // \"<init>\":(Ljava/lang/Object;)V\n-  #50 = Class              #69            // dev/langchain4j/model/chat/ChatLanguageModelTest\n-  #51 = Utf8               dev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel\n-  #52 = Utf8               java/lang/Object\n-  #53 = Utf8               dev/langchain4j/model/chat/ChatLanguageModel\n-  #54 = Utf8               java/util/List\n-  #55 = Utf8               size\n-  #56 = Utf8               ()I\n-  #57 = Utf8               get\n-  #58 = Utf8               (I)Ljava/lang/Object;\n-  #59 = Utf8               text\n-  #60 = Utf8               ()Ljava/lang/String;\n-  #61 = Utf8               java/util/Locale\n-  #62 = Utf8               ROOT\n-  #63 = Utf8               Ljava/util/Locale;\n-  #64 = Utf8               java/lang/String\n-  #65 = Utf8               toUpperCase\n-  #66 = Utf8               (Ljava/util/Locale;)Ljava/lang/String;\n-  #67 = Utf8               (Ljava/lang/String;)V\n-  #68 = Utf8               (Ljava/lang/Object;)V\n-  #69 = Utf8               dev/langchain4j/model/chat/ChatLanguageModelTest\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = InterfaceMethodref #8.#9          // java/util/List.size:()I\n+   #8 = Class              #10            // java/util/List\n+   #9 = NameAndType        #11:#12        // size:()I\n+  #10 = Utf8               java/util/List\n+  #11 = Utf8               size\n+  #12 = Utf8               ()I\n+  #13 = InterfaceMethodref #8.#14         // java/util/List.get:(I)Ljava/lang/Object;\n+  #14 = NameAndType        #15:#16        // get:(I)Ljava/lang/Object;\n+  #15 = Utf8               get\n+  #16 = Utf8               (I)Ljava/lang/Object;\n+  #17 = Class              #18            // dev/langchain4j/data/message/ChatMessage\n+  #18 = Utf8               dev/langchain4j/data/message/ChatMessage\n+  #19 = Class              #20            // dev/langchain4j/model/output/Response\n+  #20 = Utf8               dev/langchain4j/model/output/Response\n+  #21 = Class              #22            // dev/langchain4j/data/message/AiMessage\n+  #22 = Utf8               dev/langchain4j/data/message/AiMessage\n+  #23 = InterfaceMethodref #17.#24        // dev/langchain4j/data/message/ChatMessage.text:()Ljava/lang/String;\n+  #24 = NameAndType        #25:#26        // text:()Ljava/lang/String;\n+  #25 = Utf8               text\n+  #26 = Utf8               ()Ljava/lang/String;\n+  #27 = Fieldref           #28.#29        // java/util/Locale.ROOT:Ljava/util/Locale;\n+  #28 = Class              #30            // java/util/Locale\n+  #29 = NameAndType        #31:#32        // ROOT:Ljava/util/Locale;\n+  #30 = Utf8               java/util/Locale\n+  #31 = Utf8               ROOT\n+  #32 = Utf8               Ljava/util/Locale;\n+  #33 = Methodref          #34.#35        // java/lang/String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;\n+  #34 = Class              #36            // java/lang/String\n+  #35 = NameAndType        #37:#38        // toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;\n+  #36 = Utf8               java/lang/String\n+  #37 = Utf8               toUpperCase\n+  #38 = Utf8               (Ljava/util/Locale;)Ljava/lang/String;\n+  #39 = Methodref          #21.#40        // dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n+  #40 = NameAndType        #5:#41         // \"<init>\":(Ljava/lang/String;)V\n+  #41 = Utf8               (Ljava/lang/String;)V\n+  #42 = Methodref          #19.#43        // dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n+  #43 = NameAndType        #5:#44         // \"<init>\":(Ljava/lang/Object;)V\n+  #44 = Utf8               (Ljava/lang/Object;)V\n+  #45 = Class              #46            // dev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel\n+  #46 = Utf8               dev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel\n+  #47 = Class              #48            // dev/langchain4j/model/chat/ChatLanguageModel\n+  #48 = Utf8               dev/langchain4j/model/chat/ChatLanguageModel\n+  #49 = Utf8               Code\n+  #50 = Utf8               LineNumberTable\n+  #51 = Utf8               LocalVariableTable\n+  #52 = Utf8               this\n+  #53 = Utf8               Ldev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel;\n+  #54 = Utf8               generate\n+  #55 = Utf8               (Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+  #56 = Utf8               messages\n+  #57 = Utf8               Ljava/util/List;\n+  #58 = Utf8               lastMessage\n+  #59 = Utf8               Ldev/langchain4j/data/message/ChatMessage;\n+  #60 = Utf8               LocalVariableTypeTable\n+  #61 = Utf8               Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n+  #62 = Utf8               Signature\n+  #63 = Utf8               (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n+  #64 = Utf8               SourceFile\n+  #65 = Utf8               ChatLanguageModelTest.java\n+  #66 = Utf8               InnerClasses\n+  #67 = Class              #68            // dev/langchain4j/model/chat/ChatLanguageModelTest\n+  #68 = Utf8               dev/langchain4j/model/chat/ChatLanguageModelTest\n+  #69 = Utf8               UpperCaseEchoModel\n {\n   public dev.langchain4j.model.chat.ChatLanguageModelTest$UpperCaseEchoModel();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -95,40 +95,40 @@\n   public dev.langchain4j.model.output.Response<dev.langchain4j.data.message.AiMessage> generate(java.util.List<dev.langchain4j.data.message.ChatMessage>);\n     descriptor: (Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=6, locals=3, args_size=2\n          0: aload_1\n          1: aload_1\n-         2: invokeinterface #2,  1            // InterfaceMethod java/util/List.size:()I\n+         2: invokeinterface #7,  1            // InterfaceMethod java/util/List.size:()I\n          7: iconst_1\n          8: isub\n-         9: invokeinterface #3,  2            // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;\n-        14: checkcast     #4                  // class dev/langchain4j/data/message/ChatMessage\n+         9: invokeinterface #13,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;\n+        14: checkcast     #17                 // class dev/langchain4j/data/message/ChatMessage\n         17: astore_2\n-        18: new           #5                  // class dev/langchain4j/model/output/Response\n+        18: new           #19                 // class dev/langchain4j/model/output/Response\n         21: dup\n-        22: new           #6                  // class dev/langchain4j/data/message/AiMessage\n+        22: new           #21                 // class dev/langchain4j/data/message/AiMessage\n         25: dup\n         26: aload_2\n-        27: invokeinterface #7,  1            // InterfaceMethod dev/langchain4j/data/message/ChatMessage.text:()Ljava/lang/String;\n-        32: getstatic     #8                  // Field java/util/Locale.ROOT:Ljava/util/Locale;\n-        35: invokevirtual #9                  // Method java/lang/String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;\n-        38: invokespecial #10                 // Method dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n-        41: invokespecial #11                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n+        27: invokeinterface #23,  1           // InterfaceMethod dev/langchain4j/data/message/ChatMessage.text:()Ljava/lang/String;\n+        32: getstatic     #27                 // Field java/util/Locale.ROOT:Ljava/util/Locale;\n+        35: invokevirtual #33                 // Method java/lang/String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;\n+        38: invokespecial #39                 // Method dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n+        41: invokespecial #42                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n         44: areturn\n       LineNumberTable:\n         line 19: 0\n         line 20: 18\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      45     0  this   Ldev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel;\n             0      45     1 messages   Ljava/util/List;\n            18      27     2 lastMessage   Ldev/langchain4j/data/message/ChatMessage;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0      45     1 messages   Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n-    Signature: #33                          // (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n+    Signature: #63                          // (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n }\n SourceFile: \"ChatLanguageModelTest.java\"\n InnerClasses:\n-  public static #21= #12 of #50;          // UpperCaseEchoModel=class dev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel of class dev/langchain4j/model/chat/ChatLanguageModelTest\n+  public static #69= #45 of #67;          // UpperCaseEchoModel=class dev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel of class dev/langchain4j/model/chat/ChatLanguageModelTest\n"}]}, {"source1": "dev/langchain4j/model/chat/ChatLanguageModelTest.class", "source2": "dev/langchain4j/model/chat/ChatLanguageModelTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,215 +1,215 @@\n-  SHA-256 checksum 6d6b481b6f73789f41f278da7e27afb15a09e1bdaafff68ec84eff417c8d68e8\n+  SHA-256 checksum bbc8d46b454a5d77d4beffabcfd6d721829a242c6217ed18ea95c5da698087ea\n   Compiled from \"ChatLanguageModelTest.java\"\n class dev.langchain4j.model.chat.ChatLanguageModelTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #43                         // dev/langchain4j/model/chat/ChatLanguageModelTest\n-  super_class: #44                        // java/lang/Object\n+  this_class: #16                         // dev/langchain4j/model/chat/ChatLanguageModelTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 5, attributes: 3\n Constant pool:\n-    #1 = Methodref          #44.#75       // java/lang/Object.\"<init>\":()V\n-    #2 = Class              #76           // dev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel\n-    #3 = Methodref          #2.#75        // dev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel.\"<init>\":()V\n-    #4 = Class              #77           // java/util/ArrayList\n-    #5 = Methodref          #4.#75        // java/util/ArrayList.\"<init>\":()V\n-    #6 = Class              #78           // java/lang/IllegalArgumentException\n-    #7 = Methodref          #43.#79       // dev/langchain4j/model/chat/ChatLanguageModelTest.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-    #8 = InvokeDynamic      #0:#84        // #0:call:(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-    #9 = Methodref          #85.#86       // org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #10 = String             #87           // Tools are currently not supported by this model\n-   #11 = Methodref          #88.#89       // org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #12 = InvokeDynamic      #1:#84        // #1:call:(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #13 = String             #91           // how are you?\n-   #14 = InterfaceMethodref #92.#93       // dev/langchain4j/model/chat/ChatLanguageModel.generate:(Ljava/lang/String;)Ljava/lang/String;\n-   #15 = Methodref          #43.#94       // dev/langchain4j/model/chat/ChatLanguageModelTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #16 = String             #95           // HOW ARE YOU?\n-   #17 = Methodref          #96.#97       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #18 = Class              #98           // dev/langchain4j/data/message/UserMessage\n-   #19 = String             #99           // Hello\n-   #20 = Methodref          #18.#100      // dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n-   #21 = InterfaceMethodref #101.#102     // java/util/List.add:(Ljava/lang/Object;)Z\n-   #22 = Class              #103          // dev/langchain4j/data/message/AiMessage\n-   #23 = String             #104          // Hi\n-   #24 = Methodref          #22.#100      // dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n-   #25 = String             #105          // How are you?\n-   #26 = InterfaceMethodref #92.#106      // dev/langchain4j/model/chat/ChatLanguageModel.generate:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n-   #27 = Methodref          #107.#108     // dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n-   #28 = Methodref          #22.#109      // dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n-   #29 = Methodref          #107.#110     // dev/langchain4j/model/output/Response.tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n-   #30 = Methodref          #43.#111      // dev/langchain4j/model/chat/ChatLanguageModelTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #31 = Methodref          #112.#113     // org/assertj/core/api/ObjectAssert.isNull:()V\n-   #32 = Methodref          #107.#114     // dev/langchain4j/model/output/Response.finishReason:()Ldev/langchain4j/model/output/FinishReason;\n-   #33 = Methodref          #43.#115      // dev/langchain4j/model/chat/ChatLanguageModelTest.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-   #34 = Methodref          #116.#113     // org/assertj/core/api/AbstractComparableAssert.isNull:()V\n-   #35 = Class              #117          // dev/langchain4j/data/message/ChatMessage\n-   #36 = InterfaceMethodref #92.#118      // dev/langchain4j/model/chat/ChatLanguageModel.generate:([Ldev/langchain4j/data/message/ChatMessage;)Ldev/langchain4j/model/output/Response;\n-   #37 = Methodref          #119.#120     // dev/langchain4j/agent/tool/ToolSpecification.builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-   #38 = String             #121          // foo\n-   #39 = Methodref          #122.#123     // dev/langchain4j/agent/tool/ToolSpecification$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-   #40 = Methodref          #122.#124     // dev/langchain4j/agent/tool/ToolSpecification$Builder.build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n-   #41 = InterfaceMethodref #92.#125      // dev/langchain4j/model/chat/ChatLanguageModel.generate:(Ljava/util/List;Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/langchain4j/model/output/Response;\n-   #42 = InterfaceMethodref #92.#126      // dev/langchain4j/model/chat/ChatLanguageModel.generate:(Ljava/util/List;Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n-   #43 = Class              #127          // dev/langchain4j/model/chat/ChatLanguageModelTest\n-   #44 = Class              #128          // java/lang/Object\n-   #45 = Class              #129          // org/assertj/core/api/WithAssertions\n-   #46 = Utf8               UpperCaseEchoModel\n-   #47 = Utf8               InnerClasses\n-   #48 = Utf8               <init>\n-   #49 = Utf8               ()V\n-   #50 = Utf8               Code\n-   #51 = Utf8               LineNumberTable\n-   #52 = Utf8               LocalVariableTable\n-   #53 = Utf8               this\n-   #54 = Utf8               Ldev/langchain4j/model/chat/ChatLanguageModelTest;\n-   #55 = Utf8               test_not_supported\n-   #56 = Utf8               model\n-   #57 = Utf8               Ldev/langchain4j/model/chat/ChatLanguageModel;\n-   #58 = Utf8               messages\n-   #59 = Utf8               Ljava/util/List;\n-   #60 = Utf8               LocalVariableTypeTable\n-   #61 = Utf8               Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n-   #62 = Utf8               RuntimeVisibleAnnotations\n-   #63 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #64 = Utf8               test_generate\n-   #65 = Utf8               response\n-   #66 = Utf8               Ldev/langchain4j/model/output/Response;\n-   #67 = Utf8               Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n-   #68 = Utf8               lambda$test_not_supported$1\n-   #69 = Utf8               (Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)V\n-   #70 = Utf8               Exceptions\n-   #71 = Class              #130          // java/lang/Throwable\n-   #72 = Utf8               lambda$test_not_supported$0\n-   #73 = Utf8               SourceFile\n-   #74 = Utf8               ChatLanguageModelTest.java\n-   #75 = NameAndType        #48:#49       // \"<init>\":()V\n-   #76 = Utf8               dev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel\n-   #77 = Utf8               java/util/ArrayList\n-   #78 = Utf8               java/lang/IllegalArgumentException\n-   #79 = NameAndType        #131:#132     // assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-   #80 = Utf8               BootstrapMethods\n-   #81 = MethodHandle       6:#133        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-   #82 = MethodType         #49           //  ()V\n-   #83 = MethodHandle       6:#134        // REF_invokeStatic dev/langchain4j/model/chat/ChatLanguageModelTest.lambda$test_not_supported$0:(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)V\n-   #84 = NameAndType        #135:#138     // call:(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #85 = Class              #139          // org/assertj/core/api/ThrowableTypeAssert\n-   #86 = NameAndType        #140:#141     // isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #87 = Utf8               Tools are currently not supported by this model\n-   #88 = Class              #142          // org/assertj/core/api/ThrowableAssertAlternative\n-   #89 = NameAndType        #143:#144     // withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #90 = MethodHandle       6:#145        // REF_invokeStatic dev/langchain4j/model/chat/ChatLanguageModelTest.lambda$test_not_supported$1:(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)V\n-   #91 = Utf8               how are you?\n-   #92 = Class              #146          // dev/langchain4j/model/chat/ChatLanguageModel\n-   #93 = NameAndType        #147:#148     // generate:(Ljava/lang/String;)Ljava/lang/String;\n-   #94 = NameAndType        #149:#150     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #95 = Utf8               HOW ARE YOU?\n-   #96 = Class              #151          // org/assertj/core/api/AbstractStringAssert\n-   #97 = NameAndType        #152:#150     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #98 = Utf8               dev/langchain4j/data/message/UserMessage\n-   #99 = Utf8               Hello\n-  #100 = NameAndType        #48:#153      // \"<init>\":(Ljava/lang/String;)V\n-  #101 = Class              #154          // java/util/List\n-  #102 = NameAndType        #155:#156     // add:(Ljava/lang/Object;)Z\n-  #103 = Utf8               dev/langchain4j/data/message/AiMessage\n-  #104 = Utf8               Hi\n-  #105 = Utf8               How are you?\n-  #106 = NameAndType        #147:#157     // generate:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n-  #107 = Class              #158          // dev/langchain4j/model/output/Response\n-  #108 = NameAndType        #159:#160     // content:()Ljava/lang/Object;\n-  #109 = NameAndType        #161:#162     // text:()Ljava/lang/String;\n-  #110 = NameAndType        #163:#164     // tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n-  #111 = NameAndType        #149:#165     // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #112 = Class              #166          // org/assertj/core/api/ObjectAssert\n-  #113 = NameAndType        #167:#49      // isNull:()V\n-  #114 = NameAndType        #168:#169     // finishReason:()Ldev/langchain4j/model/output/FinishReason;\n-  #115 = NameAndType        #149:#170     // assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-  #116 = Class              #171          // org/assertj/core/api/AbstractComparableAssert\n-  #117 = Utf8               dev/langchain4j/data/message/ChatMessage\n-  #118 = NameAndType        #147:#172     // generate:([Ldev/langchain4j/data/message/ChatMessage;)Ldev/langchain4j/model/output/Response;\n-  #119 = Class              #173          // dev/langchain4j/agent/tool/ToolSpecification\n-  #120 = NameAndType        #174:#176     // builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-  #121 = Utf8               foo\n-  #122 = Class              #177          // dev/langchain4j/agent/tool/ToolSpecification$Builder\n-  #123 = NameAndType        #178:#179     // name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-  #124 = NameAndType        #180:#181     // build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n-  #125 = NameAndType        #147:#182     // generate:(Ljava/util/List;Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/langchain4j/model/output/Response;\n-  #126 = NameAndType        #147:#183     // generate:(Ljava/util/List;Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n-  #127 = Utf8               dev/langchain4j/model/chat/ChatLanguageModelTest\n-  #128 = Utf8               java/lang/Object\n-  #129 = Utf8               org/assertj/core/api/WithAssertions\n-  #130 = Utf8               java/lang/Throwable\n-  #131 = Utf8               assertThatExceptionOfType\n-  #132 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-  #133 = Methodref          #184.#185     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #134 = Methodref          #43.#186      // dev/langchain4j/model/chat/ChatLanguageModelTest.lambda$test_not_supported$0:(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)V\n-  #135 = Utf8               call\n-  #136 = Class              #188          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #137 = Utf8               ThrowingCallable\n-  #138 = Utf8               (Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-  #139 = Utf8               org/assertj/core/api/ThrowableTypeAssert\n-  #140 = Utf8               isThrownBy\n-  #141 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #142 = Utf8               org/assertj/core/api/ThrowableAssertAlternative\n-  #143 = Utf8               withMessageContaining\n-  #144 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #145 = Methodref          #43.#189      // dev/langchain4j/model/chat/ChatLanguageModelTest.lambda$test_not_supported$1:(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)V\n-  #146 = Utf8               dev/langchain4j/model/chat/ChatLanguageModel\n-  #147 = Utf8               generate\n-  #148 = Utf8               (Ljava/lang/String;)Ljava/lang/String;\n-  #149 = Utf8               assertThat\n-  #150 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #151 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #152 = Utf8               isEqualTo\n-  #153 = Utf8               (Ljava/lang/String;)V\n-  #154 = Utf8               java/util/List\n-  #155 = Utf8               add\n-  #156 = Utf8               (Ljava/lang/Object;)Z\n-  #157 = Utf8               (Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n-  #158 = Utf8               dev/langchain4j/model/output/Response\n-  #159 = Utf8               content\n-  #160 = Utf8               ()Ljava/lang/Object;\n-  #161 = Utf8               text\n-  #162 = Utf8               ()Ljava/lang/String;\n-  #163 = Utf8               tokenUsage\n-  #164 = Utf8               ()Ldev/langchain4j/model/output/TokenUsage;\n-  #165 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #166 = Utf8               org/assertj/core/api/ObjectAssert\n-  #167 = Utf8               isNull\n-  #168 = Utf8               finishReason\n-  #169 = Utf8               ()Ldev/langchain4j/model/output/FinishReason;\n-  #170 = Utf8               (Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-  #171 = Utf8               org/assertj/core/api/AbstractComparableAssert\n-  #172 = Utf8               ([Ldev/langchain4j/data/message/ChatMessage;)Ldev/langchain4j/model/output/Response;\n-  #173 = Utf8               dev/langchain4j/agent/tool/ToolSpecification\n-  #174 = Utf8               builder\n-  #175 = Utf8               Builder\n-  #176 = Utf8               ()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-  #177 = Utf8               dev/langchain4j/agent/tool/ToolSpecification$Builder\n-  #178 = Utf8               name\n-  #179 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-  #180 = Utf8               build\n-  #181 = Utf8               ()Ldev/langchain4j/agent/tool/ToolSpecification;\n-  #182 = Utf8               (Ljava/util/List;Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/langchain4j/model/output/Response;\n-  #183 = Utf8               (Ljava/util/List;Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n-  #184 = Class              #190          // java/lang/invoke/LambdaMetafactory\n-  #185 = NameAndType        #191:#194     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #186 = NameAndType        #72:#69       // lambda$test_not_supported$0:(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)V\n-  #187 = Class              #195          // org/assertj/core/api/ThrowableAssert\n-  #188 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #189 = NameAndType        #68:#69       // lambda$test_not_supported$1:(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)V\n-  #190 = Utf8               java/lang/invoke/LambdaMetafactory\n-  #191 = Utf8               metafactory\n-  #192 = Class              #197          // java/lang/invoke/MethodHandles$Lookup\n-  #193 = Utf8               Lookup\n-  #194 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #195 = Utf8               org/assertj/core/api/ThrowableAssert\n-  #196 = Class              #198          // java/lang/invoke/MethodHandles\n-  #197 = Utf8               java/lang/invoke/MethodHandles$Lookup\n-  #198 = Utf8               java/lang/invoke/MethodHandles\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Class              #8            // dev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel\n+    #8 = Utf8               dev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel\n+    #9 = Methodref          #7.#3         // dev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel.\"<init>\":()V\n+   #10 = Class              #11           // java/util/ArrayList\n+   #11 = Utf8               java/util/ArrayList\n+   #12 = Methodref          #10.#3        // java/util/ArrayList.\"<init>\":()V\n+   #13 = Class              #14           // java/lang/IllegalArgumentException\n+   #14 = Utf8               java/lang/IllegalArgumentException\n+   #15 = Methodref          #16.#17       // dev/langchain4j/model/chat/ChatLanguageModelTest.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #16 = Class              #18           // dev/langchain4j/model/chat/ChatLanguageModelTest\n+   #17 = NameAndType        #19:#20       // assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #18 = Utf8               dev/langchain4j/model/chat/ChatLanguageModelTest\n+   #19 = Utf8               assertThatExceptionOfType\n+   #20 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #21 = InvokeDynamic      #0:#22        // #0:call:(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #22 = NameAndType        #23:#24       // call:(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #23 = Utf8               call\n+   #24 = Utf8               (Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #25 = Methodref          #26.#27       // org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #26 = Class              #28           // org/assertj/core/api/ThrowableTypeAssert\n+   #27 = NameAndType        #29:#30       // isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #28 = Utf8               org/assertj/core/api/ThrowableTypeAssert\n+   #29 = Utf8               isThrownBy\n+   #30 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #31 = String             #32           // Tools are currently not supported by this model\n+   #32 = Utf8               Tools are currently not supported by this model\n+   #33 = Methodref          #34.#35       // org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #34 = Class              #36           // org/assertj/core/api/ThrowableAssertAlternative\n+   #35 = NameAndType        #37:#38       // withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #36 = Utf8               org/assertj/core/api/ThrowableAssertAlternative\n+   #37 = Utf8               withMessageContaining\n+   #38 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #39 = InvokeDynamic      #1:#22        // #1:call:(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #40 = String             #41           // how are you?\n+   #41 = Utf8               how are you?\n+   #42 = InterfaceMethodref #43.#44       // dev/langchain4j/model/chat/ChatLanguageModel.generate:(Ljava/lang/String;)Ljava/lang/String;\n+   #43 = Class              #45           // dev/langchain4j/model/chat/ChatLanguageModel\n+   #44 = NameAndType        #46:#47       // generate:(Ljava/lang/String;)Ljava/lang/String;\n+   #45 = Utf8               dev/langchain4j/model/chat/ChatLanguageModel\n+   #46 = Utf8               generate\n+   #47 = Utf8               (Ljava/lang/String;)Ljava/lang/String;\n+   #48 = Methodref          #16.#49       // dev/langchain4j/model/chat/ChatLanguageModelTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #49 = NameAndType        #50:#51       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #50 = Utf8               assertThat\n+   #51 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #52 = String             #53           // HOW ARE YOU?\n+   #53 = Utf8               HOW ARE YOU?\n+   #54 = Methodref          #55.#56       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #55 = Class              #57           // org/assertj/core/api/AbstractStringAssert\n+   #56 = NameAndType        #58:#51       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #57 = Utf8               org/assertj/core/api/AbstractStringAssert\n+   #58 = Utf8               isEqualTo\n+   #59 = Class              #60           // dev/langchain4j/data/message/UserMessage\n+   #60 = Utf8               dev/langchain4j/data/message/UserMessage\n+   #61 = String             #62           // Hello\n+   #62 = Utf8               Hello\n+   #63 = Methodref          #59.#64       // dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n+   #64 = NameAndType        #5:#65        // \"<init>\":(Ljava/lang/String;)V\n+   #65 = Utf8               (Ljava/lang/String;)V\n+   #66 = InterfaceMethodref #67.#68       // java/util/List.add:(Ljava/lang/Object;)Z\n+   #67 = Class              #69           // java/util/List\n+   #68 = NameAndType        #70:#71       // add:(Ljava/lang/Object;)Z\n+   #69 = Utf8               java/util/List\n+   #70 = Utf8               add\n+   #71 = Utf8               (Ljava/lang/Object;)Z\n+   #72 = Class              #73           // dev/langchain4j/data/message/AiMessage\n+   #73 = Utf8               dev/langchain4j/data/message/AiMessage\n+   #74 = String             #75           // Hi\n+   #75 = Utf8               Hi\n+   #76 = Methodref          #72.#64       // dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n+   #77 = String             #78           // How are you?\n+   #78 = Utf8               How are you?\n+   #79 = InterfaceMethodref #43.#80       // dev/langchain4j/model/chat/ChatLanguageModel.generate:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+   #80 = NameAndType        #46:#81       // generate:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+   #81 = Utf8               (Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+   #82 = Methodref          #83.#84       // dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n+   #83 = Class              #85           // dev/langchain4j/model/output/Response\n+   #84 = NameAndType        #86:#87       // content:()Ljava/lang/Object;\n+   #85 = Utf8               dev/langchain4j/model/output/Response\n+   #86 = Utf8               content\n+   #87 = Utf8               ()Ljava/lang/Object;\n+   #88 = Methodref          #72.#89       // dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n+   #89 = NameAndType        #90:#91       // text:()Ljava/lang/String;\n+   #90 = Utf8               text\n+   #91 = Utf8               ()Ljava/lang/String;\n+   #92 = Methodref          #83.#93       // dev/langchain4j/model/output/Response.tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n+   #93 = NameAndType        #94:#95       // tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n+   #94 = Utf8               tokenUsage\n+   #95 = Utf8               ()Ldev/langchain4j/model/output/TokenUsage;\n+   #96 = Methodref          #16.#97       // dev/langchain4j/model/chat/ChatLanguageModelTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #97 = NameAndType        #50:#98       // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #98 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #99 = Methodref          #100.#101     // org/assertj/core/api/ObjectAssert.isNull:()V\n+  #100 = Class              #102          // org/assertj/core/api/ObjectAssert\n+  #101 = NameAndType        #103:#6       // isNull:()V\n+  #102 = Utf8               org/assertj/core/api/ObjectAssert\n+  #103 = Utf8               isNull\n+  #104 = Methodref          #83.#105      // dev/langchain4j/model/output/Response.finishReason:()Ldev/langchain4j/model/output/FinishReason;\n+  #105 = NameAndType        #106:#107     // finishReason:()Ldev/langchain4j/model/output/FinishReason;\n+  #106 = Utf8               finishReason\n+  #107 = Utf8               ()Ldev/langchain4j/model/output/FinishReason;\n+  #108 = Methodref          #16.#109      // dev/langchain4j/model/chat/ChatLanguageModelTest.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+  #109 = NameAndType        #50:#110      // assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+  #110 = Utf8               (Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+  #111 = Methodref          #112.#101     // org/assertj/core/api/AbstractComparableAssert.isNull:()V\n+  #112 = Class              #113          // org/assertj/core/api/AbstractComparableAssert\n+  #113 = Utf8               org/assertj/core/api/AbstractComparableAssert\n+  #114 = Class              #115          // dev/langchain4j/data/message/ChatMessage\n+  #115 = Utf8               dev/langchain4j/data/message/ChatMessage\n+  #116 = InterfaceMethodref #43.#117      // dev/langchain4j/model/chat/ChatLanguageModel.generate:([Ldev/langchain4j/data/message/ChatMessage;)Ldev/langchain4j/model/output/Response;\n+  #117 = NameAndType        #46:#118      // generate:([Ldev/langchain4j/data/message/ChatMessage;)Ldev/langchain4j/model/output/Response;\n+  #118 = Utf8               ([Ldev/langchain4j/data/message/ChatMessage;)Ldev/langchain4j/model/output/Response;\n+  #119 = Methodref          #120.#121     // dev/langchain4j/agent/tool/ToolSpecification.builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+  #120 = Class              #122          // dev/langchain4j/agent/tool/ToolSpecification\n+  #121 = NameAndType        #123:#124     // builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+  #122 = Utf8               dev/langchain4j/agent/tool/ToolSpecification\n+  #123 = Utf8               builder\n+  #124 = Utf8               ()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+  #125 = String             #126          // foo\n+  #126 = Utf8               foo\n+  #127 = Methodref          #128.#129     // dev/langchain4j/agent/tool/ToolSpecification$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+  #128 = Class              #130          // dev/langchain4j/agent/tool/ToolSpecification$Builder\n+  #129 = NameAndType        #131:#132     // name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+  #130 = Utf8               dev/langchain4j/agent/tool/ToolSpecification$Builder\n+  #131 = Utf8               name\n+  #132 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+  #133 = Methodref          #128.#134     // dev/langchain4j/agent/tool/ToolSpecification$Builder.build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n+  #134 = NameAndType        #135:#136     // build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n+  #135 = Utf8               build\n+  #136 = Utf8               ()Ldev/langchain4j/agent/tool/ToolSpecification;\n+  #137 = InterfaceMethodref #43.#138      // dev/langchain4j/model/chat/ChatLanguageModel.generate:(Ljava/util/List;Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/langchain4j/model/output/Response;\n+  #138 = NameAndType        #46:#139      // generate:(Ljava/util/List;Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/langchain4j/model/output/Response;\n+  #139 = Utf8               (Ljava/util/List;Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/langchain4j/model/output/Response;\n+  #140 = InterfaceMethodref #43.#141      // dev/langchain4j/model/chat/ChatLanguageModel.generate:(Ljava/util/List;Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+  #141 = NameAndType        #46:#142      // generate:(Ljava/util/List;Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+  #142 = Utf8               (Ljava/util/List;Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+  #143 = Class              #144          // org/assertj/core/api/WithAssertions\n+  #144 = Utf8               org/assertj/core/api/WithAssertions\n+  #145 = Utf8               Code\n+  #146 = Utf8               LineNumberTable\n+  #147 = Utf8               LocalVariableTable\n+  #148 = Utf8               this\n+  #149 = Utf8               Ldev/langchain4j/model/chat/ChatLanguageModelTest;\n+  #150 = Utf8               test_not_supported\n+  #151 = Utf8               model\n+  #152 = Utf8               Ldev/langchain4j/model/chat/ChatLanguageModel;\n+  #153 = Utf8               messages\n+  #154 = Utf8               Ljava/util/List;\n+  #155 = Utf8               LocalVariableTypeTable\n+  #156 = Utf8               Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n+  #157 = Utf8               RuntimeVisibleAnnotations\n+  #158 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #159 = Utf8               test_generate\n+  #160 = Utf8               response\n+  #161 = Utf8               Ldev/langchain4j/model/output/Response;\n+  #162 = Utf8               Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n+  #163 = Utf8               lambda$test_not_supported$1\n+  #164 = Utf8               (Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)V\n+  #165 = Utf8               Exceptions\n+  #166 = Class              #167          // java/lang/Throwable\n+  #167 = Utf8               java/lang/Throwable\n+  #168 = Utf8               lambda$test_not_supported$0\n+  #169 = Utf8               SourceFile\n+  #170 = Utf8               ChatLanguageModelTest.java\n+  #171 = Utf8               BootstrapMethods\n+  #172 = MethodHandle       6:#173        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #173 = Methodref          #174.#175     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #174 = Class              #176          // java/lang/invoke/LambdaMetafactory\n+  #175 = NameAndType        #177:#178     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #176 = Utf8               java/lang/invoke/LambdaMetafactory\n+  #177 = Utf8               metafactory\n+  #178 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #179 = MethodType         #6            //  ()V\n+  #180 = MethodHandle       6:#181        // REF_invokeStatic dev/langchain4j/model/chat/ChatLanguageModelTest.lambda$test_not_supported$0:(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)V\n+  #181 = Methodref          #16.#182      // dev/langchain4j/model/chat/ChatLanguageModelTest.lambda$test_not_supported$0:(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)V\n+  #182 = NameAndType        #168:#164     // lambda$test_not_supported$0:(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)V\n+  #183 = MethodHandle       6:#184        // REF_invokeStatic dev/langchain4j/model/chat/ChatLanguageModelTest.lambda$test_not_supported$1:(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)V\n+  #184 = Methodref          #16.#185      // dev/langchain4j/model/chat/ChatLanguageModelTest.lambda$test_not_supported$1:(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)V\n+  #185 = NameAndType        #163:#164     // lambda$test_not_supported$1:(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)V\n+  #186 = Utf8               InnerClasses\n+  #187 = Utf8               UpperCaseEchoModel\n+  #188 = Class              #189          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n+  #189 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n+  #190 = Class              #191          // org/assertj/core/api/ThrowableAssert\n+  #191 = Utf8               org/assertj/core/api/ThrowableAssert\n+  #192 = Utf8               ThrowingCallable\n+  #193 = Utf8               Builder\n+  #194 = Class              #195          // java/lang/invoke/MethodHandles$Lookup\n+  #195 = Utf8               java/lang/invoke/MethodHandles$Lookup\n+  #196 = Class              #197          // java/lang/invoke/MethodHandles\n+  #197 = Utf8               java/lang/invoke/MethodHandles\n+  #198 = Utf8               Lookup\n {\n   dev.langchain4j.model.chat.ChatLanguageModelTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -222,41 +222,41 @@\n             0       5     0  this   Ldev/langchain4j/model/chat/ChatLanguageModelTest;\n \n   public void test_not_supported();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=3, args_size=1\n-         0: new           #2                  // class dev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel\n+         0: new           #7                  // class dev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel.\"<init>\":()V\n          7: astore_1\n-         8: new           #4                  // class java/util/ArrayList\n+         8: new           #10                 // class java/util/ArrayList\n         11: dup\n-        12: invokespecial #5                  // Method java/util/ArrayList.\"<init>\":()V\n+        12: invokespecial #12                 // Method java/util/ArrayList.\"<init>\":()V\n         15: astore_2\n         16: aload_0\n-        17: ldc           #6                  // class java/lang/IllegalArgumentException\n-        19: invokevirtual #7                  // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+        17: ldc           #13                 // class java/lang/IllegalArgumentException\n+        19: invokevirtual #15                 // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n         22: aload_1\n         23: aload_2\n-        24: invokedynamic #8,  0              // InvokeDynamic #0:call:(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-        29: invokevirtual #9                  // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-        32: ldc           #10                 // String Tools are currently not supported by this model\n-        34: invokevirtual #11                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        24: invokedynamic #21,  0             // InvokeDynamic #0:call:(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+        29: invokevirtual #25                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        32: ldc           #31                 // String Tools are currently not supported by this model\n+        34: invokevirtual #33                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n         37: pop\n         38: aload_0\n-        39: ldc           #6                  // class java/lang/IllegalArgumentException\n-        41: invokevirtual #7                  // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+        39: ldc           #13                 // class java/lang/IllegalArgumentException\n+        41: invokevirtual #15                 // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n         44: aload_1\n         45: aload_2\n-        46: invokedynamic #12,  0             // InvokeDynamic #1:call:(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-        51: invokevirtual #9                  // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-        54: ldc           #10                 // String Tools are currently not supported by this model\n-        56: invokevirtual #11                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        46: invokedynamic #39,  0             // InvokeDynamic #1:call:(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+        51: invokevirtual #25                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        54: ldc           #31                 // String Tools are currently not supported by this model\n+        56: invokevirtual #33                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n         59: pop\n         60: return\n       LineNumberTable:\n         line 26: 0\n         line 28: 8\n         line 30: 16\n         line 31: 29\n@@ -270,127 +270,127 @@\n             0      61     0  this   Ldev/langchain4j/model/chat/ChatLanguageModelTest;\n             8      53     1 model   Ldev/langchain4j/model/chat/ChatLanguageModel;\n            16      45     2 messages   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            16      45     2 messages   Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n     RuntimeVisibleAnnotations:\n-      0: #63()\n+      0: #158()\n         org.junit.jupiter.api.Test\n \n   public void test_generate();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=7, locals=4, args_size=1\n-         0: new           #2                  // class dev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel\n+         0: new           #7                  // class dev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel.\"<init>\":()V\n          7: astore_1\n          8: aload_0\n          9: aload_1\n-        10: ldc           #13                 // String how are you?\n-        12: invokeinterface #14,  2           // InterfaceMethod dev/langchain4j/model/chat/ChatLanguageModel.generate:(Ljava/lang/String;)Ljava/lang/String;\n-        17: invokevirtual #15                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        20: ldc           #16                 // String HOW ARE YOU?\n-        22: invokevirtual #17                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        10: ldc           #40                 // String how are you?\n+        12: invokeinterface #42,  2           // InterfaceMethod dev/langchain4j/model/chat/ChatLanguageModel.generate:(Ljava/lang/String;)Ljava/lang/String;\n+        17: invokevirtual #48                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        20: ldc           #52                 // String HOW ARE YOU?\n+        22: invokevirtual #54                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         25: pop\n-        26: new           #4                  // class java/util/ArrayList\n+        26: new           #10                 // class java/util/ArrayList\n         29: dup\n-        30: invokespecial #5                  // Method java/util/ArrayList.\"<init>\":()V\n+        30: invokespecial #12                 // Method java/util/ArrayList.\"<init>\":()V\n         33: astore_2\n         34: aload_2\n-        35: new           #18                 // class dev/langchain4j/data/message/UserMessage\n+        35: new           #59                 // class dev/langchain4j/data/message/UserMessage\n         38: dup\n-        39: ldc           #19                 // String Hello\n-        41: invokespecial #20                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n-        44: invokeinterface #21,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n+        39: ldc           #61                 // String Hello\n+        41: invokespecial #63                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n+        44: invokeinterface #66,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n         49: pop\n         50: aload_2\n-        51: new           #22                 // class dev/langchain4j/data/message/AiMessage\n+        51: new           #72                 // class dev/langchain4j/data/message/AiMessage\n         54: dup\n-        55: ldc           #23                 // String Hi\n-        57: invokespecial #24                 // Method dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n-        60: invokeinterface #21,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n+        55: ldc           #74                 // String Hi\n+        57: invokespecial #76                 // Method dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n+        60: invokeinterface #66,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n         65: pop\n         66: aload_2\n-        67: new           #18                 // class dev/langchain4j/data/message/UserMessage\n+        67: new           #59                 // class dev/langchain4j/data/message/UserMessage\n         70: dup\n-        71: ldc           #25                 // String How are you?\n-        73: invokespecial #20                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n-        76: invokeinterface #21,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n+        71: ldc           #77                 // String How are you?\n+        73: invokespecial #63                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n+        76: invokeinterface #66,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n         81: pop\n         82: aload_1\n         83: aload_2\n-        84: invokeinterface #26,  2           // InterfaceMethod dev/langchain4j/model/chat/ChatLanguageModel.generate:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+        84: invokeinterface #79,  2           // InterfaceMethod dev/langchain4j/model/chat/ChatLanguageModel.generate:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n         89: astore_3\n         90: aload_0\n         91: aload_3\n-        92: invokevirtual #27                 // Method dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n-        95: checkcast     #22                 // class dev/langchain4j/data/message/AiMessage\n-        98: invokevirtual #28                 // Method dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n-       101: invokevirtual #15                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       104: ldc           #16                 // String HOW ARE YOU?\n-       106: invokevirtual #17                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        92: invokevirtual #82                 // Method dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n+        95: checkcast     #72                 // class dev/langchain4j/data/message/AiMessage\n+        98: invokevirtual #88                 // Method dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n+       101: invokevirtual #48                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       104: ldc           #52                 // String HOW ARE YOU?\n+       106: invokevirtual #54                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n        109: pop\n        110: aload_0\n        111: aload_3\n-       112: invokevirtual #29                 // Method dev/langchain4j/model/output/Response.tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n-       115: invokevirtual #30                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-       118: invokevirtual #31                 // Method org/assertj/core/api/ObjectAssert.isNull:()V\n+       112: invokevirtual #92                 // Method dev/langchain4j/model/output/Response.tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n+       115: invokevirtual #96                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       118: invokevirtual #99                 // Method org/assertj/core/api/ObjectAssert.isNull:()V\n        121: aload_0\n        122: aload_3\n-       123: invokevirtual #32                 // Method dev/langchain4j/model/output/Response.finishReason:()Ldev/langchain4j/model/output/FinishReason;\n-       126: invokevirtual #33                 // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-       129: invokevirtual #34                 // Method org/assertj/core/api/AbstractComparableAssert.isNull:()V\n+       123: invokevirtual #104                // Method dev/langchain4j/model/output/Response.finishReason:()Ldev/langchain4j/model/output/FinishReason;\n+       126: invokevirtual #108                // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+       129: invokevirtual #111                // Method org/assertj/core/api/AbstractComparableAssert.isNull:()V\n        132: aload_1\n        133: iconst_3\n-       134: anewarray     #35                 // class dev/langchain4j/data/message/ChatMessage\n+       134: anewarray     #114                // class dev/langchain4j/data/message/ChatMessage\n        137: dup\n        138: iconst_0\n-       139: new           #18                 // class dev/langchain4j/data/message/UserMessage\n+       139: new           #59                 // class dev/langchain4j/data/message/UserMessage\n        142: dup\n-       143: ldc           #19                 // String Hello\n-       145: invokespecial #20                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n+       143: ldc           #61                 // String Hello\n+       145: invokespecial #63                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n        148: aastore\n        149: dup\n        150: iconst_1\n-       151: new           #22                 // class dev/langchain4j/data/message/AiMessage\n+       151: new           #72                 // class dev/langchain4j/data/message/AiMessage\n        154: dup\n-       155: ldc           #23                 // String Hi\n-       157: invokespecial #24                 // Method dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n+       155: ldc           #74                 // String Hi\n+       157: invokespecial #76                 // Method dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n        160: aastore\n        161: dup\n        162: iconst_2\n-       163: new           #18                 // class dev/langchain4j/data/message/UserMessage\n+       163: new           #59                 // class dev/langchain4j/data/message/UserMessage\n        166: dup\n-       167: ldc           #25                 // String How are you?\n-       169: invokespecial #20                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n+       167: ldc           #77                 // String How are you?\n+       169: invokespecial #63                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n        172: aastore\n-       173: invokeinterface #36,  2           // InterfaceMethod dev/langchain4j/model/chat/ChatLanguageModel.generate:([Ldev/langchain4j/data/message/ChatMessage;)Ldev/langchain4j/model/output/Response;\n+       173: invokeinterface #116,  2          // InterfaceMethod dev/langchain4j/model/chat/ChatLanguageModel.generate:([Ldev/langchain4j/data/message/ChatMessage;)Ldev/langchain4j/model/output/Response;\n        178: astore_2\n        179: aload_0\n        180: aload_2\n-       181: invokevirtual #27                 // Method dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n-       184: checkcast     #22                 // class dev/langchain4j/data/message/AiMessage\n-       187: invokevirtual #28                 // Method dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n-       190: invokevirtual #15                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       193: ldc           #16                 // String HOW ARE YOU?\n-       195: invokevirtual #17                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       181: invokevirtual #82                 // Method dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n+       184: checkcast     #72                 // class dev/langchain4j/data/message/AiMessage\n+       187: invokevirtual #88                 // Method dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n+       190: invokevirtual #48                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       193: ldc           #52                 // String HOW ARE YOU?\n+       195: invokevirtual #54                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n        198: pop\n        199: aload_0\n        200: aload_2\n-       201: invokevirtual #29                 // Method dev/langchain4j/model/output/Response.tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n-       204: invokevirtual #30                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-       207: invokevirtual #31                 // Method org/assertj/core/api/ObjectAssert.isNull:()V\n+       201: invokevirtual #92                 // Method dev/langchain4j/model/output/Response.tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n+       204: invokevirtual #96                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       207: invokevirtual #99                 // Method org/assertj/core/api/ObjectAssert.isNull:()V\n        210: aload_0\n        211: aload_2\n-       212: invokevirtual #32                 // Method dev/langchain4j/model/output/Response.finishReason:()Ldev/langchain4j/model/output/FinishReason;\n-       215: invokevirtual #33                 // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-       218: invokevirtual #34                 // Method org/assertj/core/api/AbstractComparableAssert.isNull:()V\n+       212: invokevirtual #104                // Method dev/langchain4j/model/output/Response.finishReason:()Ldev/langchain4j/model/output/FinishReason;\n+       215: invokevirtual #108                // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+       218: invokevirtual #111                // Method org/assertj/core/api/AbstractComparableAssert.isNull:()V\n        221: return\n       LineNumberTable:\n         line 41: 0\n         line 43: 8\n         line 44: 22\n         line 47: 26\n         line 48: 34\n@@ -414,29 +414,29 @@\n             8     214     1 model   Ldev/langchain4j/model/chat/ChatLanguageModel;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            34      98     2 messages   Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n            90      42     3 response   Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n           179      42     2 response   Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n     RuntimeVisibleAnnotations:\n-      0: #63()\n+      0: #158()\n         org.junit.jupiter.api.Test\n \n   private static void lambda$test_not_supported$1(dev.langchain4j.model.chat.ChatLanguageModel, java.util.List) throws java.lang.Throwable;\n     descriptor: (Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)V\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=4, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: invokestatic  #37                 // Method dev/langchain4j/agent/tool/ToolSpecification.builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-         5: ldc           #38                 // String foo\n-         7: invokevirtual #39                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-        10: invokevirtual #40                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n-        13: invokeinterface #41,  3           // InterfaceMethod dev/langchain4j/model/chat/ChatLanguageModel.generate:(Ljava/util/List;Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/langchain4j/model/output/Response;\n+         2: invokestatic  #119                // Method dev/langchain4j/agent/tool/ToolSpecification.builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+         5: ldc           #125                // String foo\n+         7: invokevirtual #127                // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+        10: invokevirtual #133                // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n+        13: invokeinterface #137,  3          // InterfaceMethod dev/langchain4j/model/chat/ChatLanguageModel.generate:(Ljava/util/List;Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/langchain4j/model/output/Response;\n         18: pop\n         19: return\n       LineNumberTable:\n         line 35: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      20     0 model   Ldev/langchain4j/model/chat/ChatLanguageModel;\n@@ -447,39 +447,39 @@\n   private static void lambda$test_not_supported$0(dev.langchain4j.model.chat.ChatLanguageModel, java.util.List) throws java.lang.Throwable;\n     descriptor: (Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)V\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=4, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: new           #4                  // class java/util/ArrayList\n+         2: new           #10                 // class java/util/ArrayList\n          5: dup\n-         6: invokespecial #5                  // Method java/util/ArrayList.\"<init>\":()V\n-         9: invokeinterface #42,  3           // InterfaceMethod dev/langchain4j/model/chat/ChatLanguageModel.generate:(Ljava/util/List;Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+         6: invokespecial #12                 // Method java/util/ArrayList.\"<init>\":()V\n+         9: invokeinterface #140,  3          // InterfaceMethod dev/langchain4j/model/chat/ChatLanguageModel.generate:(Ljava/util/List;Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n         14: pop\n         15: return\n       LineNumberTable:\n         line 31: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      16     0 model   Ldev/langchain4j/model/chat/ChatLanguageModel;\n             0      16     1 messages   Ljava/util/List;\n     Exceptions:\n       throws java.lang.Throwable\n }\n SourceFile: \"ChatLanguageModelTest.java\"\n-InnerClasses:\n-  public static #46= #2 of #43;           // UpperCaseEchoModel=class dev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel of class dev/langchain4j/model/chat/ChatLanguageModelTest\n-  public static #137= #136 of #187;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n-  public static final #175= #122 of #119; // Builder=class dev/langchain4j/agent/tool/ToolSpecification$Builder of class dev/langchain4j/agent/tool/ToolSpecification\n-  public static final #193= #192 of #196; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n BootstrapMethods:\n-  0: #81 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  0: #172 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #82 ()V\n-      #83 REF_invokeStatic dev/langchain4j/model/chat/ChatLanguageModelTest.lambda$test_not_supported$0:(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)V\n-      #82 ()V\n-  1: #81 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #179 ()V\n+      #180 REF_invokeStatic dev/langchain4j/model/chat/ChatLanguageModelTest.lambda$test_not_supported$0:(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)V\n+      #179 ()V\n+  1: #172 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #82 ()V\n-      #90 REF_invokeStatic dev/langchain4j/model/chat/ChatLanguageModelTest.lambda$test_not_supported$1:(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)V\n-      #82 ()V\n+      #179 ()V\n+      #183 REF_invokeStatic dev/langchain4j/model/chat/ChatLanguageModelTest.lambda$test_not_supported$1:(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)V\n+      #179 ()V\n+InnerClasses:\n+  public static #187= #7 of #16;          // UpperCaseEchoModel=class dev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel of class dev/langchain4j/model/chat/ChatLanguageModelTest\n+  public static #192= #188 of #190;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n+  public static final #193= #128 of #120; // Builder=class dev/langchain4j/agent/tool/ToolSpecification$Builder of class dev/langchain4j/agent/tool/ToolSpecification\n+  public static final #198= #194 of #196; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n"}]}, {"source1": "dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler.class", "source2": "dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,90 +1,90 @@\n-  SHA-256 checksum b3a0490e1ce637fa6c65047f1df2805d5ded1307c135270996db324fd3ed1a5a\n+  SHA-256 checksum b542f463b9526866cdc1487f52be8f3a777a36cb305d8c870fd8886b3f03391a\n   Compiled from \"StreamingChatLanguageModelTest.java\"\n public final class dev.langchain4j.model.chat.StreamingChatLanguageModelTest$CollectorResponseHandler<T extends java.lang.Object> extends java.lang.Object implements dev.langchain4j.model.StreamingResponseHandler<T>\n   minor version: 0\n   major version: 52\n   flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER\n-  this_class: #6                          // dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler\n-  super_class: #7                         // java/lang/Object\n+  this_class: #11                         // dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 1, methods: 5, attributes: 3\n Constant pool:\n-   #1 = Methodref          #7.#43         // java/lang/Object.\"<init>\":()V\n-   #2 = Class              #44            // java/util/ArrayList\n-   #3 = Methodref          #2.#43         // java/util/ArrayList.\"<init>\":()V\n-   #4 = Fieldref           #6.#45         // dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler.responses:Ljava/util/List;\n-   #5 = InterfaceMethodref #46.#47        // java/util/List.add:(Ljava/lang/Object;)Z\n-   #6 = Class              #49            // dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler\n-   #7 = Class              #50            // java/lang/Object\n-   #8 = Class              #51            // dev/langchain4j/model/StreamingResponseHandler\n-   #9 = Utf8               responses\n-  #10 = Utf8               Ljava/util/List;\n-  #11 = Utf8               Signature\n-  #12 = Utf8               Ljava/util/List<Ldev/langchain4j/model/output/Response<TT;>;>;\n-  #13 = Utf8               <init>\n-  #14 = Utf8               ()V\n-  #15 = Utf8               Code\n-  #16 = Utf8               LineNumberTable\n-  #17 = Utf8               LocalVariableTable\n-  #18 = Utf8               this\n-  #19 = Utf8               CollectorResponseHandler\n-  #20 = Utf8               InnerClasses\n-  #21 = Utf8               Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;\n-  #22 = Utf8               LocalVariableTypeTable\n-  #23 = Utf8               Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler<TT;>;\n-  #24 = Utf8               ()Ljava/util/List;\n-  #25 = Utf8               ()Ljava/util/List<Ldev/langchain4j/model/output/Response<TT;>;>;\n-  #26 = Utf8               onNext\n-  #27 = Utf8               (Ljava/lang/String;)V\n-  #28 = Utf8               token\n-  #29 = Utf8               Ljava/lang/String;\n-  #30 = Utf8               onError\n-  #31 = Utf8               (Ljava/lang/Throwable;)V\n-  #32 = Utf8               error\n-  #33 = Utf8               Ljava/lang/Throwable;\n-  #34 = Utf8               onComplete\n-  #35 = Utf8               (Ldev/langchain4j/model/output/Response;)V\n-  #36 = Utf8               response\n-  #37 = Utf8               Ldev/langchain4j/model/output/Response;\n-  #38 = Utf8               Ldev/langchain4j/model/output/Response<TT;>;\n-  #39 = Utf8               (Ldev/langchain4j/model/output/Response<TT;>;)V\n-  #40 = Utf8               <T:Ljava/lang/Object;>Ljava/lang/Object;Ldev/langchain4j/model/StreamingResponseHandler<TT;>;\n-  #41 = Utf8               SourceFile\n-  #42 = Utf8               StreamingChatLanguageModelTest.java\n-  #43 = NameAndType        #13:#14        // \"<init>\":()V\n-  #44 = Utf8               java/util/ArrayList\n-  #45 = NameAndType        #9:#10         // responses:Ljava/util/List;\n-  #46 = Class              #52            // java/util/List\n-  #47 = NameAndType        #53:#54        // add:(Ljava/lang/Object;)Z\n-  #48 = Class              #55            // dev/langchain4j/model/chat/StreamingChatLanguageModelTest\n-  #49 = Utf8               dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler\n-  #50 = Utf8               java/lang/Object\n-  #51 = Utf8               dev/langchain4j/model/StreamingResponseHandler\n-  #52 = Utf8               java/util/List\n-  #53 = Utf8               add\n-  #54 = Utf8               (Ljava/lang/Object;)Z\n-  #55 = Utf8               dev/langchain4j/model/chat/StreamingChatLanguageModelTest\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Class              #8             // java/util/ArrayList\n+   #8 = Utf8               java/util/ArrayList\n+   #9 = Methodref          #7.#3          // java/util/ArrayList.\"<init>\":()V\n+  #10 = Fieldref           #11.#12        // dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler.responses:Ljava/util/List;\n+  #11 = Class              #13            // dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler\n+  #12 = NameAndType        #14:#15        // responses:Ljava/util/List;\n+  #13 = Utf8               dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler\n+  #14 = Utf8               responses\n+  #15 = Utf8               Ljava/util/List;\n+  #16 = InterfaceMethodref #17.#18        // java/util/List.add:(Ljava/lang/Object;)Z\n+  #17 = Class              #19            // java/util/List\n+  #18 = NameAndType        #20:#21        // add:(Ljava/lang/Object;)Z\n+  #19 = Utf8               java/util/List\n+  #20 = Utf8               add\n+  #21 = Utf8               (Ljava/lang/Object;)Z\n+  #22 = Class              #23            // dev/langchain4j/model/StreamingResponseHandler\n+  #23 = Utf8               dev/langchain4j/model/StreamingResponseHandler\n+  #24 = Utf8               Signature\n+  #25 = Utf8               Ljava/util/List<Ldev/langchain4j/model/output/Response<TT;>;>;\n+  #26 = Utf8               Code\n+  #27 = Utf8               LineNumberTable\n+  #28 = Utf8               LocalVariableTable\n+  #29 = Utf8               this\n+  #30 = Utf8               Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;\n+  #31 = Utf8               LocalVariableTypeTable\n+  #32 = Utf8               Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler<TT;>;\n+  #33 = Utf8               ()Ljava/util/List;\n+  #34 = Utf8               ()Ljava/util/List<Ldev/langchain4j/model/output/Response<TT;>;>;\n+  #35 = Utf8               onNext\n+  #36 = Utf8               (Ljava/lang/String;)V\n+  #37 = Utf8               token\n+  #38 = Utf8               Ljava/lang/String;\n+  #39 = Utf8               onError\n+  #40 = Utf8               (Ljava/lang/Throwable;)V\n+  #41 = Utf8               error\n+  #42 = Utf8               Ljava/lang/Throwable;\n+  #43 = Utf8               onComplete\n+  #44 = Utf8               (Ldev/langchain4j/model/output/Response;)V\n+  #45 = Utf8               response\n+  #46 = Utf8               Ldev/langchain4j/model/output/Response;\n+  #47 = Utf8               Ldev/langchain4j/model/output/Response<TT;>;\n+  #48 = Utf8               (Ldev/langchain4j/model/output/Response<TT;>;)V\n+  #49 = Utf8               <T:Ljava/lang/Object;>Ljava/lang/Object;Ldev/langchain4j/model/StreamingResponseHandler<TT;>;\n+  #50 = Utf8               SourceFile\n+  #51 = Utf8               StreamingChatLanguageModelTest.java\n+  #52 = Utf8               InnerClasses\n+  #53 = Class              #54            // dev/langchain4j/model/chat/StreamingChatLanguageModelTest\n+  #54 = Utf8               dev/langchain4j/model/chat/StreamingChatLanguageModelTest\n+  #55 = Utf8               CollectorResponseHandler\n {\n   private final java.util.List<dev.langchain4j.model.output.Response<T>> responses;\n     descriptor: Ljava/util/List;\n     flags: (0x0012) ACC_PRIVATE, ACC_FINAL\n-    Signature: #12                          // Ljava/util/List<Ldev/langchain4j/model/output/Response<TT;>;>;\n+    Signature: #25                          // Ljava/util/List<Ldev/langchain4j/model/output/Response<TT;>;>;\n \n   public dev.langchain4j.model.chat.StreamingChatLanguageModelTest$CollectorResponseHandler();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=1, args_size=1\n          0: aload_0\n          1: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n          4: aload_0\n-         5: new           #2                  // class java/util/ArrayList\n+         5: new           #7                  // class java/util/ArrayList\n          8: dup\n-         9: invokespecial #3                  // Method java/util/ArrayList.\"<init>\":()V\n-        12: putfield      #4                  // Field responses:Ljava/util/List;\n+         9: invokespecial #9                  // Method java/util/ArrayList.\"<init>\":()V\n+        12: putfield      #10                 // Field responses:Ljava/util/List;\n         15: return\n       LineNumberTable:\n         line 26: 0\n         line 27: 4\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      16     0  this   Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;\n@@ -94,25 +94,25 @@\n \n   public java.util.List<dev.langchain4j.model.output.Response<T>> responses();\n     descriptor: ()Ljava/util/List;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n-         1: getfield      #4                  // Field responses:Ljava/util/List;\n+         1: getfield      #10                 // Field responses:Ljava/util/List;\n          4: areturn\n       LineNumberTable:\n         line 30: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       5     0  this   Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0       5     0  this   Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler<TT;>;\n-    Signature: #25                          // ()Ljava/util/List<Ldev/langchain4j/model/output/Response<TT;>;>;\n+    Signature: #34                          // ()Ljava/util/List<Ldev/langchain4j/model/output/Response<TT;>;>;\n \n   public void onNext(java.lang.String);\n     descriptor: (Ljava/lang/String;)V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=0, locals=2, args_size=2\n          0: return\n@@ -144,29 +144,29 @@\n \n   public void onComplete(dev.langchain4j.model.output.Response<T>);\n     descriptor: (Ldev/langchain4j/model/output/Response;)V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n-         1: getfield      #4                  // Field responses:Ljava/util/List;\n+         1: getfield      #10                 // Field responses:Ljava/util/List;\n          4: aload_1\n-         5: invokeinterface #5,  2            // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n+         5: invokeinterface #16,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n         10: pop\n         11: return\n       LineNumberTable:\n         line 41: 0\n         line 42: 11\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      12     0  this   Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;\n             0      12     1 response   Ldev/langchain4j/model/output/Response;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0      12     0  this   Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler<TT;>;\n             0      12     1 response   Ldev/langchain4j/model/output/Response<TT;>;\n-    Signature: #39                          // (Ldev/langchain4j/model/output/Response<TT;>;)V\n+    Signature: #48                          // (Ldev/langchain4j/model/output/Response<TT;>;)V\n }\n-Signature: #40                          // <T:Ljava/lang/Object;>Ljava/lang/Object;Ldev/langchain4j/model/StreamingResponseHandler<TT;>;\n+Signature: #49                          // <T:Ljava/lang/Object;>Ljava/lang/Object;Ldev/langchain4j/model/StreamingResponseHandler<TT;>;\n SourceFile: \"StreamingChatLanguageModelTest.java\"\n InnerClasses:\n-  public static final #19= #6 of #48;     // CollectorResponseHandler=class dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler of class dev/langchain4j/model/chat/StreamingChatLanguageModelTest\n+  public static final #55= #11 of #53;    // CollectorResponseHandler=class dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler of class dev/langchain4j/model/chat/StreamingChatLanguageModelTest\n"}]}, {"source1": "dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel.class", "source2": "dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,98 +1,98 @@\n-  SHA-256 checksum 1d534426f60fa2eaeed1bf64863373aec7aadce3b3e448d5038ba0a45e79e05f\n+  SHA-256 checksum dcc4956fb51a13cdb1f39664127ac357f9b31bff6797fdf231b66f5cf2b7f5b6\n   Compiled from \"StreamingChatLanguageModelTest.java\"\n public class dev.langchain4j.model.chat.StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel implements dev.langchain4j.model.chat.StreamingChatLanguageModel\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #13                         // dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel\n-  super_class: #14                        // java/lang/Object\n+  this_class: #51                         // dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 2\n Constant pool:\n-   #1 = Methodref          #14.#43        // java/lang/Object.\"<init>\":()V\n-   #2 = InterfaceMethodref #44.#45        // java/util/List.size:()I\n-   #3 = InterfaceMethodref #44.#46        // java/util/List.get:(I)Ljava/lang/Object;\n-   #4 = Class              #47            // dev/langchain4j/data/message/ChatMessage\n-   #5 = Class              #48            // dev/langchain4j/model/output/Response\n-   #6 = Class              #49            // dev/langchain4j/data/message/AiMessage\n-   #7 = InterfaceMethodref #4.#50         // dev/langchain4j/data/message/ChatMessage.text:()Ljava/lang/String;\n-   #8 = Fieldref           #51.#52        // java/util/Locale.ROOT:Ljava/util/Locale;\n-   #9 = Methodref          #53.#54        // java/lang/String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;\n-  #10 = Methodref          #6.#55         // dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n-  #11 = Methodref          #5.#56         // dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n-  #12 = InterfaceMethodref #57.#58        // dev/langchain4j/model/StreamingResponseHandler.onComplete:(Ldev/langchain4j/model/output/Response;)V\n-  #13 = Class              #60            // dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel\n-  #14 = Class              #61            // java/lang/Object\n-  #15 = Class              #62            // dev/langchain4j/model/chat/StreamingChatLanguageModel\n-  #16 = Utf8               <init>\n-  #17 = Utf8               ()V\n-  #18 = Utf8               Code\n-  #19 = Utf8               LineNumberTable\n-  #20 = Utf8               LocalVariableTable\n-  #21 = Utf8               this\n-  #22 = Utf8               StreamingUpperCaseEchoModel\n-  #23 = Utf8               InnerClasses\n-  #24 = Utf8               Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;\n-  #25 = Utf8               generate\n-  #26 = Utf8               (Ljava/util/List;Ldev/langchain4j/model/StreamingResponseHandler;)V\n-  #27 = Utf8               messages\n-  #28 = Utf8               Ljava/util/List;\n-  #29 = Utf8               handler\n-  #30 = Utf8               Ldev/langchain4j/model/StreamingResponseHandler;\n-  #31 = Utf8               lastMessage\n-  #32 = Utf8               Ldev/langchain4j/data/message/ChatMessage;\n-  #33 = Utf8               response\n-  #34 = Utf8               Ldev/langchain4j/model/output/Response;\n-  #35 = Utf8               LocalVariableTypeTable\n-  #36 = Utf8               Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n-  #37 = Utf8               Ldev/langchain4j/model/StreamingResponseHandler<Ldev/langchain4j/data/message/AiMessage;>;\n-  #38 = Utf8               Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n-  #39 = Utf8               Signature\n-  #40 = Utf8               (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;Ldev/langchain4j/model/StreamingResponseHandler<Ldev/langchain4j/data/message/AiMessage;>;)V\n-  #41 = Utf8               SourceFile\n-  #42 = Utf8               StreamingChatLanguageModelTest.java\n-  #43 = NameAndType        #16:#17        // \"<init>\":()V\n-  #44 = Class              #63            // java/util/List\n-  #45 = NameAndType        #64:#65        // size:()I\n-  #46 = NameAndType        #66:#67        // get:(I)Ljava/lang/Object;\n-  #47 = Utf8               dev/langchain4j/data/message/ChatMessage\n-  #48 = Utf8               dev/langchain4j/model/output/Response\n-  #49 = Utf8               dev/langchain4j/data/message/AiMessage\n-  #50 = NameAndType        #68:#69        // text:()Ljava/lang/String;\n-  #51 = Class              #70            // java/util/Locale\n-  #52 = NameAndType        #71:#72        // ROOT:Ljava/util/Locale;\n-  #53 = Class              #73            // java/lang/String\n-  #54 = NameAndType        #74:#75        // toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;\n-  #55 = NameAndType        #16:#76        // \"<init>\":(Ljava/lang/String;)V\n-  #56 = NameAndType        #16:#77        // \"<init>\":(Ljava/lang/Object;)V\n-  #57 = Class              #78            // dev/langchain4j/model/StreamingResponseHandler\n-  #58 = NameAndType        #79:#80        // onComplete:(Ldev/langchain4j/model/output/Response;)V\n-  #59 = Class              #81            // dev/langchain4j/model/chat/StreamingChatLanguageModelTest\n-  #60 = Utf8               dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel\n-  #61 = Utf8               java/lang/Object\n-  #62 = Utf8               dev/langchain4j/model/chat/StreamingChatLanguageModel\n-  #63 = Utf8               java/util/List\n-  #64 = Utf8               size\n-  #65 = Utf8               ()I\n-  #66 = Utf8               get\n-  #67 = Utf8               (I)Ljava/lang/Object;\n-  #68 = Utf8               text\n-  #69 = Utf8               ()Ljava/lang/String;\n-  #70 = Utf8               java/util/Locale\n-  #71 = Utf8               ROOT\n-  #72 = Utf8               Ljava/util/Locale;\n-  #73 = Utf8               java/lang/String\n-  #74 = Utf8               toUpperCase\n-  #75 = Utf8               (Ljava/util/Locale;)Ljava/lang/String;\n-  #76 = Utf8               (Ljava/lang/String;)V\n-  #77 = Utf8               (Ljava/lang/Object;)V\n-  #78 = Utf8               dev/langchain4j/model/StreamingResponseHandler\n-  #79 = Utf8               onComplete\n-  #80 = Utf8               (Ldev/langchain4j/model/output/Response;)V\n-  #81 = Utf8               dev/langchain4j/model/chat/StreamingChatLanguageModelTest\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = InterfaceMethodref #8.#9          // java/util/List.size:()I\n+   #8 = Class              #10            // java/util/List\n+   #9 = NameAndType        #11:#12        // size:()I\n+  #10 = Utf8               java/util/List\n+  #11 = Utf8               size\n+  #12 = Utf8               ()I\n+  #13 = InterfaceMethodref #8.#14         // java/util/List.get:(I)Ljava/lang/Object;\n+  #14 = NameAndType        #15:#16        // get:(I)Ljava/lang/Object;\n+  #15 = Utf8               get\n+  #16 = Utf8               (I)Ljava/lang/Object;\n+  #17 = Class              #18            // dev/langchain4j/data/message/ChatMessage\n+  #18 = Utf8               dev/langchain4j/data/message/ChatMessage\n+  #19 = Class              #20            // dev/langchain4j/model/output/Response\n+  #20 = Utf8               dev/langchain4j/model/output/Response\n+  #21 = Class              #22            // dev/langchain4j/data/message/AiMessage\n+  #22 = Utf8               dev/langchain4j/data/message/AiMessage\n+  #23 = InterfaceMethodref #17.#24        // dev/langchain4j/data/message/ChatMessage.text:()Ljava/lang/String;\n+  #24 = NameAndType        #25:#26        // text:()Ljava/lang/String;\n+  #25 = Utf8               text\n+  #26 = Utf8               ()Ljava/lang/String;\n+  #27 = Fieldref           #28.#29        // java/util/Locale.ROOT:Ljava/util/Locale;\n+  #28 = Class              #30            // java/util/Locale\n+  #29 = NameAndType        #31:#32        // ROOT:Ljava/util/Locale;\n+  #30 = Utf8               java/util/Locale\n+  #31 = Utf8               ROOT\n+  #32 = Utf8               Ljava/util/Locale;\n+  #33 = Methodref          #34.#35        // java/lang/String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;\n+  #34 = Class              #36            // java/lang/String\n+  #35 = NameAndType        #37:#38        // toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;\n+  #36 = Utf8               java/lang/String\n+  #37 = Utf8               toUpperCase\n+  #38 = Utf8               (Ljava/util/Locale;)Ljava/lang/String;\n+  #39 = Methodref          #21.#40        // dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n+  #40 = NameAndType        #5:#41         // \"<init>\":(Ljava/lang/String;)V\n+  #41 = Utf8               (Ljava/lang/String;)V\n+  #42 = Methodref          #19.#43        // dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n+  #43 = NameAndType        #5:#44         // \"<init>\":(Ljava/lang/Object;)V\n+  #44 = Utf8               (Ljava/lang/Object;)V\n+  #45 = InterfaceMethodref #46.#47        // dev/langchain4j/model/StreamingResponseHandler.onComplete:(Ldev/langchain4j/model/output/Response;)V\n+  #46 = Class              #48            // dev/langchain4j/model/StreamingResponseHandler\n+  #47 = NameAndType        #49:#50        // onComplete:(Ldev/langchain4j/model/output/Response;)V\n+  #48 = Utf8               dev/langchain4j/model/StreamingResponseHandler\n+  #49 = Utf8               onComplete\n+  #50 = Utf8               (Ldev/langchain4j/model/output/Response;)V\n+  #51 = Class              #52            // dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel\n+  #52 = Utf8               dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel\n+  #53 = Class              #54            // dev/langchain4j/model/chat/StreamingChatLanguageModel\n+  #54 = Utf8               dev/langchain4j/model/chat/StreamingChatLanguageModel\n+  #55 = Utf8               Code\n+  #56 = Utf8               LineNumberTable\n+  #57 = Utf8               LocalVariableTable\n+  #58 = Utf8               this\n+  #59 = Utf8               Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;\n+  #60 = Utf8               generate\n+  #61 = Utf8               (Ljava/util/List;Ldev/langchain4j/model/StreamingResponseHandler;)V\n+  #62 = Utf8               messages\n+  #63 = Utf8               Ljava/util/List;\n+  #64 = Utf8               handler\n+  #65 = Utf8               Ldev/langchain4j/model/StreamingResponseHandler;\n+  #66 = Utf8               lastMessage\n+  #67 = Utf8               Ldev/langchain4j/data/message/ChatMessage;\n+  #68 = Utf8               response\n+  #69 = Utf8               Ldev/langchain4j/model/output/Response;\n+  #70 = Utf8               LocalVariableTypeTable\n+  #71 = Utf8               Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n+  #72 = Utf8               Ldev/langchain4j/model/StreamingResponseHandler<Ldev/langchain4j/data/message/AiMessage;>;\n+  #73 = Utf8               Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n+  #74 = Utf8               Signature\n+  #75 = Utf8               (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;Ldev/langchain4j/model/StreamingResponseHandler<Ldev/langchain4j/data/message/AiMessage;>;)V\n+  #76 = Utf8               SourceFile\n+  #77 = Utf8               StreamingChatLanguageModelTest.java\n+  #78 = Utf8               InnerClasses\n+  #79 = Class              #80            // dev/langchain4j/model/chat/StreamingChatLanguageModelTest\n+  #80 = Utf8               dev/langchain4j/model/chat/StreamingChatLanguageModelTest\n+  #81 = Utf8               StreamingUpperCaseEchoModel\n {\n   public dev.langchain4j.model.chat.StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -107,34 +107,34 @@\n   public void generate(java.util.List<dev.langchain4j.data.message.ChatMessage>, dev.langchain4j.model.StreamingResponseHandler<dev.langchain4j.data.message.AiMessage>);\n     descriptor: (Ljava/util/List;Ldev/langchain4j/model/StreamingResponseHandler;)V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=6, locals=5, args_size=3\n          0: aload_1\n          1: aload_1\n-         2: invokeinterface #2,  1            // InterfaceMethod java/util/List.size:()I\n+         2: invokeinterface #7,  1            // InterfaceMethod java/util/List.size:()I\n          7: iconst_1\n          8: isub\n-         9: invokeinterface #3,  2            // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;\n-        14: checkcast     #4                  // class dev/langchain4j/data/message/ChatMessage\n+         9: invokeinterface #13,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;\n+        14: checkcast     #17                 // class dev/langchain4j/data/message/ChatMessage\n         17: astore_3\n-        18: new           #5                  // class dev/langchain4j/model/output/Response\n+        18: new           #19                 // class dev/langchain4j/model/output/Response\n         21: dup\n-        22: new           #6                  // class dev/langchain4j/data/message/AiMessage\n+        22: new           #21                 // class dev/langchain4j/data/message/AiMessage\n         25: dup\n         26: aload_3\n-        27: invokeinterface #7,  1            // InterfaceMethod dev/langchain4j/data/message/ChatMessage.text:()Ljava/lang/String;\n-        32: getstatic     #8                  // Field java/util/Locale.ROOT:Ljava/util/Locale;\n-        35: invokevirtual #9                  // Method java/lang/String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;\n-        38: invokespecial #10                 // Method dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n-        41: invokespecial #11                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n+        27: invokeinterface #23,  1           // InterfaceMethod dev/langchain4j/data/message/ChatMessage.text:()Ljava/lang/String;\n+        32: getstatic     #27                 // Field java/util/Locale.ROOT:Ljava/util/Locale;\n+        35: invokevirtual #33                 // Method java/lang/String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;\n+        38: invokespecial #39                 // Method dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n+        41: invokespecial #42                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n         44: astore        4\n         46: aload_2\n         47: aload         4\n-        49: invokeinterface #12,  2           // InterfaceMethod dev/langchain4j/model/StreamingResponseHandler.onComplete:(Ldev/langchain4j/model/output/Response;)V\n+        49: invokeinterface #45,  2           // InterfaceMethod dev/langchain4j/model/StreamingResponseHandler.onComplete:(Ldev/langchain4j/model/output/Response;)V\n         54: return\n       LineNumberTable:\n         line 20: 0\n         line 21: 18\n         line 22: 46\n         line 23: 54\n       LocalVariableTable:\n@@ -145,12 +145,12 @@\n            18      37     3 lastMessage   Ldev/langchain4j/data/message/ChatMessage;\n            46       9     4 response   Ldev/langchain4j/model/output/Response;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0      55     1 messages   Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n             0      55     2 handler   Ldev/langchain4j/model/StreamingResponseHandler<Ldev/langchain4j/data/message/AiMessage;>;\n            46       9     4 response   Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n-    Signature: #40                          // (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;Ldev/langchain4j/model/StreamingResponseHandler<Ldev/langchain4j/data/message/AiMessage;>;)V\n+    Signature: #75                          // (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;Ldev/langchain4j/model/StreamingResponseHandler<Ldev/langchain4j/data/message/AiMessage;>;)V\n }\n SourceFile: \"StreamingChatLanguageModelTest.java\"\n InnerClasses:\n-  public static #22= #13 of #59;          // StreamingUpperCaseEchoModel=class dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel of class dev/langchain4j/model/chat/StreamingChatLanguageModelTest\n+  public static #81= #51 of #79;          // StreamingUpperCaseEchoModel=class dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel of class dev/langchain4j/model/chat/StreamingChatLanguageModelTest\n"}]}, {"source1": "dev/langchain4j/model/chat/StreamingChatLanguageModelTest.class", "source2": "dev/langchain4j/model/chat/StreamingChatLanguageModelTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,224 +1,224 @@\n-  SHA-256 checksum e4909abb1e6638f4664c3de3e3b6e2b882622ee929fa0a6c683894bc6770a52e\n+  SHA-256 checksum b0e0f1a48746ad52461d81d51395f71b5ddbbecdb8d4c1864e01229ed5d4579e\n   Compiled from \"StreamingChatLanguageModelTest.java\"\n class dev.langchain4j.model.chat.StreamingChatLanguageModelTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #45                         // dev/langchain4j/model/chat/StreamingChatLanguageModelTest\n-  super_class: #46                        // java/lang/Object\n+  this_class: #19                         // dev/langchain4j/model/chat/StreamingChatLanguageModelTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 5, attributes: 3\n Constant pool:\n-    #1 = Methodref          #46.#82       // java/lang/Object.\"<init>\":()V\n-    #2 = Class              #83           // dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel\n-    #3 = Methodref          #2.#82        // dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel.\"<init>\":()V\n-    #4 = Class              #84           // dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler\n-    #5 = Methodref          #4.#82        // dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler.\"<init>\":()V\n-    #6 = Class              #85           // java/util/ArrayList\n-    #7 = Methodref          #6.#82        // java/util/ArrayList.\"<init>\":()V\n-    #8 = Class              #86           // java/lang/IllegalArgumentException\n-    #9 = Methodref          #45.#87       // dev/langchain4j/model/chat/StreamingChatLanguageModelTest.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-   #10 = InvokeDynamic      #0:#92        // #0:call:(Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #11 = Methodref          #93.#94       // org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #12 = String             #95           // Tools are currently not supported by this model\n-   #13 = Methodref          #96.#97       // org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #14 = InvokeDynamic      #1:#92        // #1:call:(Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #15 = Class              #99           // dev/langchain4j/data/message/UserMessage\n-   #16 = String             #100          // Hello\n-   #17 = Methodref          #15.#101      // dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n-   #18 = InterfaceMethodref #102.#103     // java/util/List.add:(Ljava/lang/Object;)Z\n-   #19 = Class              #104          // dev/langchain4j/data/message/AiMessage\n-   #20 = String             #105          // Hi\n-   #21 = Methodref          #19.#101      // dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n-   #22 = String             #106          // How are you?\n-   #23 = InterfaceMethodref #107.#108     // dev/langchain4j/model/chat/StreamingChatLanguageModel.generate:(Ljava/util/List;Ldev/langchain4j/model/StreamingResponseHandler;)V\n-   #24 = Methodref          #4.#109       // dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler.responses:()Ljava/util/List;\n-   #25 = InterfaceMethodref #102.#110     // java/util/List.get:(I)Ljava/lang/Object;\n-   #26 = Class              #111          // dev/langchain4j/model/output/Response\n-   #27 = Methodref          #26.#112      // dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n-   #28 = Methodref          #19.#113      // dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n-   #29 = Methodref          #45.#114      // dev/langchain4j/model/chat/StreamingChatLanguageModelTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #30 = String             #115          // HOW ARE YOU?\n-   #31 = Methodref          #116.#117     // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #32 = Methodref          #26.#118      // dev/langchain4j/model/output/Response.tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n-   #33 = Methodref          #45.#119      // dev/langchain4j/model/chat/StreamingChatLanguageModelTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #34 = Methodref          #120.#121     // org/assertj/core/api/ObjectAssert.isNull:()V\n-   #35 = Methodref          #26.#122      // dev/langchain4j/model/output/Response.finishReason:()Ldev/langchain4j/model/output/FinishReason;\n-   #36 = Methodref          #45.#123      // dev/langchain4j/model/chat/StreamingChatLanguageModelTest.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-   #37 = Methodref          #124.#121     // org/assertj/core/api/AbstractComparableAssert.isNull:()V\n-   #38 = InterfaceMethodref #107.#125     // dev/langchain4j/model/chat/StreamingChatLanguageModel.generate:(Ljava/lang/String;Ldev/langchain4j/model/StreamingResponseHandler;)V\n-   #39 = Methodref          #126.#127     // dev/langchain4j/agent/tool/ToolSpecification.builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-   #40 = String             #128          // foo\n-   #41 = Methodref          #129.#130     // dev/langchain4j/agent/tool/ToolSpecification$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-   #42 = Methodref          #129.#131     // dev/langchain4j/agent/tool/ToolSpecification$Builder.build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n-   #43 = Methodref          #2.#132       // dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel.generate:(Ljava/util/List;Ldev/langchain4j/agent/tool/ToolSpecification;Ldev/langchain4j/model/StreamingResponseHandler;)V\n-   #44 = Methodref          #2.#133       // dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel.generate:(Ljava/util/List;Ljava/util/List;Ldev/langchain4j/model/StreamingResponseHandler;)V\n-   #45 = Class              #134          // dev/langchain4j/model/chat/StreamingChatLanguageModelTest\n-   #46 = Class              #135          // java/lang/Object\n-   #47 = Class              #136          // org/assertj/core/api/WithAssertions\n-   #48 = Utf8               CollectorResponseHandler\n-   #49 = Utf8               InnerClasses\n-   #50 = Utf8               StreamingUpperCaseEchoModel\n-   #51 = Utf8               <init>\n-   #52 = Utf8               ()V\n-   #53 = Utf8               Code\n-   #54 = Utf8               LineNumberTable\n-   #55 = Utf8               LocalVariableTable\n-   #56 = Utf8               this\n-   #57 = Utf8               Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest;\n-   #58 = Utf8               test_not_supported\n-   #59 = Utf8               model\n-   #60 = Utf8               Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;\n-   #61 = Utf8               handler\n-   #62 = Utf8               Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;\n-   #63 = Utf8               messages\n-   #64 = Utf8               Ljava/util/List;\n-   #65 = Utf8               LocalVariableTypeTable\n-   #66 = Utf8               Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler<Ldev/langchain4j/data/message/AiMessage;>;\n-   #67 = Utf8               Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n-   #68 = Utf8               RuntimeVisibleAnnotations\n-   #69 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #70 = Utf8               test_generate\n-   #71 = Utf8               response\n-   #72 = Utf8               Ldev/langchain4j/model/output/Response;\n-   #73 = Utf8               Ldev/langchain4j/model/chat/StreamingChatLanguageModel;\n-   #74 = Utf8               Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n-   #75 = Utf8               lambda$test_not_supported$1\n-   #76 = Utf8               (Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)V\n-   #77 = Utf8               Exceptions\n-   #78 = Class              #137          // java/lang/Throwable\n-   #79 = Utf8               lambda$test_not_supported$0\n-   #80 = Utf8               SourceFile\n-   #81 = Utf8               StreamingChatLanguageModelTest.java\n-   #82 = NameAndType        #51:#52       // \"<init>\":()V\n-   #83 = Utf8               dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel\n-   #84 = Utf8               dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler\n-   #85 = Utf8               java/util/ArrayList\n-   #86 = Utf8               java/lang/IllegalArgumentException\n-   #87 = NameAndType        #138:#139     // assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-   #88 = Utf8               BootstrapMethods\n-   #89 = MethodHandle       6:#140        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-   #90 = MethodType         #52           //  ()V\n-   #91 = MethodHandle       6:#141        // REF_invokeStatic dev/langchain4j/model/chat/StreamingChatLanguageModelTest.lambda$test_not_supported$0:(Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)V\n-   #92 = NameAndType        #142:#145     // call:(Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #93 = Class              #146          // org/assertj/core/api/ThrowableTypeAssert\n-   #94 = NameAndType        #147:#148     // isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #95 = Utf8               Tools are currently not supported by this model\n-   #96 = Class              #149          // org/assertj/core/api/ThrowableAssertAlternative\n-   #97 = NameAndType        #150:#151     // withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #98 = MethodHandle       6:#152        // REF_invokeStatic dev/langchain4j/model/chat/StreamingChatLanguageModelTest.lambda$test_not_supported$1:(Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)V\n-   #99 = Utf8               dev/langchain4j/data/message/UserMessage\n-  #100 = Utf8               Hello\n-  #101 = NameAndType        #51:#153      // \"<init>\":(Ljava/lang/String;)V\n-  #102 = Class              #154          // java/util/List\n-  #103 = NameAndType        #155:#156     // add:(Ljava/lang/Object;)Z\n-  #104 = Utf8               dev/langchain4j/data/message/AiMessage\n-  #105 = Utf8               Hi\n-  #106 = Utf8               How are you?\n-  #107 = Class              #157          // dev/langchain4j/model/chat/StreamingChatLanguageModel\n-  #108 = NameAndType        #158:#159     // generate:(Ljava/util/List;Ldev/langchain4j/model/StreamingResponseHandler;)V\n-  #109 = NameAndType        #160:#161     // responses:()Ljava/util/List;\n-  #110 = NameAndType        #162:#163     // get:(I)Ljava/lang/Object;\n-  #111 = Utf8               dev/langchain4j/model/output/Response\n-  #112 = NameAndType        #164:#165     // content:()Ljava/lang/Object;\n-  #113 = NameAndType        #166:#167     // text:()Ljava/lang/String;\n-  #114 = NameAndType        #168:#169     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #115 = Utf8               HOW ARE YOU?\n-  #116 = Class              #170          // org/assertj/core/api/AbstractStringAssert\n-  #117 = NameAndType        #171:#169     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #118 = NameAndType        #172:#173     // tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n-  #119 = NameAndType        #168:#174     // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #120 = Class              #175          // org/assertj/core/api/ObjectAssert\n-  #121 = NameAndType        #176:#52      // isNull:()V\n-  #122 = NameAndType        #177:#178     // finishReason:()Ldev/langchain4j/model/output/FinishReason;\n-  #123 = NameAndType        #168:#179     // assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-  #124 = Class              #180          // org/assertj/core/api/AbstractComparableAssert\n-  #125 = NameAndType        #158:#181     // generate:(Ljava/lang/String;Ldev/langchain4j/model/StreamingResponseHandler;)V\n-  #126 = Class              #182          // dev/langchain4j/agent/tool/ToolSpecification\n-  #127 = NameAndType        #183:#185     // builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-  #128 = Utf8               foo\n-  #129 = Class              #186          // dev/langchain4j/agent/tool/ToolSpecification$Builder\n-  #130 = NameAndType        #187:#188     // name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-  #131 = NameAndType        #189:#190     // build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n-  #132 = NameAndType        #158:#191     // generate:(Ljava/util/List;Ldev/langchain4j/agent/tool/ToolSpecification;Ldev/langchain4j/model/StreamingResponseHandler;)V\n-  #133 = NameAndType        #158:#192     // generate:(Ljava/util/List;Ljava/util/List;Ldev/langchain4j/model/StreamingResponseHandler;)V\n-  #134 = Utf8               dev/langchain4j/model/chat/StreamingChatLanguageModelTest\n-  #135 = Utf8               java/lang/Object\n-  #136 = Utf8               org/assertj/core/api/WithAssertions\n-  #137 = Utf8               java/lang/Throwable\n-  #138 = Utf8               assertThatExceptionOfType\n-  #139 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-  #140 = Methodref          #193.#194     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #141 = Methodref          #45.#195      // dev/langchain4j/model/chat/StreamingChatLanguageModelTest.lambda$test_not_supported$0:(Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)V\n-  #142 = Utf8               call\n-  #143 = Class              #197          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #144 = Utf8               ThrowingCallable\n-  #145 = Utf8               (Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-  #146 = Utf8               org/assertj/core/api/ThrowableTypeAssert\n-  #147 = Utf8               isThrownBy\n-  #148 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #149 = Utf8               org/assertj/core/api/ThrowableAssertAlternative\n-  #150 = Utf8               withMessageContaining\n-  #151 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #152 = Methodref          #45.#198      // dev/langchain4j/model/chat/StreamingChatLanguageModelTest.lambda$test_not_supported$1:(Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)V\n-  #153 = Utf8               (Ljava/lang/String;)V\n-  #154 = Utf8               java/util/List\n-  #155 = Utf8               add\n-  #156 = Utf8               (Ljava/lang/Object;)Z\n-  #157 = Utf8               dev/langchain4j/model/chat/StreamingChatLanguageModel\n-  #158 = Utf8               generate\n-  #159 = Utf8               (Ljava/util/List;Ldev/langchain4j/model/StreamingResponseHandler;)V\n-  #160 = Utf8               responses\n-  #161 = Utf8               ()Ljava/util/List;\n-  #162 = Utf8               get\n-  #163 = Utf8               (I)Ljava/lang/Object;\n-  #164 = Utf8               content\n-  #165 = Utf8               ()Ljava/lang/Object;\n-  #166 = Utf8               text\n-  #167 = Utf8               ()Ljava/lang/String;\n-  #168 = Utf8               assertThat\n-  #169 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #170 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #171 = Utf8               isEqualTo\n-  #172 = Utf8               tokenUsage\n-  #173 = Utf8               ()Ldev/langchain4j/model/output/TokenUsage;\n-  #174 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #175 = Utf8               org/assertj/core/api/ObjectAssert\n-  #176 = Utf8               isNull\n-  #177 = Utf8               finishReason\n-  #178 = Utf8               ()Ldev/langchain4j/model/output/FinishReason;\n-  #179 = Utf8               (Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-  #180 = Utf8               org/assertj/core/api/AbstractComparableAssert\n-  #181 = Utf8               (Ljava/lang/String;Ldev/langchain4j/model/StreamingResponseHandler;)V\n-  #182 = Utf8               dev/langchain4j/agent/tool/ToolSpecification\n-  #183 = Utf8               builder\n-  #184 = Utf8               Builder\n-  #185 = Utf8               ()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-  #186 = Utf8               dev/langchain4j/agent/tool/ToolSpecification$Builder\n-  #187 = Utf8               name\n-  #188 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-  #189 = Utf8               build\n-  #190 = Utf8               ()Ldev/langchain4j/agent/tool/ToolSpecification;\n-  #191 = Utf8               (Ljava/util/List;Ldev/langchain4j/agent/tool/ToolSpecification;Ldev/langchain4j/model/StreamingResponseHandler;)V\n-  #192 = Utf8               (Ljava/util/List;Ljava/util/List;Ldev/langchain4j/model/StreamingResponseHandler;)V\n-  #193 = Class              #199          // java/lang/invoke/LambdaMetafactory\n-  #194 = NameAndType        #200:#203     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #195 = NameAndType        #79:#76       // lambda$test_not_supported$0:(Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)V\n-  #196 = Class              #204          // org/assertj/core/api/ThrowableAssert\n-  #197 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #198 = NameAndType        #75:#76       // lambda$test_not_supported$1:(Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)V\n-  #199 = Utf8               java/lang/invoke/LambdaMetafactory\n-  #200 = Utf8               metafactory\n-  #201 = Class              #206          // java/lang/invoke/MethodHandles$Lookup\n-  #202 = Utf8               Lookup\n-  #203 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #204 = Utf8               org/assertj/core/api/ThrowableAssert\n-  #205 = Class              #207          // java/lang/invoke/MethodHandles\n-  #206 = Utf8               java/lang/invoke/MethodHandles$Lookup\n-  #207 = Utf8               java/lang/invoke/MethodHandles\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Class              #8            // dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel\n+    #8 = Utf8               dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel\n+    #9 = Methodref          #7.#3         // dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel.\"<init>\":()V\n+   #10 = Class              #11           // dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler\n+   #11 = Utf8               dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler\n+   #12 = Methodref          #10.#3        // dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler.\"<init>\":()V\n+   #13 = Class              #14           // java/util/ArrayList\n+   #14 = Utf8               java/util/ArrayList\n+   #15 = Methodref          #13.#3        // java/util/ArrayList.\"<init>\":()V\n+   #16 = Class              #17           // java/lang/IllegalArgumentException\n+   #17 = Utf8               java/lang/IllegalArgumentException\n+   #18 = Methodref          #19.#20       // dev/langchain4j/model/chat/StreamingChatLanguageModelTest.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #19 = Class              #21           // dev/langchain4j/model/chat/StreamingChatLanguageModelTest\n+   #20 = NameAndType        #22:#23       // assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #21 = Utf8               dev/langchain4j/model/chat/StreamingChatLanguageModelTest\n+   #22 = Utf8               assertThatExceptionOfType\n+   #23 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #24 = InvokeDynamic      #0:#25        // #0:call:(Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #25 = NameAndType        #26:#27       // call:(Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #26 = Utf8               call\n+   #27 = Utf8               (Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #28 = Methodref          #29.#30       // org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #29 = Class              #31           // org/assertj/core/api/ThrowableTypeAssert\n+   #30 = NameAndType        #32:#33       // isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #31 = Utf8               org/assertj/core/api/ThrowableTypeAssert\n+   #32 = Utf8               isThrownBy\n+   #33 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #34 = String             #35           // Tools are currently not supported by this model\n+   #35 = Utf8               Tools are currently not supported by this model\n+   #36 = Methodref          #37.#38       // org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #37 = Class              #39           // org/assertj/core/api/ThrowableAssertAlternative\n+   #38 = NameAndType        #40:#41       // withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #39 = Utf8               org/assertj/core/api/ThrowableAssertAlternative\n+   #40 = Utf8               withMessageContaining\n+   #41 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #42 = InvokeDynamic      #1:#25        // #1:call:(Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #43 = Class              #44           // dev/langchain4j/data/message/UserMessage\n+   #44 = Utf8               dev/langchain4j/data/message/UserMessage\n+   #45 = String             #46           // Hello\n+   #46 = Utf8               Hello\n+   #47 = Methodref          #43.#48       // dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n+   #48 = NameAndType        #5:#49        // \"<init>\":(Ljava/lang/String;)V\n+   #49 = Utf8               (Ljava/lang/String;)V\n+   #50 = InterfaceMethodref #51.#52       // java/util/List.add:(Ljava/lang/Object;)Z\n+   #51 = Class              #53           // java/util/List\n+   #52 = NameAndType        #54:#55       // add:(Ljava/lang/Object;)Z\n+   #53 = Utf8               java/util/List\n+   #54 = Utf8               add\n+   #55 = Utf8               (Ljava/lang/Object;)Z\n+   #56 = Class              #57           // dev/langchain4j/data/message/AiMessage\n+   #57 = Utf8               dev/langchain4j/data/message/AiMessage\n+   #58 = String             #59           // Hi\n+   #59 = Utf8               Hi\n+   #60 = Methodref          #56.#48       // dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n+   #61 = String             #62           // How are you?\n+   #62 = Utf8               How are you?\n+   #63 = InterfaceMethodref #64.#65       // dev/langchain4j/model/chat/StreamingChatLanguageModel.generate:(Ljava/util/List;Ldev/langchain4j/model/StreamingResponseHandler;)V\n+   #64 = Class              #66           // dev/langchain4j/model/chat/StreamingChatLanguageModel\n+   #65 = NameAndType        #67:#68       // generate:(Ljava/util/List;Ldev/langchain4j/model/StreamingResponseHandler;)V\n+   #66 = Utf8               dev/langchain4j/model/chat/StreamingChatLanguageModel\n+   #67 = Utf8               generate\n+   #68 = Utf8               (Ljava/util/List;Ldev/langchain4j/model/StreamingResponseHandler;)V\n+   #69 = Methodref          #10.#70       // dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler.responses:()Ljava/util/List;\n+   #70 = NameAndType        #71:#72       // responses:()Ljava/util/List;\n+   #71 = Utf8               responses\n+   #72 = Utf8               ()Ljava/util/List;\n+   #73 = InterfaceMethodref #51.#74       // java/util/List.get:(I)Ljava/lang/Object;\n+   #74 = NameAndType        #75:#76       // get:(I)Ljava/lang/Object;\n+   #75 = Utf8               get\n+   #76 = Utf8               (I)Ljava/lang/Object;\n+   #77 = Class              #78           // dev/langchain4j/model/output/Response\n+   #78 = Utf8               dev/langchain4j/model/output/Response\n+   #79 = Methodref          #77.#80       // dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n+   #80 = NameAndType        #81:#82       // content:()Ljava/lang/Object;\n+   #81 = Utf8               content\n+   #82 = Utf8               ()Ljava/lang/Object;\n+   #83 = Methodref          #56.#84       // dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n+   #84 = NameAndType        #85:#86       // text:()Ljava/lang/String;\n+   #85 = Utf8               text\n+   #86 = Utf8               ()Ljava/lang/String;\n+   #87 = Methodref          #19.#88       // dev/langchain4j/model/chat/StreamingChatLanguageModelTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #88 = NameAndType        #89:#90       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #89 = Utf8               assertThat\n+   #90 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #91 = String             #92           // HOW ARE YOU?\n+   #92 = Utf8               HOW ARE YOU?\n+   #93 = Methodref          #94.#95       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #94 = Class              #96           // org/assertj/core/api/AbstractStringAssert\n+   #95 = NameAndType        #97:#90       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #96 = Utf8               org/assertj/core/api/AbstractStringAssert\n+   #97 = Utf8               isEqualTo\n+   #98 = Methodref          #77.#99       // dev/langchain4j/model/output/Response.tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n+   #99 = NameAndType        #100:#101     // tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n+  #100 = Utf8               tokenUsage\n+  #101 = Utf8               ()Ldev/langchain4j/model/output/TokenUsage;\n+  #102 = Methodref          #19.#103      // dev/langchain4j/model/chat/StreamingChatLanguageModelTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+  #103 = NameAndType        #89:#104      // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+  #104 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+  #105 = Methodref          #106.#107     // org/assertj/core/api/ObjectAssert.isNull:()V\n+  #106 = Class              #108          // org/assertj/core/api/ObjectAssert\n+  #107 = NameAndType        #109:#6       // isNull:()V\n+  #108 = Utf8               org/assertj/core/api/ObjectAssert\n+  #109 = Utf8               isNull\n+  #110 = Methodref          #77.#111      // dev/langchain4j/model/output/Response.finishReason:()Ldev/langchain4j/model/output/FinishReason;\n+  #111 = NameAndType        #112:#113     // finishReason:()Ldev/langchain4j/model/output/FinishReason;\n+  #112 = Utf8               finishReason\n+  #113 = Utf8               ()Ldev/langchain4j/model/output/FinishReason;\n+  #114 = Methodref          #19.#115      // dev/langchain4j/model/chat/StreamingChatLanguageModelTest.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+  #115 = NameAndType        #89:#116      // assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+  #116 = Utf8               (Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+  #117 = Methodref          #118.#107     // org/assertj/core/api/AbstractComparableAssert.isNull:()V\n+  #118 = Class              #119          // org/assertj/core/api/AbstractComparableAssert\n+  #119 = Utf8               org/assertj/core/api/AbstractComparableAssert\n+  #120 = InterfaceMethodref #64.#121      // dev/langchain4j/model/chat/StreamingChatLanguageModel.generate:(Ljava/lang/String;Ldev/langchain4j/model/StreamingResponseHandler;)V\n+  #121 = NameAndType        #67:#122      // generate:(Ljava/lang/String;Ldev/langchain4j/model/StreamingResponseHandler;)V\n+  #122 = Utf8               (Ljava/lang/String;Ldev/langchain4j/model/StreamingResponseHandler;)V\n+  #123 = Methodref          #124.#125     // dev/langchain4j/agent/tool/ToolSpecification.builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+  #124 = Class              #126          // dev/langchain4j/agent/tool/ToolSpecification\n+  #125 = NameAndType        #127:#128     // builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+  #126 = Utf8               dev/langchain4j/agent/tool/ToolSpecification\n+  #127 = Utf8               builder\n+  #128 = Utf8               ()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+  #129 = String             #130          // foo\n+  #130 = Utf8               foo\n+  #131 = Methodref          #132.#133     // dev/langchain4j/agent/tool/ToolSpecification$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+  #132 = Class              #134          // dev/langchain4j/agent/tool/ToolSpecification$Builder\n+  #133 = NameAndType        #135:#136     // name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+  #134 = Utf8               dev/langchain4j/agent/tool/ToolSpecification$Builder\n+  #135 = Utf8               name\n+  #136 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+  #137 = Methodref          #132.#138     // dev/langchain4j/agent/tool/ToolSpecification$Builder.build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n+  #138 = NameAndType        #139:#140     // build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n+  #139 = Utf8               build\n+  #140 = Utf8               ()Ldev/langchain4j/agent/tool/ToolSpecification;\n+  #141 = Methodref          #7.#142       // dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel.generate:(Ljava/util/List;Ldev/langchain4j/agent/tool/ToolSpecification;Ldev/langchain4j/model/StreamingResponseHandler;)V\n+  #142 = NameAndType        #67:#143      // generate:(Ljava/util/List;Ldev/langchain4j/agent/tool/ToolSpecification;Ldev/langchain4j/model/StreamingResponseHandler;)V\n+  #143 = Utf8               (Ljava/util/List;Ldev/langchain4j/agent/tool/ToolSpecification;Ldev/langchain4j/model/StreamingResponseHandler;)V\n+  #144 = Methodref          #7.#145       // dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel.generate:(Ljava/util/List;Ljava/util/List;Ldev/langchain4j/model/StreamingResponseHandler;)V\n+  #145 = NameAndType        #67:#146      // generate:(Ljava/util/List;Ljava/util/List;Ldev/langchain4j/model/StreamingResponseHandler;)V\n+  #146 = Utf8               (Ljava/util/List;Ljava/util/List;Ldev/langchain4j/model/StreamingResponseHandler;)V\n+  #147 = Class              #148          // org/assertj/core/api/WithAssertions\n+  #148 = Utf8               org/assertj/core/api/WithAssertions\n+  #149 = Utf8               Code\n+  #150 = Utf8               LineNumberTable\n+  #151 = Utf8               LocalVariableTable\n+  #152 = Utf8               this\n+  #153 = Utf8               Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest;\n+  #154 = Utf8               test_not_supported\n+  #155 = Utf8               model\n+  #156 = Utf8               Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;\n+  #157 = Utf8               handler\n+  #158 = Utf8               Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;\n+  #159 = Utf8               messages\n+  #160 = Utf8               Ljava/util/List;\n+  #161 = Utf8               LocalVariableTypeTable\n+  #162 = Utf8               Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler<Ldev/langchain4j/data/message/AiMessage;>;\n+  #163 = Utf8               Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n+  #164 = Utf8               RuntimeVisibleAnnotations\n+  #165 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #166 = Utf8               test_generate\n+  #167 = Utf8               response\n+  #168 = Utf8               Ldev/langchain4j/model/output/Response;\n+  #169 = Utf8               Ldev/langchain4j/model/chat/StreamingChatLanguageModel;\n+  #170 = Utf8               Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n+  #171 = Utf8               lambda$test_not_supported$1\n+  #172 = Utf8               (Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)V\n+  #173 = Utf8               Exceptions\n+  #174 = Class              #175          // java/lang/Throwable\n+  #175 = Utf8               java/lang/Throwable\n+  #176 = Utf8               lambda$test_not_supported$0\n+  #177 = Utf8               SourceFile\n+  #178 = Utf8               StreamingChatLanguageModelTest.java\n+  #179 = Utf8               BootstrapMethods\n+  #180 = MethodHandle       6:#181        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #181 = Methodref          #182.#183     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #182 = Class              #184          // java/lang/invoke/LambdaMetafactory\n+  #183 = NameAndType        #185:#186     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #184 = Utf8               java/lang/invoke/LambdaMetafactory\n+  #185 = Utf8               metafactory\n+  #186 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #187 = MethodType         #6            //  ()V\n+  #188 = MethodHandle       6:#189        // REF_invokeStatic dev/langchain4j/model/chat/StreamingChatLanguageModelTest.lambda$test_not_supported$0:(Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)V\n+  #189 = Methodref          #19.#190      // dev/langchain4j/model/chat/StreamingChatLanguageModelTest.lambda$test_not_supported$0:(Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)V\n+  #190 = NameAndType        #176:#172     // lambda$test_not_supported$0:(Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)V\n+  #191 = MethodHandle       6:#192        // REF_invokeStatic dev/langchain4j/model/chat/StreamingChatLanguageModelTest.lambda$test_not_supported$1:(Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)V\n+  #192 = Methodref          #19.#193      // dev/langchain4j/model/chat/StreamingChatLanguageModelTest.lambda$test_not_supported$1:(Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)V\n+  #193 = NameAndType        #171:#172     // lambda$test_not_supported$1:(Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)V\n+  #194 = Utf8               InnerClasses\n+  #195 = Utf8               StreamingUpperCaseEchoModel\n+  #196 = Utf8               CollectorResponseHandler\n+  #197 = Class              #198          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n+  #198 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n+  #199 = Class              #200          // org/assertj/core/api/ThrowableAssert\n+  #200 = Utf8               org/assertj/core/api/ThrowableAssert\n+  #201 = Utf8               ThrowingCallable\n+  #202 = Utf8               Builder\n+  #203 = Class              #204          // java/lang/invoke/MethodHandles$Lookup\n+  #204 = Utf8               java/lang/invoke/MethodHandles$Lookup\n+  #205 = Class              #206          // java/lang/invoke/MethodHandles\n+  #206 = Utf8               java/lang/invoke/MethodHandles\n+  #207 = Utf8               Lookup\n {\n   dev.langchain4j.model.chat.StreamingChatLanguageModelTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -231,47 +231,47 @@\n             0       5     0  this   Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest;\n \n   public void test_not_supported();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=4, locals=4, args_size=1\n-         0: new           #2                  // class dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel\n+         0: new           #7                  // class dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel.\"<init>\":()V\n          7: astore_1\n-         8: new           #4                  // class dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler\n+         8: new           #10                 // class dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler\n         11: dup\n-        12: invokespecial #5                  // Method dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler.\"<init>\":()V\n+        12: invokespecial #12                 // Method dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler.\"<init>\":()V\n         15: astore_2\n-        16: new           #6                  // class java/util/ArrayList\n+        16: new           #13                 // class java/util/ArrayList\n         19: dup\n-        20: invokespecial #7                  // Method java/util/ArrayList.\"<init>\":()V\n+        20: invokespecial #15                 // Method java/util/ArrayList.\"<init>\":()V\n         23: astore_3\n         24: aload_0\n-        25: ldc           #8                  // class java/lang/IllegalArgumentException\n-        27: invokevirtual #9                  // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+        25: ldc           #16                 // class java/lang/IllegalArgumentException\n+        27: invokevirtual #18                 // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n         30: aload_1\n         31: aload_3\n         32: aload_2\n-        33: invokedynamic #10,  0             // InvokeDynamic #0:call:(Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-        38: invokevirtual #11                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-        41: ldc           #12                 // String Tools are currently not supported by this model\n-        43: invokevirtual #13                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        33: invokedynamic #24,  0             // InvokeDynamic #0:call:(Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+        38: invokevirtual #28                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        41: ldc           #34                 // String Tools are currently not supported by this model\n+        43: invokevirtual #36                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n         46: pop\n         47: aload_0\n-        48: ldc           #8                  // class java/lang/IllegalArgumentException\n-        50: invokevirtual #9                  // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+        48: ldc           #16                 // class java/lang/IllegalArgumentException\n+        50: invokevirtual #18                 // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n         53: aload_1\n         54: aload_3\n         55: aload_2\n-        56: invokedynamic #14,  0             // InvokeDynamic #1:call:(Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-        61: invokevirtual #11                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-        64: ldc           #12                 // String Tools are currently not supported by this model\n-        66: invokevirtual #13                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        56: invokedynamic #42,  0             // InvokeDynamic #1:call:(Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+        61: invokevirtual #28                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        64: ldc           #34                 // String Tools are currently not supported by this model\n+        66: invokevirtual #36                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n         69: pop\n         70: return\n       LineNumberTable:\n         line 47: 0\n         line 48: 8\n         line 49: 16\n         line 51: 24\n@@ -288,117 +288,117 @@\n            16      55     2 handler   Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;\n            24      47     3 messages   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            16      55     2 handler   Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler<Ldev/langchain4j/data/message/AiMessage;>;\n            24      47     3 messages   Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n     RuntimeVisibleAnnotations:\n-      0: #69()\n+      0: #165()\n         org.junit.jupiter.api.Test\n \n   public void test_generate();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=4, locals=5, args_size=1\n-         0: new           #2                  // class dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel\n+         0: new           #7                  // class dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel.\"<init>\":()V\n          7: astore_1\n-         8: new           #6                  // class java/util/ArrayList\n+         8: new           #13                 // class java/util/ArrayList\n         11: dup\n-        12: invokespecial #7                  // Method java/util/ArrayList.\"<init>\":()V\n+        12: invokespecial #15                 // Method java/util/ArrayList.\"<init>\":()V\n         15: astore_2\n         16: aload_2\n-        17: new           #15                 // class dev/langchain4j/data/message/UserMessage\n+        17: new           #43                 // class dev/langchain4j/data/message/UserMessage\n         20: dup\n-        21: ldc           #16                 // String Hello\n-        23: invokespecial #17                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n-        26: invokeinterface #18,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n+        21: ldc           #45                 // String Hello\n+        23: invokespecial #47                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n+        26: invokeinterface #50,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n         31: pop\n         32: aload_2\n-        33: new           #19                 // class dev/langchain4j/data/message/AiMessage\n+        33: new           #56                 // class dev/langchain4j/data/message/AiMessage\n         36: dup\n-        37: ldc           #20                 // String Hi\n-        39: invokespecial #21                 // Method dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n-        42: invokeinterface #18,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n+        37: ldc           #58                 // String Hi\n+        39: invokespecial #60                 // Method dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n+        42: invokeinterface #50,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n         47: pop\n         48: aload_2\n-        49: new           #15                 // class dev/langchain4j/data/message/UserMessage\n+        49: new           #43                 // class dev/langchain4j/data/message/UserMessage\n         52: dup\n-        53: ldc           #22                 // String How are you?\n-        55: invokespecial #17                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n-        58: invokeinterface #18,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n+        53: ldc           #61                 // String How are you?\n+        55: invokespecial #47                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n+        58: invokeinterface #50,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n         63: pop\n-        64: new           #4                  // class dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler\n+        64: new           #10                 // class dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler\n         67: dup\n-        68: invokespecial #5                  // Method dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler.\"<init>\":()V\n+        68: invokespecial #12                 // Method dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler.\"<init>\":()V\n         71: astore_3\n         72: aload_1\n         73: aload_2\n         74: aload_3\n-        75: invokeinterface #23,  3           // InterfaceMethod dev/langchain4j/model/chat/StreamingChatLanguageModel.generate:(Ljava/util/List;Ldev/langchain4j/model/StreamingResponseHandler;)V\n+        75: invokeinterface #63,  3           // InterfaceMethod dev/langchain4j/model/chat/StreamingChatLanguageModel.generate:(Ljava/util/List;Ldev/langchain4j/model/StreamingResponseHandler;)V\n         80: aload_3\n-        81: invokevirtual #24                 // Method dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler.responses:()Ljava/util/List;\n+        81: invokevirtual #69                 // Method dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler.responses:()Ljava/util/List;\n         84: iconst_0\n-        85: invokeinterface #25,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;\n-        90: checkcast     #26                 // class dev/langchain4j/model/output/Response\n+        85: invokeinterface #73,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;\n+        90: checkcast     #77                 // class dev/langchain4j/model/output/Response\n         93: astore        4\n         95: aload_0\n         96: aload         4\n-        98: invokevirtual #27                 // Method dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n-       101: checkcast     #19                 // class dev/langchain4j/data/message/AiMessage\n-       104: invokevirtual #28                 // Method dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n-       107: invokevirtual #29                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       110: ldc           #30                 // String HOW ARE YOU?\n-       112: invokevirtual #31                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        98: invokevirtual #79                 // Method dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n+       101: checkcast     #56                 // class dev/langchain4j/data/message/AiMessage\n+       104: invokevirtual #83                 // Method dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n+       107: invokevirtual #87                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       110: ldc           #91                 // String HOW ARE YOU?\n+       112: invokevirtual #93                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n        115: pop\n        116: aload_0\n        117: aload         4\n-       119: invokevirtual #32                 // Method dev/langchain4j/model/output/Response.tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n-       122: invokevirtual #33                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-       125: invokevirtual #34                 // Method org/assertj/core/api/ObjectAssert.isNull:()V\n+       119: invokevirtual #98                 // Method dev/langchain4j/model/output/Response.tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n+       122: invokevirtual #102                // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       125: invokevirtual #105                // Method org/assertj/core/api/ObjectAssert.isNull:()V\n        128: aload_0\n        129: aload         4\n-       131: invokevirtual #35                 // Method dev/langchain4j/model/output/Response.finishReason:()Ldev/langchain4j/model/output/FinishReason;\n-       134: invokevirtual #36                 // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-       137: invokevirtual #37                 // Method org/assertj/core/api/AbstractComparableAssert.isNull:()V\n-       140: new           #4                  // class dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler\n+       131: invokevirtual #110                // Method dev/langchain4j/model/output/Response.finishReason:()Ldev/langchain4j/model/output/FinishReason;\n+       134: invokevirtual #114                // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+       137: invokevirtual #117                // Method org/assertj/core/api/AbstractComparableAssert.isNull:()V\n+       140: new           #10                 // class dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler\n        143: dup\n-       144: invokespecial #5                  // Method dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler.\"<init>\":()V\n+       144: invokespecial #12                 // Method dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler.\"<init>\":()V\n        147: astore_2\n        148: aload_1\n-       149: ldc           #22                 // String How are you?\n+       149: ldc           #61                 // String How are you?\n        151: aload_2\n-       152: invokeinterface #38,  3           // InterfaceMethod dev/langchain4j/model/chat/StreamingChatLanguageModel.generate:(Ljava/lang/String;Ldev/langchain4j/model/StreamingResponseHandler;)V\n+       152: invokeinterface #120,  3          // InterfaceMethod dev/langchain4j/model/chat/StreamingChatLanguageModel.generate:(Ljava/lang/String;Ldev/langchain4j/model/StreamingResponseHandler;)V\n        157: aload_2\n-       158: invokevirtual #24                 // Method dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler.responses:()Ljava/util/List;\n+       158: invokevirtual #69                 // Method dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler.responses:()Ljava/util/List;\n        161: iconst_0\n-       162: invokeinterface #25,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;\n-       167: checkcast     #26                 // class dev/langchain4j/model/output/Response\n+       162: invokeinterface #73,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;\n+       167: checkcast     #77                 // class dev/langchain4j/model/output/Response\n        170: astore_3\n        171: aload_0\n        172: aload_3\n-       173: invokevirtual #27                 // Method dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n-       176: checkcast     #19                 // class dev/langchain4j/data/message/AiMessage\n-       179: invokevirtual #28                 // Method dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n-       182: invokevirtual #29                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       185: ldc           #30                 // String HOW ARE YOU?\n-       187: invokevirtual #31                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       173: invokevirtual #79                 // Method dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n+       176: checkcast     #56                 // class dev/langchain4j/data/message/AiMessage\n+       179: invokevirtual #83                 // Method dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n+       182: invokevirtual #87                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       185: ldc           #91                 // String HOW ARE YOU?\n+       187: invokevirtual #93                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n        190: pop\n        191: aload_0\n        192: aload_3\n-       193: invokevirtual #32                 // Method dev/langchain4j/model/output/Response.tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n-       196: invokevirtual #33                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-       199: invokevirtual #34                 // Method org/assertj/core/api/ObjectAssert.isNull:()V\n+       193: invokevirtual #98                 // Method dev/langchain4j/model/output/Response.tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n+       196: invokevirtual #102                // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       199: invokevirtual #105                // Method org/assertj/core/api/ObjectAssert.isNull:()V\n        202: aload_0\n        203: aload_3\n-       204: invokevirtual #35                 // Method dev/langchain4j/model/output/Response.finishReason:()Ldev/langchain4j/model/output/FinishReason;\n-       207: invokevirtual #36                 // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-       210: invokevirtual #37                 // Method org/assertj/core/api/AbstractComparableAssert.isNull:()V\n+       204: invokevirtual #110                // Method dev/langchain4j/model/output/Response.finishReason:()Ldev/langchain4j/model/output/FinishReason;\n+       207: invokevirtual #114                // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+       210: invokevirtual #117                // Method org/assertj/core/api/AbstractComparableAssert.isNull:()V\n        213: return\n       LineNumberTable:\n         line 62: 0\n         line 65: 8\n         line 66: 16\n         line 67: 32\n         line 68: 48\n@@ -428,30 +428,30 @@\n         Start  Length  Slot  Name   Signature\n            16     124     2 messages   Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n            72      68     3 handler   Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler<Ldev/langchain4j/data/message/AiMessage;>;\n            95      45     4 response   Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n           148      65     2 handler   Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler<Ldev/langchain4j/data/message/AiMessage;>;\n           171      42     3 response   Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n     RuntimeVisibleAnnotations:\n-      0: #69()\n+      0: #165()\n         org.junit.jupiter.api.Test\n \n   private static void lambda$test_not_supported$1(dev.langchain4j.model.chat.StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel, java.util.List, dev.langchain4j.model.chat.StreamingChatLanguageModelTest$CollectorResponseHandler) throws java.lang.Throwable;\n     descriptor: (Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)V\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=4, locals=3, args_size=3\n          0: aload_0\n          1: aload_1\n-         2: invokestatic  #39                 // Method dev/langchain4j/agent/tool/ToolSpecification.builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-         5: ldc           #40                 // String foo\n-         7: invokevirtual #41                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-        10: invokevirtual #42                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n+         2: invokestatic  #123                // Method dev/langchain4j/agent/tool/ToolSpecification.builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+         5: ldc           #129                // String foo\n+         7: invokevirtual #131                // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+        10: invokevirtual #137                // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n         13: aload_2\n-        14: invokevirtual #43                 // Method dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel.generate:(Ljava/util/List;Ldev/langchain4j/agent/tool/ToolSpecification;Ldev/langchain4j/model/StreamingResponseHandler;)V\n+        14: invokevirtual #141                // Method dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel.generate:(Ljava/util/List;Ldev/langchain4j/agent/tool/ToolSpecification;Ldev/langchain4j/model/StreamingResponseHandler;)V\n         17: return\n       LineNumberTable:\n         line 56: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      18     0 model   Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;\n             0      18     1 messages   Ljava/util/List;\n@@ -462,41 +462,41 @@\n   private static void lambda$test_not_supported$0(dev.langchain4j.model.chat.StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel, java.util.List, dev.langchain4j.model.chat.StreamingChatLanguageModelTest$CollectorResponseHandler) throws java.lang.Throwable;\n     descriptor: (Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)V\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=4, locals=3, args_size=3\n          0: aload_0\n          1: aload_1\n-         2: new           #6                  // class java/util/ArrayList\n+         2: new           #13                 // class java/util/ArrayList\n          5: dup\n-         6: invokespecial #7                  // Method java/util/ArrayList.\"<init>\":()V\n+         6: invokespecial #15                 // Method java/util/ArrayList.\"<init>\":()V\n          9: aload_2\n-        10: invokevirtual #44                 // Method dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel.generate:(Ljava/util/List;Ljava/util/List;Ldev/langchain4j/model/StreamingResponseHandler;)V\n+        10: invokevirtual #144                // Method dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel.generate:(Ljava/util/List;Ljava/util/List;Ldev/langchain4j/model/StreamingResponseHandler;)V\n         13: return\n       LineNumberTable:\n         line 52: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      14     0 model   Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;\n             0      14     1 messages   Ljava/util/List;\n             0      14     2 handler   Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;\n     Exceptions:\n       throws java.lang.Throwable\n }\n SourceFile: \"StreamingChatLanguageModelTest.java\"\n-InnerClasses:\n-  public static final #48= #4 of #45;     // CollectorResponseHandler=class dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler of class dev/langchain4j/model/chat/StreamingChatLanguageModelTest\n-  public static #50= #2 of #45;           // StreamingUpperCaseEchoModel=class dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel of class dev/langchain4j/model/chat/StreamingChatLanguageModelTest\n-  public static #144= #143 of #196;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n-  public static final #184= #129 of #126; // Builder=class dev/langchain4j/agent/tool/ToolSpecification$Builder of class dev/langchain4j/agent/tool/ToolSpecification\n-  public static final #202= #201 of #205; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n BootstrapMethods:\n-  0: #89 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  0: #180 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #90 ()V\n-      #91 REF_invokeStatic dev/langchain4j/model/chat/StreamingChatLanguageModelTest.lambda$test_not_supported$0:(Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)V\n-      #90 ()V\n-  1: #89 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #187 ()V\n+      #188 REF_invokeStatic dev/langchain4j/model/chat/StreamingChatLanguageModelTest.lambda$test_not_supported$0:(Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)V\n+      #187 ()V\n+  1: #180 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #90 ()V\n-      #98 REF_invokeStatic dev/langchain4j/model/chat/StreamingChatLanguageModelTest.lambda$test_not_supported$1:(Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)V\n-      #90 ()V\n+      #187 ()V\n+      #191 REF_invokeStatic dev/langchain4j/model/chat/StreamingChatLanguageModelTest.lambda$test_not_supported$1:(Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)V\n+      #187 ()V\n+InnerClasses:\n+  public static #195= #7 of #19;          // StreamingUpperCaseEchoModel=class dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel of class dev/langchain4j/model/chat/StreamingChatLanguageModelTest\n+  public static final #196= #10 of #19;   // CollectorResponseHandler=class dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler of class dev/langchain4j/model/chat/StreamingChatLanguageModelTest\n+  public static #201= #197 of #199;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n+  public static final #202= #132 of #124; // Builder=class dev/langchain4j/agent/tool/ToolSpecification$Builder of class dev/langchain4j/agent/tool/ToolSpecification\n+  public static final #207= #203 of #205; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n"}]}, {"source1": "dev/langchain4j/model/chat/TestStreamingResponseHandler.class", "source2": "dev/langchain4j/model/chat/TestStreamingResponseHandler.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,142 +1,141 @@\n-  SHA-256 checksum 4660ad0f3fa8e886332fbdbdf6a76a49bd3a2ea535d30abdd4e4ae6999bd64db\n+  SHA-256 checksum 5e5867d3df7728145839a3e35b2706753ddb5fc033d2d8b9a13039951b5f7fee\n   Compiled from \"TestStreamingResponseHandler.java\"\n public class dev.langchain4j.model.chat.TestStreamingResponseHandler<T extends java.lang.Object> extends java.lang.Object implements dev.langchain4j.model.StreamingResponseHandler<T>\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #25                         // dev/langchain4j/model/chat/TestStreamingResponseHandler\n-  super_class: #26                        // java/lang/Object\n+  this_class: #11                         // dev/langchain4j/model/chat/TestStreamingResponseHandler\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 1, methods: 5, attributes: 2\n Constant pool:\n-    #1 = Methodref          #26.#65       // java/lang/Object.\"<init>\":()V\n-    #2 = Class              #66           // java/util/concurrent/CompletableFuture\n-    #3 = Methodref          #2.#65        // java/util/concurrent/CompletableFuture.\"<init>\":()V\n-    #4 = Fieldref           #25.#67       // dev/langchain4j/model/chat/TestStreamingResponseHandler.futureResponse:Ljava/util/concurrent/CompletableFuture;\n-    #5 = Fieldref           #68.#69       // java/lang/System.out:Ljava/io/PrintStream;\n-    #6 = Class              #70           // java/lang/StringBuilder\n-    #7 = Methodref          #6.#65        // java/lang/StringBuilder.\"<init>\":()V\n-    #8 = String             #71           // onNext: \\'\n-    #9 = Methodref          #6.#72        // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-   #10 = String             #73           // \\'\n-   #11 = Methodref          #6.#74        // java/lang/StringBuilder.toString:()Ljava/lang/String;\n-   #12 = Methodref          #75.#76       // java/io/PrintStream.println:(Ljava/lang/String;)V\n-   #13 = String             #77           // onComplete: \\'\n-   #14 = Methodref          #6.#78        // java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-   #15 = Methodref          #2.#79        // java/util/concurrent/CompletableFuture.complete:(Ljava/lang/Object;)Z\n-   #16 = Methodref          #2.#80        // java/util/concurrent/CompletableFuture.completeExceptionally:(Ljava/lang/Throwable;)Z\n-   #17 = Long               30l\n-   #19 = Fieldref           #81.#82       // java/util/concurrent/TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;\n-   #20 = Methodref          #2.#83        // java/util/concurrent/CompletableFuture.get:(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;\n-   #21 = Class              #84           // dev/langchain4j/model/output/Response\n-   #22 = Class              #85           // java/lang/Exception\n-   #23 = Class              #86           // java/lang/RuntimeException\n-   #24 = Methodref          #23.#87       // java/lang/RuntimeException.\"<init>\":(Ljava/lang/Throwable;)V\n-   #25 = Class              #88           // dev/langchain4j/model/chat/TestStreamingResponseHandler\n-   #26 = Class              #89           // java/lang/Object\n-   #27 = Class              #90           // dev/langchain4j/model/StreamingResponseHandler\n-   #28 = Utf8               futureResponse\n-   #29 = Utf8               Ljava/util/concurrent/CompletableFuture;\n-   #30 = Utf8               Signature\n-   #31 = Utf8               Ljava/util/concurrent/CompletableFuture<Ldev/langchain4j/model/output/Response<TT;>;>;\n-   #32 = Utf8               <init>\n-   #33 = Utf8               ()V\n-   #34 = Utf8               Code\n-   #35 = Utf8               LineNumberTable\n-   #36 = Utf8               LocalVariableTable\n-   #37 = Utf8               this\n-   #38 = Utf8               Ldev/langchain4j/model/chat/TestStreamingResponseHandler;\n-   #39 = Utf8               LocalVariableTypeTable\n-   #40 = Utf8               Ldev/langchain4j/model/chat/TestStreamingResponseHandler<TT;>;\n-   #41 = Utf8               onNext\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Class              #8            // java/util/concurrent/CompletableFuture\n+    #8 = Utf8               java/util/concurrent/CompletableFuture\n+    #9 = Methodref          #7.#3         // java/util/concurrent/CompletableFuture.\"<init>\":()V\n+   #10 = Fieldref           #11.#12       // dev/langchain4j/model/chat/TestStreamingResponseHandler.futureResponse:Ljava/util/concurrent/CompletableFuture;\n+   #11 = Class              #13           // dev/langchain4j/model/chat/TestStreamingResponseHandler\n+   #12 = NameAndType        #14:#15       // futureResponse:Ljava/util/concurrent/CompletableFuture;\n+   #13 = Utf8               dev/langchain4j/model/chat/TestStreamingResponseHandler\n+   #14 = Utf8               futureResponse\n+   #15 = Utf8               Ljava/util/concurrent/CompletableFuture;\n+   #16 = Fieldref           #17.#18       // java/lang/System.out:Ljava/io/PrintStream;\n+   #17 = Class              #19           // java/lang/System\n+   #18 = NameAndType        #20:#21       // out:Ljava/io/PrintStream;\n+   #19 = Utf8               java/lang/System\n+   #20 = Utf8               out\n+   #21 = Utf8               Ljava/io/PrintStream;\n+   #22 = Class              #23           // java/lang/StringBuilder\n+   #23 = Utf8               java/lang/StringBuilder\n+   #24 = Methodref          #22.#3        // java/lang/StringBuilder.\"<init>\":()V\n+   #25 = String             #26           // onNext: \\'\n+   #26 = Utf8               onNext: \\'\n+   #27 = Methodref          #22.#28       // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+   #28 = NameAndType        #29:#30       // append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+   #29 = Utf8               append\n+   #30 = Utf8               (Ljava/lang/String;)Ljava/lang/StringBuilder;\n+   #31 = String             #32           // \\'\n+   #32 = Utf8               \\'\n+   #33 = Methodref          #22.#34       // java/lang/StringBuilder.toString:()Ljava/lang/String;\n+   #34 = NameAndType        #35:#36       // toString:()Ljava/lang/String;\n+   #35 = Utf8               toString\n+   #36 = Utf8               ()Ljava/lang/String;\n+   #37 = Methodref          #38.#39       // java/io/PrintStream.println:(Ljava/lang/String;)V\n+   #38 = Class              #40           // java/io/PrintStream\n+   #39 = NameAndType        #41:#42       // println:(Ljava/lang/String;)V\n+   #40 = Utf8               java/io/PrintStream\n+   #41 = Utf8               println\n    #42 = Utf8               (Ljava/lang/String;)V\n-   #43 = Utf8               token\n-   #44 = Utf8               Ljava/lang/String;\n-   #45 = Utf8               onComplete\n-   #46 = Utf8               (Ldev/langchain4j/model/output/Response;)V\n-   #47 = Utf8               response\n-   #48 = Utf8               Ldev/langchain4j/model/output/Response;\n-   #49 = Utf8               Ldev/langchain4j/model/output/Response<TT;>;\n-   #50 = Utf8               (Ldev/langchain4j/model/output/Response<TT;>;)V\n-   #51 = Utf8               onError\n-   #52 = Utf8               (Ljava/lang/Throwable;)V\n-   #53 = Utf8               error\n-   #54 = Utf8               Ljava/lang/Throwable;\n-   #55 = Utf8               get\n-   #56 = Utf8               ()Ldev/langchain4j/model/output/Response;\n-   #57 = Utf8               e\n-   #58 = Utf8               Ljava/lang/Exception;\n-   #59 = Utf8               StackMapTable\n-   #60 = Class              #85           // java/lang/Exception\n-   #61 = Utf8               ()Ldev/langchain4j/model/output/Response<TT;>;\n-   #62 = Utf8               <T:Ljava/lang/Object;>Ljava/lang/Object;Ldev/langchain4j/model/StreamingResponseHandler<TT;>;\n-   #63 = Utf8               SourceFile\n-   #64 = Utf8               TestStreamingResponseHandler.java\n-   #65 = NameAndType        #32:#33       // \"<init>\":()V\n-   #66 = Utf8               java/util/concurrent/CompletableFuture\n-   #67 = NameAndType        #28:#29       // futureResponse:Ljava/util/concurrent/CompletableFuture;\n-   #68 = Class              #91           // java/lang/System\n-   #69 = NameAndType        #92:#93       // out:Ljava/io/PrintStream;\n-   #70 = Utf8               java/lang/StringBuilder\n-   #71 = Utf8               onNext: \\'\n-   #72 = NameAndType        #94:#95       // append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-   #73 = Utf8               \\'\n-   #74 = NameAndType        #96:#97       // toString:()Ljava/lang/String;\n-   #75 = Class              #98           // java/io/PrintStream\n-   #76 = NameAndType        #99:#42       // println:(Ljava/lang/String;)V\n-   #77 = Utf8               onComplete: \\'\n-   #78 = NameAndType        #94:#100      // append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-   #79 = NameAndType        #101:#102     // complete:(Ljava/lang/Object;)Z\n-   #80 = NameAndType        #103:#104     // completeExceptionally:(Ljava/lang/Throwable;)Z\n-   #81 = Class              #105          // java/util/concurrent/TimeUnit\n-   #82 = NameAndType        #106:#107     // SECONDS:Ljava/util/concurrent/TimeUnit;\n-   #83 = NameAndType        #55:#108      // get:(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;\n-   #84 = Utf8               dev/langchain4j/model/output/Response\n-   #85 = Utf8               java/lang/Exception\n-   #86 = Utf8               java/lang/RuntimeException\n-   #87 = NameAndType        #32:#52       // \"<init>\":(Ljava/lang/Throwable;)V\n-   #88 = Utf8               dev/langchain4j/model/chat/TestStreamingResponseHandler\n-   #89 = Utf8               java/lang/Object\n-   #90 = Utf8               dev/langchain4j/model/StreamingResponseHandler\n-   #91 = Utf8               java/lang/System\n-   #92 = Utf8               out\n-   #93 = Utf8               Ljava/io/PrintStream;\n-   #94 = Utf8               append\n-   #95 = Utf8               (Ljava/lang/String;)Ljava/lang/StringBuilder;\n-   #96 = Utf8               toString\n-   #97 = Utf8               ()Ljava/lang/String;\n-   #98 = Utf8               java/io/PrintStream\n-   #99 = Utf8               println\n-  #100 = Utf8               (Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-  #101 = Utf8               complete\n-  #102 = Utf8               (Ljava/lang/Object;)Z\n-  #103 = Utf8               completeExceptionally\n-  #104 = Utf8               (Ljava/lang/Throwable;)Z\n-  #105 = Utf8               java/util/concurrent/TimeUnit\n-  #106 = Utf8               SECONDS\n-  #107 = Utf8               Ljava/util/concurrent/TimeUnit;\n-  #108 = Utf8               (JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;\n+   #43 = String             #44           // onComplete: \\'\n+   #44 = Utf8               onComplete: \\'\n+   #45 = Methodref          #22.#46       // java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+   #46 = NameAndType        #29:#47       // append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+   #47 = Utf8               (Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+   #48 = Methodref          #7.#49        // java/util/concurrent/CompletableFuture.complete:(Ljava/lang/Object;)Z\n+   #49 = NameAndType        #50:#51       // complete:(Ljava/lang/Object;)Z\n+   #50 = Utf8               complete\n+   #51 = Utf8               (Ljava/lang/Object;)Z\n+   #52 = Methodref          #7.#53        // java/util/concurrent/CompletableFuture.completeExceptionally:(Ljava/lang/Throwable;)Z\n+   #53 = NameAndType        #54:#55       // completeExceptionally:(Ljava/lang/Throwable;)Z\n+   #54 = Utf8               completeExceptionally\n+   #55 = Utf8               (Ljava/lang/Throwable;)Z\n+   #56 = Long               30l\n+   #58 = Fieldref           #59.#60       // java/util/concurrent/TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;\n+   #59 = Class              #61           // java/util/concurrent/TimeUnit\n+   #60 = NameAndType        #62:#63       // SECONDS:Ljava/util/concurrent/TimeUnit;\n+   #61 = Utf8               java/util/concurrent/TimeUnit\n+   #62 = Utf8               SECONDS\n+   #63 = Utf8               Ljava/util/concurrent/TimeUnit;\n+   #64 = Methodref          #7.#65        // java/util/concurrent/CompletableFuture.get:(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;\n+   #65 = NameAndType        #66:#67       // get:(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;\n+   #66 = Utf8               get\n+   #67 = Utf8               (JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;\n+   #68 = Class              #69           // dev/langchain4j/model/output/Response\n+   #69 = Utf8               dev/langchain4j/model/output/Response\n+   #70 = Class              #71           // java/lang/Exception\n+   #71 = Utf8               java/lang/Exception\n+   #72 = Class              #73           // java/lang/RuntimeException\n+   #73 = Utf8               java/lang/RuntimeException\n+   #74 = Methodref          #72.#75       // java/lang/RuntimeException.\"<init>\":(Ljava/lang/Throwable;)V\n+   #75 = NameAndType        #5:#76        // \"<init>\":(Ljava/lang/Throwable;)V\n+   #76 = Utf8               (Ljava/lang/Throwable;)V\n+   #77 = Class              #78           // dev/langchain4j/model/StreamingResponseHandler\n+   #78 = Utf8               dev/langchain4j/model/StreamingResponseHandler\n+   #79 = Utf8               Signature\n+   #80 = Utf8               Ljava/util/concurrent/CompletableFuture<Ldev/langchain4j/model/output/Response<TT;>;>;\n+   #81 = Utf8               Code\n+   #82 = Utf8               LineNumberTable\n+   #83 = Utf8               LocalVariableTable\n+   #84 = Utf8               this\n+   #85 = Utf8               Ldev/langchain4j/model/chat/TestStreamingResponseHandler;\n+   #86 = Utf8               LocalVariableTypeTable\n+   #87 = Utf8               Ldev/langchain4j/model/chat/TestStreamingResponseHandler<TT;>;\n+   #88 = Utf8               onNext\n+   #89 = Utf8               token\n+   #90 = Utf8               Ljava/lang/String;\n+   #91 = Utf8               onComplete\n+   #92 = Utf8               (Ldev/langchain4j/model/output/Response;)V\n+   #93 = Utf8               response\n+   #94 = Utf8               Ldev/langchain4j/model/output/Response;\n+   #95 = Utf8               Ldev/langchain4j/model/output/Response<TT;>;\n+   #96 = Utf8               (Ldev/langchain4j/model/output/Response<TT;>;)V\n+   #97 = Utf8               onError\n+   #98 = Utf8               error\n+   #99 = Utf8               Ljava/lang/Throwable;\n+  #100 = Utf8               ()Ldev/langchain4j/model/output/Response;\n+  #101 = Utf8               e\n+  #102 = Utf8               Ljava/lang/Exception;\n+  #103 = Utf8               StackMapTable\n+  #104 = Utf8               ()Ldev/langchain4j/model/output/Response<TT;>;\n+  #105 = Utf8               <T:Ljava/lang/Object;>Ljava/lang/Object;Ldev/langchain4j/model/StreamingResponseHandler<TT;>;\n+  #106 = Utf8               SourceFile\n+  #107 = Utf8               TestStreamingResponseHandler.java\n {\n   private final java.util.concurrent.CompletableFuture<dev.langchain4j.model.output.Response<T>> futureResponse;\n     descriptor: Ljava/util/concurrent/CompletableFuture;\n     flags: (0x0012) ACC_PRIVATE, ACC_FINAL\n-    Signature: #31                          // Ljava/util/concurrent/CompletableFuture<Ldev/langchain4j/model/output/Response<TT;>;>;\n+    Signature: #80                          // Ljava/util/concurrent/CompletableFuture<Ldev/langchain4j/model/output/Response<TT;>;>;\n \n   public dev.langchain4j.model.chat.TestStreamingResponseHandler();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=1, args_size=1\n          0: aload_0\n          1: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n          4: aload_0\n-         5: new           #2                  // class java/util/concurrent/CompletableFuture\n+         5: new           #7                  // class java/util/concurrent/CompletableFuture\n          8: dup\n-         9: invokespecial #3                  // Method java/util/concurrent/CompletableFuture.\"<init>\":()V\n-        12: putfield      #4                  // Field futureResponse:Ljava/util/concurrent/CompletableFuture;\n+         9: invokespecial #9                  // Method java/util/concurrent/CompletableFuture.\"<init>\":()V\n+        12: putfield      #10                 // Field futureResponse:Ljava/util/concurrent/CompletableFuture;\n         15: return\n       LineNumberTable:\n         line 10: 0\n         line 12: 4\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      16     0  this   Ldev/langchain4j/model/chat/TestStreamingResponseHandler;\n@@ -145,26 +144,26 @@\n             0      16     0  this   Ldev/langchain4j/model/chat/TestStreamingResponseHandler<TT;>;\n \n   public void onNext(java.lang.String);\n     descriptor: (Ljava/lang/String;)V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=2, args_size=2\n-         0: getstatic     #5                  // Field java/lang/System.out:Ljava/io/PrintStream;\n-         3: new           #6                  // class java/lang/StringBuilder\n+         0: getstatic     #16                 // Field java/lang/System.out:Ljava/io/PrintStream;\n+         3: new           #22                 // class java/lang/StringBuilder\n          6: dup\n-         7: invokespecial #7                  // Method java/lang/StringBuilder.\"<init>\":()V\n-        10: ldc           #8                  // String onNext: \\'\n-        12: invokevirtual #9                  // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+         7: invokespecial #24                 // Method java/lang/StringBuilder.\"<init>\":()V\n+        10: ldc           #25                 // String onNext: \\'\n+        12: invokevirtual #27                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         15: aload_1\n-        16: invokevirtual #9                  // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-        19: ldc           #10                 // String \\'\n-        21: invokevirtual #9                  // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-        24: invokevirtual #11                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n-        27: invokevirtual #12                 // Method java/io/PrintStream.println:(Ljava/lang/String;)V\n+        16: invokevirtual #27                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        19: ldc           #31                 // String \\'\n+        21: invokevirtual #27                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        24: invokevirtual #33                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n+        27: invokevirtual #37                 // Method java/io/PrintStream.println:(Ljava/lang/String;)V\n         30: return\n       LineNumberTable:\n         line 16: 0\n         line 17: 30\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      31     0  this   Ldev/langchain4j/model/chat/TestStreamingResponseHandler;\n@@ -174,55 +173,55 @@\n             0      31     0  this   Ldev/langchain4j/model/chat/TestStreamingResponseHandler<TT;>;\n \n   public void onComplete(dev.langchain4j.model.output.Response<T>);\n     descriptor: (Ldev/langchain4j/model/output/Response;)V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=2, args_size=2\n-         0: getstatic     #5                  // Field java/lang/System.out:Ljava/io/PrintStream;\n-         3: new           #6                  // class java/lang/StringBuilder\n+         0: getstatic     #16                 // Field java/lang/System.out:Ljava/io/PrintStream;\n+         3: new           #22                 // class java/lang/StringBuilder\n          6: dup\n-         7: invokespecial #7                  // Method java/lang/StringBuilder.\"<init>\":()V\n-        10: ldc           #13                 // String onComplete: \\'\n-        12: invokevirtual #9                  // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+         7: invokespecial #24                 // Method java/lang/StringBuilder.\"<init>\":()V\n+        10: ldc           #43                 // String onComplete: \\'\n+        12: invokevirtual #27                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         15: aload_1\n-        16: invokevirtual #14                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-        19: ldc           #10                 // String \\'\n-        21: invokevirtual #9                  // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-        24: invokevirtual #11                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n-        27: invokevirtual #12                 // Method java/io/PrintStream.println:(Ljava/lang/String;)V\n+        16: invokevirtual #45                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+        19: ldc           #31                 // String \\'\n+        21: invokevirtual #27                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        24: invokevirtual #33                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n+        27: invokevirtual #37                 // Method java/io/PrintStream.println:(Ljava/lang/String;)V\n         30: aload_0\n-        31: getfield      #4                  // Field futureResponse:Ljava/util/concurrent/CompletableFuture;\n+        31: getfield      #10                 // Field futureResponse:Ljava/util/concurrent/CompletableFuture;\n         34: aload_1\n-        35: invokevirtual #15                 // Method java/util/concurrent/CompletableFuture.complete:(Ljava/lang/Object;)Z\n+        35: invokevirtual #48                 // Method java/util/concurrent/CompletableFuture.complete:(Ljava/lang/Object;)Z\n         38: pop\n         39: return\n       LineNumberTable:\n         line 21: 0\n         line 22: 30\n         line 23: 39\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      40     0  this   Ldev/langchain4j/model/chat/TestStreamingResponseHandler;\n             0      40     1 response   Ldev/langchain4j/model/output/Response;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0      40     0  this   Ldev/langchain4j/model/chat/TestStreamingResponseHandler<TT;>;\n             0      40     1 response   Ldev/langchain4j/model/output/Response<TT;>;\n-    Signature: #50                          // (Ldev/langchain4j/model/output/Response<TT;>;)V\n+    Signature: #96                          // (Ldev/langchain4j/model/output/Response<TT;>;)V\n \n   public void onError(java.lang.Throwable);\n     descriptor: (Ljava/lang/Throwable;)V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n-         1: getfield      #4                  // Field futureResponse:Ljava/util/concurrent/CompletableFuture;\n+         1: getfield      #10                 // Field futureResponse:Ljava/util/concurrent/CompletableFuture;\n          4: aload_1\n-         5: invokevirtual #16                 // Method java/util/concurrent/CompletableFuture.completeExceptionally:(Ljava/lang/Throwable;)Z\n+         5: invokevirtual #52                 // Method java/util/concurrent/CompletableFuture.completeExceptionally:(Ljava/lang/Throwable;)Z\n          8: pop\n          9: return\n       LineNumberTable:\n         line 27: 0\n         line 28: 9\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n@@ -234,25 +233,25 @@\n \n   public dev.langchain4j.model.output.Response<T> get();\n     descriptor: ()Ldev/langchain4j/model/output/Response;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=4, locals=2, args_size=1\n          0: aload_0\n-         1: getfield      #4                  // Field futureResponse:Ljava/util/concurrent/CompletableFuture;\n-         4: ldc2_w        #17                 // long 30l\n-         7: getstatic     #19                 // Field java/util/concurrent/TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;\n-        10: invokevirtual #20                 // Method java/util/concurrent/CompletableFuture.get:(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;\n-        13: checkcast     #21                 // class dev/langchain4j/model/output/Response\n+         1: getfield      #10                 // Field futureResponse:Ljava/util/concurrent/CompletableFuture;\n+         4: ldc2_w        #56                 // long 30l\n+         7: getstatic     #58                 // Field java/util/concurrent/TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;\n+        10: invokevirtual #64                 // Method java/util/concurrent/CompletableFuture.get:(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;\n+        13: checkcast     #68                 // class dev/langchain4j/model/output/Response\n         16: areturn\n         17: astore_1\n-        18: new           #23                 // class java/lang/RuntimeException\n+        18: new           #72                 // class java/lang/RuntimeException\n         21: dup\n         22: aload_1\n-        23: invokespecial #24                 // Method java/lang/RuntimeException.\"<init>\":(Ljava/lang/Throwable;)V\n+        23: invokespecial #74                 // Method java/lang/RuntimeException.\"<init>\":(Ljava/lang/Throwable;)V\n         26: athrow\n       Exception table:\n          from    to  target type\n              0    16    17   Class java/lang/Exception\n       LineNumberTable:\n         line 32: 0\n         line 33: 17\n@@ -263,11 +262,11 @@\n             0      27     0  this   Ldev/langchain4j/model/chat/TestStreamingResponseHandler;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0      27     0  this   Ldev/langchain4j/model/chat/TestStreamingResponseHandler<TT;>;\n       StackMapTable: number_of_entries = 1\n         frame_type = 81 /* same_locals_1_stack_item */\n           stack = [ class java/lang/Exception ]\n-    Signature: #61                          // ()Ldev/langchain4j/model/output/Response<TT;>;\n+    Signature: #104                         // ()Ldev/langchain4j/model/output/Response<TT;>;\n }\n-Signature: #62                          // <T:Ljava/lang/Object;>Ljava/lang/Object;Ldev/langchain4j/model/StreamingResponseHandler<TT;>;\n+Signature: #105                         // <T:Ljava/lang/Object;>Ljava/lang/Object;Ldev/langchain4j/model/StreamingResponseHandler<TT;>;\n SourceFile: \"TestStreamingResponseHandler.java\"\n"}]}, {"source1": "dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator.class", "source2": "dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,105 +1,105 @@\n-  SHA-256 checksum e477327d744c996f6ab6d2a0801f81df146acd0c1837be577001c85ae0efc5c1\n+  SHA-256 checksum 83c16af0f91cc21bc641a710488df1394c6c824382622f5e1103e941bbda8cf0\n   Compiled from \"TokenCountEstimatorTest.java\"\n public class dev.langchain4j.model.chat.TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator implements dev.langchain4j.model.chat.TokenCountEstimator\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #9                          // dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n-  super_class: #10                        // java/lang/Object\n+  this_class: #43                         // dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 3, attributes: 3\n Constant pool:\n-   #1 = Methodref          #10.#35        // java/lang/Object.\"<init>\":()V\n-   #2 = InterfaceMethodref #36.#37        // java/util/List.stream:()Ljava/util/stream/Stream;\n-   #3 = InvokeDynamic      #0:#43         // #0:applyAsInt:()Ljava/util/function/ToIntFunction;\n-   #4 = InterfaceMethodref #44.#45        // java/util/stream/Stream.mapToInt:(Ljava/util/function/ToIntFunction;)Ljava/util/stream/IntStream;\n-   #5 = InterfaceMethodref #46.#47        // java/util/stream/IntStream.sum:()I\n-   #6 = InterfaceMethodref #48.#49        // dev/langchain4j/data/message/ChatMessage.text:()Ljava/lang/String;\n-   #7 = String             #50            // \\\\s+\n-   #8 = Methodref          #51.#52        // java/lang/String.split:(Ljava/lang/String;)[Ljava/lang/String;\n-   #9 = Class              #54            // dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n-  #10 = Class              #55            // java/lang/Object\n-  #11 = Class              #56            // dev/langchain4j/model/chat/TokenCountEstimator\n-  #12 = Utf8               <init>\n-  #13 = Utf8               ()V\n-  #14 = Utf8               Code\n-  #15 = Utf8               LineNumberTable\n-  #16 = Utf8               LocalVariableTable\n-  #17 = Utf8               this\n-  #18 = Utf8               WhitespaceSplitTokenCountEstimator\n-  #19 = Utf8               InnerClasses\n-  #20 = Utf8               Ldev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator;\n-  #21 = Utf8               estimateTokenCount\n-  #22 = Utf8               (Ljava/util/List;)I\n-  #23 = Utf8               messages\n-  #24 = Utf8               Ljava/util/List;\n-  #25 = Utf8               LocalVariableTypeTable\n-  #26 = Utf8               Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n-  #27 = Utf8               Signature\n-  #28 = Utf8               (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;)I\n-  #29 = Utf8               lambda$estimateTokenCount$0\n-  #30 = Utf8               (Ldev/langchain4j/data/message/ChatMessage;)I\n-  #31 = Utf8               message\n-  #32 = Utf8               Ldev/langchain4j/data/message/ChatMessage;\n-  #33 = Utf8               SourceFile\n-  #34 = Utf8               TokenCountEstimatorTest.java\n-  #35 = NameAndType        #12:#13        // \"<init>\":()V\n-  #36 = Class              #57            // java/util/List\n-  #37 = NameAndType        #58:#59        // stream:()Ljava/util/stream/Stream;\n-  #38 = Utf8               BootstrapMethods\n-  #39 = MethodHandle       6:#60          // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #40 = MethodType         #61            //  (Ljava/lang/Object;)I\n-  #41 = MethodHandle       6:#62          // REF_invokeStatic dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator.lambda$estimateTokenCount$0:(Ldev/langchain4j/data/message/ChatMessage;)I\n-  #42 = MethodType         #30            //  (Ldev/langchain4j/data/message/ChatMessage;)I\n-  #43 = NameAndType        #63:#64        // applyAsInt:()Ljava/util/function/ToIntFunction;\n-  #44 = Class              #65            // java/util/stream/Stream\n-  #45 = NameAndType        #66:#67        // mapToInt:(Ljava/util/function/ToIntFunction;)Ljava/util/stream/IntStream;\n-  #46 = Class              #68            // java/util/stream/IntStream\n-  #47 = NameAndType        #69:#70        // sum:()I\n-  #48 = Class              #71            // dev/langchain4j/data/message/ChatMessage\n-  #49 = NameAndType        #72:#73        // text:()Ljava/lang/String;\n-  #50 = Utf8               \\\\s+\n-  #51 = Class              #74            // java/lang/String\n-  #52 = NameAndType        #75:#76        // split:(Ljava/lang/String;)[Ljava/lang/String;\n-  #53 = Class              #77            // dev/langchain4j/model/chat/TokenCountEstimatorTest\n-  #54 = Utf8               dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n-  #55 = Utf8               java/lang/Object\n-  #56 = Utf8               dev/langchain4j/model/chat/TokenCountEstimator\n-  #57 = Utf8               java/util/List\n-  #58 = Utf8               stream\n-  #59 = Utf8               ()Ljava/util/stream/Stream;\n-  #60 = Methodref          #78.#79        // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #61 = Utf8               (Ljava/lang/Object;)I\n-  #62 = Methodref          #9.#80         // dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator.lambda$estimateTokenCount$0:(Ldev/langchain4j/data/message/ChatMessage;)I\n-  #63 = Utf8               applyAsInt\n-  #64 = Utf8               ()Ljava/util/function/ToIntFunction;\n-  #65 = Utf8               java/util/stream/Stream\n-  #66 = Utf8               mapToInt\n-  #67 = Utf8               (Ljava/util/function/ToIntFunction;)Ljava/util/stream/IntStream;\n-  #68 = Utf8               java/util/stream/IntStream\n-  #69 = Utf8               sum\n-  #70 = Utf8               ()I\n-  #71 = Utf8               dev/langchain4j/data/message/ChatMessage\n-  #72 = Utf8               text\n-  #73 = Utf8               ()Ljava/lang/String;\n-  #74 = Utf8               java/lang/String\n-  #75 = Utf8               split\n-  #76 = Utf8               (Ljava/lang/String;)[Ljava/lang/String;\n-  #77 = Utf8               dev/langchain4j/model/chat/TokenCountEstimatorTest\n-  #78 = Class              #81            // java/lang/invoke/LambdaMetafactory\n-  #79 = NameAndType        #82:#85        // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #80 = NameAndType        #29:#30        // lambda$estimateTokenCount$0:(Ldev/langchain4j/data/message/ChatMessage;)I\n-  #81 = Utf8               java/lang/invoke/LambdaMetafactory\n-  #82 = Utf8               metafactory\n-  #83 = Class              #87            // java/lang/invoke/MethodHandles$Lookup\n-  #84 = Utf8               Lookup\n-  #85 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #86 = Class              #88            // java/lang/invoke/MethodHandles\n-  #87 = Utf8               java/lang/invoke/MethodHandles$Lookup\n-  #88 = Utf8               java/lang/invoke/MethodHandles\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = InterfaceMethodref #8.#9          // java/util/List.stream:()Ljava/util/stream/Stream;\n+   #8 = Class              #10            // java/util/List\n+   #9 = NameAndType        #11:#12        // stream:()Ljava/util/stream/Stream;\n+  #10 = Utf8               java/util/List\n+  #11 = Utf8               stream\n+  #12 = Utf8               ()Ljava/util/stream/Stream;\n+  #13 = InvokeDynamic      #0:#14         // #0:applyAsInt:()Ljava/util/function/ToIntFunction;\n+  #14 = NameAndType        #15:#16        // applyAsInt:()Ljava/util/function/ToIntFunction;\n+  #15 = Utf8               applyAsInt\n+  #16 = Utf8               ()Ljava/util/function/ToIntFunction;\n+  #17 = InterfaceMethodref #18.#19        // java/util/stream/Stream.mapToInt:(Ljava/util/function/ToIntFunction;)Ljava/util/stream/IntStream;\n+  #18 = Class              #20            // java/util/stream/Stream\n+  #19 = NameAndType        #21:#22        // mapToInt:(Ljava/util/function/ToIntFunction;)Ljava/util/stream/IntStream;\n+  #20 = Utf8               java/util/stream/Stream\n+  #21 = Utf8               mapToInt\n+  #22 = Utf8               (Ljava/util/function/ToIntFunction;)Ljava/util/stream/IntStream;\n+  #23 = InterfaceMethodref #24.#25        // java/util/stream/IntStream.sum:()I\n+  #24 = Class              #26            // java/util/stream/IntStream\n+  #25 = NameAndType        #27:#28        // sum:()I\n+  #26 = Utf8               java/util/stream/IntStream\n+  #27 = Utf8               sum\n+  #28 = Utf8               ()I\n+  #29 = InterfaceMethodref #30.#31        // dev/langchain4j/data/message/ChatMessage.text:()Ljava/lang/String;\n+  #30 = Class              #32            // dev/langchain4j/data/message/ChatMessage\n+  #31 = NameAndType        #33:#34        // text:()Ljava/lang/String;\n+  #32 = Utf8               dev/langchain4j/data/message/ChatMessage\n+  #33 = Utf8               text\n+  #34 = Utf8               ()Ljava/lang/String;\n+  #35 = String             #36            // \\\\s+\n+  #36 = Utf8               \\\\s+\n+  #37 = Methodref          #38.#39        // java/lang/String.split:(Ljava/lang/String;)[Ljava/lang/String;\n+  #38 = Class              #40            // java/lang/String\n+  #39 = NameAndType        #41:#42        // split:(Ljava/lang/String;)[Ljava/lang/String;\n+  #40 = Utf8               java/lang/String\n+  #41 = Utf8               split\n+  #42 = Utf8               (Ljava/lang/String;)[Ljava/lang/String;\n+  #43 = Class              #44            // dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n+  #44 = Utf8               dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n+  #45 = Class              #46            // dev/langchain4j/model/chat/TokenCountEstimator\n+  #46 = Utf8               dev/langchain4j/model/chat/TokenCountEstimator\n+  #47 = Utf8               Code\n+  #48 = Utf8               LineNumberTable\n+  #49 = Utf8               LocalVariableTable\n+  #50 = Utf8               this\n+  #51 = Utf8               Ldev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator;\n+  #52 = Utf8               estimateTokenCount\n+  #53 = Utf8               (Ljava/util/List;)I\n+  #54 = Utf8               messages\n+  #55 = Utf8               Ljava/util/List;\n+  #56 = Utf8               LocalVariableTypeTable\n+  #57 = Utf8               Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n+  #58 = Utf8               Signature\n+  #59 = Utf8               (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;)I\n+  #60 = Utf8               lambda$estimateTokenCount$0\n+  #61 = Utf8               (Ldev/langchain4j/data/message/ChatMessage;)I\n+  #62 = Utf8               message\n+  #63 = Utf8               Ldev/langchain4j/data/message/ChatMessage;\n+  #64 = Utf8               SourceFile\n+  #65 = Utf8               TokenCountEstimatorTest.java\n+  #66 = Utf8               BootstrapMethods\n+  #67 = MethodHandle       6:#68          // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #68 = Methodref          #69.#70        // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #69 = Class              #71            // java/lang/invoke/LambdaMetafactory\n+  #70 = NameAndType        #72:#73        // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #71 = Utf8               java/lang/invoke/LambdaMetafactory\n+  #72 = Utf8               metafactory\n+  #73 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #74 = MethodType         #75            //  (Ljava/lang/Object;)I\n+  #75 = Utf8               (Ljava/lang/Object;)I\n+  #76 = MethodHandle       6:#77          // REF_invokeStatic dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator.lambda$estimateTokenCount$0:(Ldev/langchain4j/data/message/ChatMessage;)I\n+  #77 = Methodref          #43.#78        // dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator.lambda$estimateTokenCount$0:(Ldev/langchain4j/data/message/ChatMessage;)I\n+  #78 = NameAndType        #60:#61        // lambda$estimateTokenCount$0:(Ldev/langchain4j/data/message/ChatMessage;)I\n+  #79 = MethodType         #61            //  (Ldev/langchain4j/data/message/ChatMessage;)I\n+  #80 = Utf8               InnerClasses\n+  #81 = Class              #82            // dev/langchain4j/model/chat/TokenCountEstimatorTest\n+  #82 = Utf8               dev/langchain4j/model/chat/TokenCountEstimatorTest\n+  #83 = Utf8               WhitespaceSplitTokenCountEstimator\n+  #84 = Class              #85            // java/lang/invoke/MethodHandles$Lookup\n+  #85 = Utf8               java/lang/invoke/MethodHandles$Lookup\n+  #86 = Class              #87            // java/lang/invoke/MethodHandles\n+  #87 = Utf8               java/lang/invoke/MethodHandles\n+  #88 = Utf8               Lookup\n {\n   public dev.langchain4j.model.chat.TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -113,50 +113,50 @@\n \n   public int estimateTokenCount(java.util.List<dev.langchain4j.data.message.ChatMessage>);\n     descriptor: (Ljava/util/List;)I\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_1\n-         1: invokeinterface #2,  1            // InterfaceMethod java/util/List.stream:()Ljava/util/stream/Stream;\n-         6: invokedynamic #3,  0              // InvokeDynamic #0:applyAsInt:()Ljava/util/function/ToIntFunction;\n-        11: invokeinterface #4,  2            // InterfaceMethod java/util/stream/Stream.mapToInt:(Ljava/util/function/ToIntFunction;)Ljava/util/stream/IntStream;\n-        16: invokeinterface #5,  1            // InterfaceMethod java/util/stream/IntStream.sum:()I\n+         1: invokeinterface #7,  1            // InterfaceMethod java/util/List.stream:()Ljava/util/stream/Stream;\n+         6: invokedynamic #13,  0             // InvokeDynamic #0:applyAsInt:()Ljava/util/function/ToIntFunction;\n+        11: invokeinterface #17,  2           // InterfaceMethod java/util/stream/Stream.mapToInt:(Ljava/util/function/ToIntFunction;)Ljava/util/stream/IntStream;\n+        16: invokeinterface #23,  1           // InterfaceMethod java/util/stream/IntStream.sum:()I\n         21: ireturn\n       LineNumberTable:\n         line 18: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      22     0  this   Ldev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator;\n             0      22     1 messages   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0      22     1 messages   Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n-    Signature: #28                          // (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;)I\n+    Signature: #59                          // (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;)I\n \n   private static int lambda$estimateTokenCount$0(dev.langchain4j.data.message.ChatMessage);\n     descriptor: (Ldev/langchain4j/data/message/ChatMessage;)I\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=2, locals=1, args_size=1\n          0: aload_0\n-         1: invokeinterface #6,  1            // InterfaceMethod dev/langchain4j/data/message/ChatMessage.text:()Ljava/lang/String;\n-         6: ldc           #7                  // String \\\\s+\n-         8: invokevirtual #8                  // Method java/lang/String.split:(Ljava/lang/String;)[Ljava/lang/String;\n+         1: invokeinterface #29,  1           // InterfaceMethod dev/langchain4j/data/message/ChatMessage.text:()Ljava/lang/String;\n+         6: ldc           #35                 // String \\\\s+\n+         8: invokevirtual #37                 // Method java/lang/String.split:(Ljava/lang/String;)[Ljava/lang/String;\n         11: arraylength\n         12: ireturn\n       LineNumberTable:\n         line 18: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      13     0 message   Ldev/langchain4j/data/message/ChatMessage;\n }\n SourceFile: \"TokenCountEstimatorTest.java\"\n-InnerClasses:\n-  public static #18= #9 of #53;           // WhitespaceSplitTokenCountEstimator=class dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator of class dev/langchain4j/model/chat/TokenCountEstimatorTest\n-  public static final #84= #83 of #86;    // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n BootstrapMethods:\n-  0: #39 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  0: #67 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #40 (Ljava/lang/Object;)I\n-      #41 REF_invokeStatic dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator.lambda$estimateTokenCount$0:(Ldev/langchain4j/data/message/ChatMessage;)I\n-      #42 (Ldev/langchain4j/data/message/ChatMessage;)I\n+      #74 (Ljava/lang/Object;)I\n+      #76 REF_invokeStatic dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator.lambda$estimateTokenCount$0:(Ldev/langchain4j/data/message/ChatMessage;)I\n+      #79 (Ldev/langchain4j/data/message/ChatMessage;)I\n+InnerClasses:\n+  public static #83= #43 of #81;          // WhitespaceSplitTokenCountEstimator=class dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator of class dev/langchain4j/model/chat/TokenCountEstimatorTest\n+  public static final #88= #84 of #86;    // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n"}]}, {"source1": "dev/langchain4j/model/chat/TokenCountEstimatorTest.class", "source2": "dev/langchain4j/model/chat/TokenCountEstimatorTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,107 +1,107 @@\n-  SHA-256 checksum 0a364163b61fb538eb4c66d9d0220ff13994ddf4a83e2cc44ad7ea74b4ff0c19\n+  SHA-256 checksum 9d6476917a21214cc8145d2de33f1a2edab0f453762f3c4c1388a1bd06b352de\n   Compiled from \"TokenCountEstimatorTest.java\"\n class dev.langchain4j.model.chat.TokenCountEstimatorTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #24                         // dev/langchain4j/model/chat/TokenCountEstimatorTest\n-  super_class: #25                        // java/lang/Object\n+  this_class: #19                         // dev/langchain4j/model/chat/TokenCountEstimatorTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 2\n Constant pool:\n-   #1 = Methodref          #25.#47        // java/lang/Object.\"<init>\":()V\n-   #2 = Class              #48            // dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n-   #3 = Methodref          #2.#47         // dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator.\"<init>\":()V\n-   #4 = String             #49            // foo bar, baz\n-   #5 = InterfaceMethodref #50.#51        // dev/langchain4j/model/chat/TokenCountEstimator.estimateTokenCount:(Ljava/lang/String;)I\n-   #6 = Methodref          #24.#52        // dev/langchain4j/model/chat/TokenCountEstimatorTest.assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n-   #7 = Methodref          #53.#54        // org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n-   #8 = Class              #55            // dev/langchain4j/data/message/UserMessage\n-   #9 = Methodref          #8.#56         // dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n-  #10 = InterfaceMethodref #50.#57        // dev/langchain4j/model/chat/TokenCountEstimator.estimateTokenCount:(Ldev/langchain4j/data/message/UserMessage;)I\n-  #11 = Class              #58            // dev/langchain4j/model/input/Prompt\n-  #12 = Methodref          #11.#56        // dev/langchain4j/model/input/Prompt.\"<init>\":(Ljava/lang/String;)V\n-  #13 = InterfaceMethodref #50.#59        // dev/langchain4j/model/chat/TokenCountEstimator.estimateTokenCount:(Ldev/langchain4j/model/input/Prompt;)I\n-  #14 = Methodref          #60.#61        // dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #15 = InterfaceMethodref #50.#62        // dev/langchain4j/model/chat/TokenCountEstimator.estimateTokenCount:(Ldev/langchain4j/data/segment/TextSegment;)I\n-  #16 = Class              #63            // java/util/ArrayList\n-  #17 = Methodref          #16.#47        // java/util/ArrayList.\"<init>\":()V\n-  #18 = String             #64            // Hello, world!\n-  #19 = InterfaceMethodref #65.#66        // java/util/List.add:(Ljava/lang/Object;)Z\n-  #20 = Class              #67            // dev/langchain4j/data/message/AiMessage\n-  #21 = String             #68            // How are you?\n-  #22 = Methodref          #20.#56        // dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n-  #23 = InterfaceMethodref #50.#69        // dev/langchain4j/model/chat/TokenCountEstimator.estimateTokenCount:(Ljava/util/List;)I\n-  #24 = Class              #70            // dev/langchain4j/model/chat/TokenCountEstimatorTest\n-  #25 = Class              #71            // java/lang/Object\n-  #26 = Class              #72            // org/assertj/core/api/WithAssertions\n-  #27 = Utf8               WhitespaceSplitTokenCountEstimator\n-  #28 = Utf8               InnerClasses\n-  #29 = Utf8               <init>\n-  #30 = Utf8               ()V\n-  #31 = Utf8               Code\n-  #32 = Utf8               LineNumberTable\n-  #33 = Utf8               LocalVariableTable\n-  #34 = Utf8               this\n-  #35 = Utf8               Ldev/langchain4j/model/chat/TokenCountEstimatorTest;\n-  #36 = Utf8               test\n-  #37 = Utf8               messages\n-  #38 = Utf8               Ljava/util/List;\n-  #39 = Utf8               estimator\n-  #40 = Utf8               Ldev/langchain4j/model/chat/TokenCountEstimator;\n-  #41 = Utf8               LocalVariableTypeTable\n-  #42 = Utf8               Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n-  #43 = Utf8               RuntimeVisibleAnnotations\n-  #44 = Utf8               Lorg/junit/jupiter/api/Test;\n-  #45 = Utf8               SourceFile\n-  #46 = Utf8               TokenCountEstimatorTest.java\n-  #47 = NameAndType        #29:#30        // \"<init>\":()V\n-  #48 = Utf8               dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n-  #49 = Utf8               foo bar, baz\n-  #50 = Class              #73            // dev/langchain4j/model/chat/TokenCountEstimator\n-  #51 = NameAndType        #74:#75        // estimateTokenCount:(Ljava/lang/String;)I\n-  #52 = NameAndType        #76:#77        // assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n-  #53 = Class              #78            // org/assertj/core/api/AbstractIntegerAssert\n-  #54 = NameAndType        #79:#77        // isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n-  #55 = Utf8               dev/langchain4j/data/message/UserMessage\n-  #56 = NameAndType        #29:#80        // \"<init>\":(Ljava/lang/String;)V\n-  #57 = NameAndType        #74:#81        // estimateTokenCount:(Ldev/langchain4j/data/message/UserMessage;)I\n-  #58 = Utf8               dev/langchain4j/model/input/Prompt\n-  #59 = NameAndType        #74:#82        // estimateTokenCount:(Ldev/langchain4j/model/input/Prompt;)I\n-  #60 = Class              #83            // dev/langchain4j/data/segment/TextSegment\n-  #61 = NameAndType        #84:#85        // from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #62 = NameAndType        #74:#86        // estimateTokenCount:(Ldev/langchain4j/data/segment/TextSegment;)I\n-  #63 = Utf8               java/util/ArrayList\n-  #64 = Utf8               Hello, world!\n-  #65 = Class              #87            // java/util/List\n-  #66 = NameAndType        #88:#89        // add:(Ljava/lang/Object;)Z\n-  #67 = Utf8               dev/langchain4j/data/message/AiMessage\n-  #68 = Utf8               How are you?\n-  #69 = NameAndType        #74:#90        // estimateTokenCount:(Ljava/util/List;)I\n-  #70 = Utf8               dev/langchain4j/model/chat/TokenCountEstimatorTest\n-  #71 = Utf8               java/lang/Object\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Class              #8             // dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n+   #8 = Utf8               dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n+   #9 = Methodref          #7.#3          // dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator.\"<init>\":()V\n+  #10 = String             #11            // foo bar, baz\n+  #11 = Utf8               foo bar, baz\n+  #12 = InterfaceMethodref #13.#14        // dev/langchain4j/model/chat/TokenCountEstimator.estimateTokenCount:(Ljava/lang/String;)I\n+  #13 = Class              #15            // dev/langchain4j/model/chat/TokenCountEstimator\n+  #14 = NameAndType        #16:#17        // estimateTokenCount:(Ljava/lang/String;)I\n+  #15 = Utf8               dev/langchain4j/model/chat/TokenCountEstimator\n+  #16 = Utf8               estimateTokenCount\n+  #17 = Utf8               (Ljava/lang/String;)I\n+  #18 = Methodref          #19.#20        // dev/langchain4j/model/chat/TokenCountEstimatorTest.assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+  #19 = Class              #21            // dev/langchain4j/model/chat/TokenCountEstimatorTest\n+  #20 = NameAndType        #22:#23        // assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+  #21 = Utf8               dev/langchain4j/model/chat/TokenCountEstimatorTest\n+  #22 = Utf8               assertThat\n+  #23 = Utf8               (I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+  #24 = Methodref          #25.#26        // org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+  #25 = Class              #27            // org/assertj/core/api/AbstractIntegerAssert\n+  #26 = NameAndType        #28:#23        // isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+  #27 = Utf8               org/assertj/core/api/AbstractIntegerAssert\n+  #28 = Utf8               isEqualTo\n+  #29 = Class              #30            // dev/langchain4j/data/message/UserMessage\n+  #30 = Utf8               dev/langchain4j/data/message/UserMessage\n+  #31 = Methodref          #29.#32        // dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n+  #32 = NameAndType        #5:#33         // \"<init>\":(Ljava/lang/String;)V\n+  #33 = Utf8               (Ljava/lang/String;)V\n+  #34 = InterfaceMethodref #13.#35        // dev/langchain4j/model/chat/TokenCountEstimator.estimateTokenCount:(Ldev/langchain4j/data/message/UserMessage;)I\n+  #35 = NameAndType        #16:#36        // estimateTokenCount:(Ldev/langchain4j/data/message/UserMessage;)I\n+  #36 = Utf8               (Ldev/langchain4j/data/message/UserMessage;)I\n+  #37 = Class              #38            // dev/langchain4j/model/input/Prompt\n+  #38 = Utf8               dev/langchain4j/model/input/Prompt\n+  #39 = Methodref          #37.#32        // dev/langchain4j/model/input/Prompt.\"<init>\":(Ljava/lang/String;)V\n+  #40 = InterfaceMethodref #13.#41        // dev/langchain4j/model/chat/TokenCountEstimator.estimateTokenCount:(Ldev/langchain4j/model/input/Prompt;)I\n+  #41 = NameAndType        #16:#42        // estimateTokenCount:(Ldev/langchain4j/model/input/Prompt;)I\n+  #42 = Utf8               (Ldev/langchain4j/model/input/Prompt;)I\n+  #43 = Methodref          #44.#45        // dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #44 = Class              #46            // dev/langchain4j/data/segment/TextSegment\n+  #45 = NameAndType        #47:#48        // from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #46 = Utf8               dev/langchain4j/data/segment/TextSegment\n+  #47 = Utf8               from\n+  #48 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #49 = InterfaceMethodref #13.#50        // dev/langchain4j/model/chat/TokenCountEstimator.estimateTokenCount:(Ldev/langchain4j/data/segment/TextSegment;)I\n+  #50 = NameAndType        #16:#51        // estimateTokenCount:(Ldev/langchain4j/data/segment/TextSegment;)I\n+  #51 = Utf8               (Ldev/langchain4j/data/segment/TextSegment;)I\n+  #52 = Class              #53            // java/util/ArrayList\n+  #53 = Utf8               java/util/ArrayList\n+  #54 = Methodref          #52.#3         // java/util/ArrayList.\"<init>\":()V\n+  #55 = String             #56            // Hello, world!\n+  #56 = Utf8               Hello, world!\n+  #57 = InterfaceMethodref #58.#59        // java/util/List.add:(Ljava/lang/Object;)Z\n+  #58 = Class              #60            // java/util/List\n+  #59 = NameAndType        #61:#62        // add:(Ljava/lang/Object;)Z\n+  #60 = Utf8               java/util/List\n+  #61 = Utf8               add\n+  #62 = Utf8               (Ljava/lang/Object;)Z\n+  #63 = Class              #64            // dev/langchain4j/data/message/AiMessage\n+  #64 = Utf8               dev/langchain4j/data/message/AiMessage\n+  #65 = String             #66            // How are you?\n+  #66 = Utf8               How are you?\n+  #67 = Methodref          #63.#32        // dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n+  #68 = InterfaceMethodref #13.#69        // dev/langchain4j/model/chat/TokenCountEstimator.estimateTokenCount:(Ljava/util/List;)I\n+  #69 = NameAndType        #16:#70        // estimateTokenCount:(Ljava/util/List;)I\n+  #70 = Utf8               (Ljava/util/List;)I\n+  #71 = Class              #72            // org/assertj/core/api/WithAssertions\n   #72 = Utf8               org/assertj/core/api/WithAssertions\n-  #73 = Utf8               dev/langchain4j/model/chat/TokenCountEstimator\n-  #74 = Utf8               estimateTokenCount\n-  #75 = Utf8               (Ljava/lang/String;)I\n-  #76 = Utf8               assertThat\n-  #77 = Utf8               (I)Lorg/assertj/core/api/AbstractIntegerAssert;\n-  #78 = Utf8               org/assertj/core/api/AbstractIntegerAssert\n-  #79 = Utf8               isEqualTo\n-  #80 = Utf8               (Ljava/lang/String;)V\n-  #81 = Utf8               (Ldev/langchain4j/data/message/UserMessage;)I\n-  #82 = Utf8               (Ldev/langchain4j/model/input/Prompt;)I\n-  #83 = Utf8               dev/langchain4j/data/segment/TextSegment\n-  #84 = Utf8               from\n-  #85 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #86 = Utf8               (Ldev/langchain4j/data/segment/TextSegment;)I\n-  #87 = Utf8               java/util/List\n-  #88 = Utf8               add\n-  #89 = Utf8               (Ljava/lang/Object;)Z\n-  #90 = Utf8               (Ljava/util/List;)I\n+  #73 = Utf8               Code\n+  #74 = Utf8               LineNumberTable\n+  #75 = Utf8               LocalVariableTable\n+  #76 = Utf8               this\n+  #77 = Utf8               Ldev/langchain4j/model/chat/TokenCountEstimatorTest;\n+  #78 = Utf8               test\n+  #79 = Utf8               messages\n+  #80 = Utf8               Ljava/util/List;\n+  #81 = Utf8               estimator\n+  #82 = Utf8               Ldev/langchain4j/model/chat/TokenCountEstimator;\n+  #83 = Utf8               LocalVariableTypeTable\n+  #84 = Utf8               Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n+  #85 = Utf8               RuntimeVisibleAnnotations\n+  #86 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #87 = Utf8               SourceFile\n+  #88 = Utf8               TokenCountEstimatorTest.java\n+  #89 = Utf8               InnerClasses\n+  #90 = Utf8               WhitespaceSplitTokenCountEstimator\n {\n   dev.langchain4j.model.chat.TokenCountEstimatorTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -114,82 +114,82 @@\n             0       5     0  this   Ldev/langchain4j/model/chat/TokenCountEstimatorTest;\n \n   public void test();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=5, locals=3, args_size=1\n-         0: new           #2                  // class dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n+         0: new           #7                  // class dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator.\"<init>\":()V\n          7: astore_1\n          8: aload_0\n          9: aload_1\n-        10: ldc           #4                  // String foo bar, baz\n-        12: invokeinterface #5,  2            // InterfaceMethod dev/langchain4j/model/chat/TokenCountEstimator.estimateTokenCount:(Ljava/lang/String;)I\n-        17: invokevirtual #6                  // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        10: ldc           #10                 // String foo bar, baz\n+        12: invokeinterface #12,  2           // InterfaceMethod dev/langchain4j/model/chat/TokenCountEstimator.estimateTokenCount:(Ljava/lang/String;)I\n+        17: invokevirtual #18                 // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         20: iconst_3\n-        21: invokevirtual #7                  // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        21: invokevirtual #24                 // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         24: pop\n         25: aload_0\n         26: aload_1\n-        27: new           #8                  // class dev/langchain4j/data/message/UserMessage\n+        27: new           #29                 // class dev/langchain4j/data/message/UserMessage\n         30: dup\n-        31: ldc           #4                  // String foo bar, baz\n-        33: invokespecial #9                  // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n-        36: invokeinterface #10,  2           // InterfaceMethod dev/langchain4j/model/chat/TokenCountEstimator.estimateTokenCount:(Ldev/langchain4j/data/message/UserMessage;)I\n-        41: invokevirtual #6                  // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        31: ldc           #10                 // String foo bar, baz\n+        33: invokespecial #31                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n+        36: invokeinterface #34,  2           // InterfaceMethod dev/langchain4j/model/chat/TokenCountEstimator.estimateTokenCount:(Ldev/langchain4j/data/message/UserMessage;)I\n+        41: invokevirtual #18                 // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         44: iconst_3\n-        45: invokevirtual #7                  // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        45: invokevirtual #24                 // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         48: pop\n         49: aload_0\n         50: aload_1\n-        51: new           #11                 // class dev/langchain4j/model/input/Prompt\n+        51: new           #37                 // class dev/langchain4j/model/input/Prompt\n         54: dup\n-        55: ldc           #4                  // String foo bar, baz\n-        57: invokespecial #12                 // Method dev/langchain4j/model/input/Prompt.\"<init>\":(Ljava/lang/String;)V\n-        60: invokeinterface #13,  2           // InterfaceMethod dev/langchain4j/model/chat/TokenCountEstimator.estimateTokenCount:(Ldev/langchain4j/model/input/Prompt;)I\n-        65: invokevirtual #6                  // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        55: ldc           #10                 // String foo bar, baz\n+        57: invokespecial #39                 // Method dev/langchain4j/model/input/Prompt.\"<init>\":(Ljava/lang/String;)V\n+        60: invokeinterface #40,  2           // InterfaceMethod dev/langchain4j/model/chat/TokenCountEstimator.estimateTokenCount:(Ldev/langchain4j/model/input/Prompt;)I\n+        65: invokevirtual #18                 // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         68: iconst_3\n-        69: invokevirtual #7                  // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        69: invokevirtual #24                 // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         72: pop\n         73: aload_0\n         74: aload_1\n-        75: ldc           #4                  // String foo bar, baz\n-        77: invokestatic  #14                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-        80: invokeinterface #15,  2           // InterfaceMethod dev/langchain4j/model/chat/TokenCountEstimator.estimateTokenCount:(Ldev/langchain4j/data/segment/TextSegment;)I\n-        85: invokevirtual #6                  // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        75: ldc           #10                 // String foo bar, baz\n+        77: invokestatic  #43                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+        80: invokeinterface #49,  2           // InterfaceMethod dev/langchain4j/model/chat/TokenCountEstimator.estimateTokenCount:(Ldev/langchain4j/data/segment/TextSegment;)I\n+        85: invokevirtual #18                 // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         88: iconst_3\n-        89: invokevirtual #7                  // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        89: invokevirtual #24                 // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         92: pop\n-        93: new           #16                 // class java/util/ArrayList\n+        93: new           #52                 // class java/util/ArrayList\n         96: dup\n-        97: invokespecial #17                 // Method java/util/ArrayList.\"<init>\":()V\n+        97: invokespecial #54                 // Method java/util/ArrayList.\"<init>\":()V\n        100: astore_2\n        101: aload_2\n-       102: new           #8                  // class dev/langchain4j/data/message/UserMessage\n+       102: new           #29                 // class dev/langchain4j/data/message/UserMessage\n        105: dup\n-       106: ldc           #18                 // String Hello, world!\n-       108: invokespecial #9                  // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n-       111: invokeinterface #19,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n+       106: ldc           #55                 // String Hello, world!\n+       108: invokespecial #31                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n+       111: invokeinterface #57,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n        116: pop\n        117: aload_2\n-       118: new           #20                 // class dev/langchain4j/data/message/AiMessage\n+       118: new           #63                 // class dev/langchain4j/data/message/AiMessage\n        121: dup\n-       122: ldc           #21                 // String How are you?\n-       124: invokespecial #22                 // Method dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n-       127: invokeinterface #19,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n+       122: ldc           #65                 // String How are you?\n+       124: invokespecial #67                 // Method dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n+       127: invokeinterface #57,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n        132: pop\n        133: aload_0\n        134: aload_1\n        135: aload_2\n-       136: invokeinterface #23,  2           // InterfaceMethod dev/langchain4j/model/chat/TokenCountEstimator.estimateTokenCount:(Ljava/util/List;)I\n-       141: invokevirtual #6                  // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+       136: invokeinterface #68,  2           // InterfaceMethod dev/langchain4j/model/chat/TokenCountEstimator.estimateTokenCount:(Ljava/util/List;)I\n+       141: invokevirtual #18                 // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n        144: iconst_5\n-       145: invokevirtual #7                  // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+       145: invokevirtual #24                 // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n        148: pop\n        149: return\n       LineNumberTable:\n         line 24: 0\n         line 26: 8\n         line 28: 25\n         line 30: 49\n@@ -204,13 +204,13 @@\n           101      48     2 messages   Ljava/util/List;\n             0     150     0  this   Ldev/langchain4j/model/chat/TokenCountEstimatorTest;\n             8     142     1 estimator   Ldev/langchain4j/model/chat/TokenCountEstimator;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n           101      48     2 messages   Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n     RuntimeVisibleAnnotations:\n-      0: #44()\n+      0: #86()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"TokenCountEstimatorTest.java\"\n InnerClasses:\n-  public static #27= #2 of #24;           // WhitespaceSplitTokenCountEstimator=class dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator of class dev/langchain4j/model/chat/TokenCountEstimatorTest\n+  public static #90= #7 of #19;           // WhitespaceSplitTokenCountEstimator=class dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator of class dev/langchain4j/model/chat/TokenCountEstimatorTest\n"}]}, {"source1": "dev/langchain4j/model/chat/mock/ChatModelMock.class", "source2": "dev/langchain4j/model/chat/mock/ChatModelMock.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,161 +1,159 @@\n-  SHA-256 checksum 37e15d7c5fedcd29b0cce722b15076db48d6807341094ec75e316300c7c11a77\n+  SHA-256 checksum e9d2da90b52362ea3452e1067bf340e7ce8acbfce1910826139861c0b774b28b\n   Compiled from \"ChatModelMock.java\"\n public class dev.langchain4j.model.chat.mock.ChatModelMock implements dev.langchain4j.model.chat.ChatLanguageModel\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #28                         // dev/langchain4j/model/chat/mock/ChatModelMock\n-  super_class: #18                        // java/lang/Object\n+  this_class: #17                         // dev/langchain4j/model/chat/mock/ChatModelMock\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 2, methods: 4, attributes: 1\n Constant pool:\n-    #1 = Methodref          #18.#62       // java/lang/Object.\"<init>\":()V\n-    #2 = Class              #63           // java/util/ArrayList\n-    #3 = Methodref          #2.#62        // java/util/ArrayList.\"<init>\":()V\n-    #4 = Methodref          #64.#65       // java/util/Collections.synchronizedList:(Ljava/util/List;)Ljava/util/List;\n-    #5 = Fieldref           #28.#66       // dev/langchain4j/model/chat/mock/ChatModelMock.requests:Ljava/util/List;\n-    #6 = Fieldref           #28.#67       // dev/langchain4j/model/chat/mock/ChatModelMock.staticResponse:Ljava/lang/String;\n-    #7 = Methodref          #2.#68        // java/util/ArrayList.\"<init>\":(Ljava/util/Collection;)V\n-    #8 = InterfaceMethodref #21.#69       // java/util/List.add:(Ljava/lang/Object;)Z\n-    #9 = Methodref          #70.#71       // dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n-   #10 = Methodref          #72.#73       // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-   #11 = InterfaceMethodref #21.#74       // java/util/List.size:()I\n-   #12 = Class              #75           // java/lang/StringBuilder\n-   #13 = Methodref          #12.#62       // java/lang/StringBuilder.\"<init>\":()V\n-   #14 = String             #76           // Expected exactly 1 request, got:\n-   #15 = Methodref          #12.#77       // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-   #16 = Methodref          #12.#78       // java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;\n-   #17 = Methodref          #12.#79       // java/lang/StringBuilder.toString:()Ljava/lang/String;\n-   #18 = Class              #80           // java/lang/Object\n-   #19 = Methodref          #81.#82       // dev/langchain4j/internal/Exceptions.runtime:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;\n-   #20 = InterfaceMethodref #21.#83       // java/util/List.get:(I)Ljava/lang/Object;\n-   #21 = Class              #84           // java/util/List\n-   #22 = String             #85           // Expected exactly 1 message, got:\n-   #23 = Class              #86           // dev/langchain4j/data/message/ChatMessage\n-   #24 = Class              #87           // dev/langchain4j/data/message/UserMessage\n-   #25 = String             #88           // Expected exactly UserMessage, got:\n-   #26 = Methodref          #12.#89       // java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-   #27 = InterfaceMethodref #23.#90       // dev/langchain4j/data/message/ChatMessage.text:()Ljava/lang/String;\n-   #28 = Class              #91           // dev/langchain4j/model/chat/mock/ChatModelMock\n-   #29 = Methodref          #28.#92       // dev/langchain4j/model/chat/mock/ChatModelMock.\"<init>\":(Ljava/lang/String;)V\n-   #30 = Class              #93           // dev/langchain4j/model/chat/ChatLanguageModel\n-   #31 = Utf8               staticResponse\n-   #32 = Utf8               Ljava/lang/String;\n-   #33 = Utf8               requests\n-   #34 = Utf8               Ljava/util/List;\n-   #35 = Utf8               Signature\n-   #36 = Utf8               Ljava/util/List<Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;>;\n-   #37 = Utf8               <init>\n-   #38 = Utf8               (Ljava/lang/String;)V\n-   #39 = Utf8               Code\n-   #40 = Utf8               LineNumberTable\n-   #41 = Utf8               LocalVariableTable\n-   #42 = Utf8               this\n-   #43 = Utf8               Ldev/langchain4j/model/chat/mock/ChatModelMock;\n-   #44 = Utf8               generate\n-   #45 = Utf8               (Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n-   #46 = Utf8               messages\n-   #47 = Utf8               LocalVariableTypeTable\n-   #48 = Utf8               Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n-   #49 = Utf8               (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n-   #50 = Utf8               userMessageText\n-   #51 = Utf8               ()Ljava/lang/String;\n-   #52 = Utf8               message\n-   #53 = Utf8               Ldev/langchain4j/data/message/ChatMessage;\n-   #54 = Utf8               StackMapTable\n-   #55 = Class              #84           // java/util/List\n-   #56 = Class              #86           // dev/langchain4j/data/message/ChatMessage\n-   #57 = Utf8               withStaticResponse\n-   #58 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n-   #59 = Utf8               response\n-   #60 = Utf8               SourceFile\n-   #61 = Utf8               ChatModelMock.java\n-   #62 = NameAndType        #37:#94       // \"<init>\":()V\n-   #63 = Utf8               java/util/ArrayList\n-   #64 = Class              #95           // java/util/Collections\n-   #65 = NameAndType        #96:#97       // synchronizedList:(Ljava/util/List;)Ljava/util/List;\n-   #66 = NameAndType        #33:#34       // requests:Ljava/util/List;\n-   #67 = NameAndType        #31:#32       // staticResponse:Ljava/lang/String;\n-   #68 = NameAndType        #37:#98       // \"<init>\":(Ljava/util/Collection;)V\n-   #69 = NameAndType        #99:#100      // add:(Ljava/lang/Object;)Z\n-   #70 = Class              #101          // dev/langchain4j/data/message/AiMessage\n-   #71 = NameAndType        #102:#103     // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n-   #72 = Class              #104          // dev/langchain4j/model/output/Response\n-   #73 = NameAndType        #102:#105     // from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-   #74 = NameAndType        #106:#107     // size:()I\n-   #75 = Utf8               java/lang/StringBuilder\n-   #76 = Utf8               Expected exactly 1 request, got:\n-   #77 = NameAndType        #108:#109     // append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-   #78 = NameAndType        #108:#110     // append:(I)Ljava/lang/StringBuilder;\n-   #79 = NameAndType        #111:#51      // toString:()Ljava/lang/String;\n-   #80 = Utf8               java/lang/Object\n-   #81 = Class              #112          // dev/langchain4j/internal/Exceptions\n-   #82 = NameAndType        #113:#114     // runtime:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;\n-   #83 = NameAndType        #115:#116     // get:(I)Ljava/lang/Object;\n-   #84 = Utf8               java/util/List\n-   #85 = Utf8               Expected exactly 1 message, got:\n-   #86 = Utf8               dev/langchain4j/data/message/ChatMessage\n-   #87 = Utf8               dev/langchain4j/data/message/UserMessage\n-   #88 = Utf8               Expected exactly UserMessage, got:\n-   #89 = NameAndType        #108:#117     // append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-   #90 = NameAndType        #118:#51      // text:()Ljava/lang/String;\n-   #91 = Utf8               dev/langchain4j/model/chat/mock/ChatModelMock\n-   #92 = NameAndType        #37:#38       // \"<init>\":(Ljava/lang/String;)V\n-   #93 = Utf8               dev/langchain4j/model/chat/ChatLanguageModel\n-   #94 = Utf8               ()V\n-   #95 = Utf8               java/util/Collections\n-   #96 = Utf8               synchronizedList\n-   #97 = Utf8               (Ljava/util/List;)Ljava/util/List;\n-   #98 = Utf8               (Ljava/util/Collection;)V\n-   #99 = Utf8               add\n-  #100 = Utf8               (Ljava/lang/Object;)Z\n-  #101 = Utf8               dev/langchain4j/data/message/AiMessage\n-  #102 = Utf8               from\n-  #103 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n-  #104 = Utf8               dev/langchain4j/model/output/Response\n-  #105 = Utf8               (Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-  #106 = Utf8               size\n-  #107 = Utf8               ()I\n-  #108 = Utf8               append\n-  #109 = Utf8               (Ljava/lang/String;)Ljava/lang/StringBuilder;\n-  #110 = Utf8               (I)Ljava/lang/StringBuilder;\n-  #111 = Utf8               toString\n-  #112 = Utf8               dev/langchain4j/internal/Exceptions\n-  #113 = Utf8               runtime\n-  #114 = Utf8               (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;\n-  #115 = Utf8               get\n-  #116 = Utf8               (I)Ljava/lang/Object;\n-  #117 = Utf8               (Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-  #118 = Utf8               text\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Class              #8            // java/util/ArrayList\n+    #8 = Utf8               java/util/ArrayList\n+    #9 = Methodref          #7.#3         // java/util/ArrayList.\"<init>\":()V\n+   #10 = Methodref          #11.#12       // java/util/Collections.synchronizedList:(Ljava/util/List;)Ljava/util/List;\n+   #11 = Class              #13           // java/util/Collections\n+   #12 = NameAndType        #14:#15       // synchronizedList:(Ljava/util/List;)Ljava/util/List;\n+   #13 = Utf8               java/util/Collections\n+   #14 = Utf8               synchronizedList\n+   #15 = Utf8               (Ljava/util/List;)Ljava/util/List;\n+   #16 = Fieldref           #17.#18       // dev/langchain4j/model/chat/mock/ChatModelMock.requests:Ljava/util/List;\n+   #17 = Class              #19           // dev/langchain4j/model/chat/mock/ChatModelMock\n+   #18 = NameAndType        #20:#21       // requests:Ljava/util/List;\n+   #19 = Utf8               dev/langchain4j/model/chat/mock/ChatModelMock\n+   #20 = Utf8               requests\n+   #21 = Utf8               Ljava/util/List;\n+   #22 = Fieldref           #17.#23       // dev/langchain4j/model/chat/mock/ChatModelMock.staticResponse:Ljava/lang/String;\n+   #23 = NameAndType        #24:#25       // staticResponse:Ljava/lang/String;\n+   #24 = Utf8               staticResponse\n+   #25 = Utf8               Ljava/lang/String;\n+   #26 = Methodref          #7.#27        // java/util/ArrayList.\"<init>\":(Ljava/util/Collection;)V\n+   #27 = NameAndType        #5:#28        // \"<init>\":(Ljava/util/Collection;)V\n+   #28 = Utf8               (Ljava/util/Collection;)V\n+   #29 = InterfaceMethodref #30.#31       // java/util/List.add:(Ljava/lang/Object;)Z\n+   #30 = Class              #32           // java/util/List\n+   #31 = NameAndType        #33:#34       // add:(Ljava/lang/Object;)Z\n+   #32 = Utf8               java/util/List\n+   #33 = Utf8               add\n+   #34 = Utf8               (Ljava/lang/Object;)Z\n+   #35 = Methodref          #36.#37       // dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+   #36 = Class              #38           // dev/langchain4j/data/message/AiMessage\n+   #37 = NameAndType        #39:#40       // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+   #38 = Utf8               dev/langchain4j/data/message/AiMessage\n+   #39 = Utf8               from\n+   #40 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+   #41 = Methodref          #42.#43       // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+   #42 = Class              #44           // dev/langchain4j/model/output/Response\n+   #43 = NameAndType        #39:#45       // from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+   #44 = Utf8               dev/langchain4j/model/output/Response\n+   #45 = Utf8               (Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+   #46 = InterfaceMethodref #30.#47       // java/util/List.size:()I\n+   #47 = NameAndType        #48:#49       // size:()I\n+   #48 = Utf8               size\n+   #49 = Utf8               ()I\n+   #50 = Class              #51           // java/lang/StringBuilder\n+   #51 = Utf8               java/lang/StringBuilder\n+   #52 = Methodref          #50.#3        // java/lang/StringBuilder.\"<init>\":()V\n+   #53 = String             #54           // Expected exactly 1 request, got:\n+   #54 = Utf8               Expected exactly 1 request, got:\n+   #55 = Methodref          #50.#56       // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+   #56 = NameAndType        #57:#58       // append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+   #57 = Utf8               append\n+   #58 = Utf8               (Ljava/lang/String;)Ljava/lang/StringBuilder;\n+   #59 = Methodref          #50.#60       // java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;\n+   #60 = NameAndType        #57:#61       // append:(I)Ljava/lang/StringBuilder;\n+   #61 = Utf8               (I)Ljava/lang/StringBuilder;\n+   #62 = Methodref          #50.#63       // java/lang/StringBuilder.toString:()Ljava/lang/String;\n+   #63 = NameAndType        #64:#65       // toString:()Ljava/lang/String;\n+   #64 = Utf8               toString\n+   #65 = Utf8               ()Ljava/lang/String;\n+   #66 = Methodref          #67.#68       // dev/langchain4j/internal/Exceptions.runtime:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;\n+   #67 = Class              #69           // dev/langchain4j/internal/Exceptions\n+   #68 = NameAndType        #70:#71       // runtime:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;\n+   #69 = Utf8               dev/langchain4j/internal/Exceptions\n+   #70 = Utf8               runtime\n+   #71 = Utf8               (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;\n+   #72 = InterfaceMethodref #30.#73       // java/util/List.get:(I)Ljava/lang/Object;\n+   #73 = NameAndType        #74:#75       // get:(I)Ljava/lang/Object;\n+   #74 = Utf8               get\n+   #75 = Utf8               (I)Ljava/lang/Object;\n+   #76 = String             #77           // Expected exactly 1 message, got:\n+   #77 = Utf8               Expected exactly 1 message, got:\n+   #78 = Class              #79           // dev/langchain4j/data/message/ChatMessage\n+   #79 = Utf8               dev/langchain4j/data/message/ChatMessage\n+   #80 = Class              #81           // dev/langchain4j/data/message/UserMessage\n+   #81 = Utf8               dev/langchain4j/data/message/UserMessage\n+   #82 = String             #83           // Expected exactly UserMessage, got:\n+   #83 = Utf8               Expected exactly UserMessage, got:\n+   #84 = Methodref          #50.#85       // java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+   #85 = NameAndType        #57:#86       // append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+   #86 = Utf8               (Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+   #87 = InterfaceMethodref #78.#88       // dev/langchain4j/data/message/ChatMessage.text:()Ljava/lang/String;\n+   #88 = NameAndType        #89:#65       // text:()Ljava/lang/String;\n+   #89 = Utf8               text\n+   #90 = Methodref          #17.#91       // dev/langchain4j/model/chat/mock/ChatModelMock.\"<init>\":(Ljava/lang/String;)V\n+   #91 = NameAndType        #5:#92        // \"<init>\":(Ljava/lang/String;)V\n+   #92 = Utf8               (Ljava/lang/String;)V\n+   #93 = Class              #94           // dev/langchain4j/model/chat/ChatLanguageModel\n+   #94 = Utf8               dev/langchain4j/model/chat/ChatLanguageModel\n+   #95 = Utf8               Signature\n+   #96 = Utf8               Ljava/util/List<Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;>;\n+   #97 = Utf8               Code\n+   #98 = Utf8               LineNumberTable\n+   #99 = Utf8               LocalVariableTable\n+  #100 = Utf8               this\n+  #101 = Utf8               Ldev/langchain4j/model/chat/mock/ChatModelMock;\n+  #102 = Utf8               generate\n+  #103 = Utf8               (Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+  #104 = Utf8               messages\n+  #105 = Utf8               LocalVariableTypeTable\n+  #106 = Utf8               Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n+  #107 = Utf8               (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n+  #108 = Utf8               userMessageText\n+  #109 = Utf8               message\n+  #110 = Utf8               Ldev/langchain4j/data/message/ChatMessage;\n+  #111 = Utf8               StackMapTable\n+  #112 = Utf8               withStaticResponse\n+  #113 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n+  #114 = Utf8               response\n+  #115 = Utf8               SourceFile\n+  #116 = Utf8               ChatModelMock.java\n {\n   private final java.lang.String staticResponse;\n     descriptor: Ljava/lang/String;\n     flags: (0x0012) ACC_PRIVATE, ACC_FINAL\n \n   private final java.util.List<java.util.List<dev.langchain4j.data.message.ChatMessage>> requests;\n     descriptor: Ljava/util/List;\n     flags: (0x0012) ACC_PRIVATE, ACC_FINAL\n-    Signature: #36                          // Ljava/util/List<Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;>;\n+    Signature: #96                          // Ljava/util/List<Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;>;\n \n   public dev.langchain4j.model.chat.mock.ChatModelMock(java.lang.String);\n     descriptor: (Ljava/lang/String;)V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=2, args_size=2\n          0: aload_0\n          1: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n          4: aload_0\n-         5: new           #2                  // class java/util/ArrayList\n+         5: new           #7                  // class java/util/ArrayList\n          8: dup\n-         9: invokespecial #3                  // Method java/util/ArrayList.\"<init>\":()V\n-        12: invokestatic  #4                  // Method java/util/Collections.synchronizedList:(Ljava/util/List;)Ljava/util/List;\n-        15: putfield      #5                  // Field requests:Ljava/util/List;\n+         9: invokespecial #9                  // Method java/util/ArrayList.\"<init>\":()V\n+        12: invokestatic  #10                 // Method java/util/Collections.synchronizedList:(Ljava/util/List;)Ljava/util/List;\n+        15: putfield      #16                 // Field requests:Ljava/util/List;\n         18: aload_0\n         19: aload_1\n-        20: putfield      #6                  // Field staticResponse:Ljava/lang/String;\n+        20: putfield      #22                 // Field staticResponse:Ljava/lang/String;\n         23: return\n       LineNumberTable:\n         line 25: 0\n         line 23: 4\n         line 26: 18\n         line 27: 23\n       LocalVariableTable:\n@@ -165,107 +163,107 @@\n \n   public dev.langchain4j.model.output.Response<dev.langchain4j.data.message.AiMessage> generate(java.util.List<dev.langchain4j.data.message.ChatMessage>);\n     descriptor: (Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=4, locals=2, args_size=2\n          0: aload_0\n-         1: getfield      #5                  // Field requests:Ljava/util/List;\n-         4: new           #2                  // class java/util/ArrayList\n+         1: getfield      #16                 // Field requests:Ljava/util/List;\n+         4: new           #7                  // class java/util/ArrayList\n          7: dup\n          8: aload_1\n-         9: invokespecial #7                  // Method java/util/ArrayList.\"<init>\":(Ljava/util/Collection;)V\n-        12: invokeinterface #8,  2            // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n+         9: invokespecial #26                 // Method java/util/ArrayList.\"<init>\":(Ljava/util/Collection;)V\n+        12: invokeinterface #29,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n         17: pop\n         18: aload_0\n-        19: getfield      #6                  // Field staticResponse:Ljava/lang/String;\n-        22: invokestatic  #9                  // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n-        25: invokestatic  #10                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+        19: getfield      #22                 // Field staticResponse:Ljava/lang/String;\n+        22: invokestatic  #35                 // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+        25: invokestatic  #41                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n         28: areturn\n       LineNumberTable:\n         line 31: 0\n         line 32: 18\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      29     0  this   Ldev/langchain4j/model/chat/mock/ChatModelMock;\n             0      29     1 messages   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0      29     1 messages   Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n-    Signature: #49                          // (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n+    Signature: #107                         // (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n \n   public java.lang.String userMessageText();\n     descriptor: ()Ljava/lang/String;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=3, args_size=1\n          0: aload_0\n-         1: getfield      #5                  // Field requests:Ljava/util/List;\n-         4: invokeinterface #11,  1           // InterfaceMethod java/util/List.size:()I\n+         1: getfield      #16                 // Field requests:Ljava/util/List;\n+         4: invokeinterface #46,  1           // InterfaceMethod java/util/List.size:()I\n          9: iconst_1\n         10: if_icmpeq     48\n-        13: new           #12                 // class java/lang/StringBuilder\n+        13: new           #50                 // class java/lang/StringBuilder\n         16: dup\n-        17: invokespecial #13                 // Method java/lang/StringBuilder.\"<init>\":()V\n-        20: ldc           #14                 // String Expected exactly 1 request, got:\n-        22: invokevirtual #15                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        17: invokespecial #52                 // Method java/lang/StringBuilder.\"<init>\":()V\n+        20: ldc           #53                 // String Expected exactly 1 request, got:\n+        22: invokevirtual #55                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         25: aload_0\n-        26: getfield      #5                  // Field requests:Ljava/util/List;\n-        29: invokeinterface #11,  1           // InterfaceMethod java/util/List.size:()I\n-        34: invokevirtual #16                 // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;\n-        37: invokevirtual #17                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n+        26: getfield      #16                 // Field requests:Ljava/util/List;\n+        29: invokeinterface #46,  1           // InterfaceMethod java/util/List.size:()I\n+        34: invokevirtual #59                 // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;\n+        37: invokevirtual #62                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n         40: iconst_0\n-        41: anewarray     #18                 // class java/lang/Object\n-        44: invokestatic  #19                 // Method dev/langchain4j/internal/Exceptions.runtime:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;\n+        41: anewarray     #2                  // class java/lang/Object\n+        44: invokestatic  #66                 // Method dev/langchain4j/internal/Exceptions.runtime:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;\n         47: athrow\n         48: aload_0\n-        49: getfield      #5                  // Field requests:Ljava/util/List;\n+        49: getfield      #16                 // Field requests:Ljava/util/List;\n         52: iconst_0\n-        53: invokeinterface #20,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;\n-        58: checkcast     #21                 // class java/util/List\n+        53: invokeinterface #72,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;\n+        58: checkcast     #30                 // class java/util/List\n         61: astore_1\n         62: aload_1\n-        63: invokeinterface #11,  1           // InterfaceMethod java/util/List.size:()I\n+        63: invokeinterface #46,  1           // InterfaceMethod java/util/List.size:()I\n         68: iconst_1\n         69: if_icmpeq     104\n-        72: new           #12                 // class java/lang/StringBuilder\n+        72: new           #50                 // class java/lang/StringBuilder\n         75: dup\n-        76: invokespecial #13                 // Method java/lang/StringBuilder.\"<init>\":()V\n-        79: ldc           #22                 // String Expected exactly 1 message, got:\n-        81: invokevirtual #15                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        76: invokespecial #52                 // Method java/lang/StringBuilder.\"<init>\":()V\n+        79: ldc           #76                 // String Expected exactly 1 message, got:\n+        81: invokevirtual #55                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         84: aload_1\n-        85: invokeinterface #11,  1           // InterfaceMethod java/util/List.size:()I\n-        90: invokevirtual #16                 // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;\n-        93: invokevirtual #17                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n+        85: invokeinterface #46,  1           // InterfaceMethod java/util/List.size:()I\n+        90: invokevirtual #59                 // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;\n+        93: invokevirtual #62                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n         96: iconst_0\n-        97: anewarray     #18                 // class java/lang/Object\n-       100: invokestatic  #19                 // Method dev/langchain4j/internal/Exceptions.runtime:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;\n+        97: anewarray     #2                  // class java/lang/Object\n+       100: invokestatic  #66                 // Method dev/langchain4j/internal/Exceptions.runtime:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;\n        103: athrow\n        104: aload_1\n        105: iconst_0\n-       106: invokeinterface #20,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;\n-       111: checkcast     #23                 // class dev/langchain4j/data/message/ChatMessage\n+       106: invokeinterface #72,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;\n+       111: checkcast     #78                 // class dev/langchain4j/data/message/ChatMessage\n        114: astore_2\n        115: aload_2\n-       116: instanceof    #24                 // class dev/langchain4j/data/message/UserMessage\n+       116: instanceof    #80                 // class dev/langchain4j/data/message/UserMessage\n        119: ifne          149\n-       122: new           #12                 // class java/lang/StringBuilder\n+       122: new           #50                 // class java/lang/StringBuilder\n        125: dup\n-       126: invokespecial #13                 // Method java/lang/StringBuilder.\"<init>\":()V\n-       129: ldc           #25                 // String Expected exactly UserMessage, got:\n-       131: invokevirtual #15                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+       126: invokespecial #52                 // Method java/lang/StringBuilder.\"<init>\":()V\n+       129: ldc           #82                 // String Expected exactly UserMessage, got:\n+       131: invokevirtual #55                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n        134: aload_2\n-       135: invokevirtual #26                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-       138: invokevirtual #17                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n+       135: invokevirtual #84                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+       138: invokevirtual #62                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n        141: iconst_0\n-       142: anewarray     #18                 // class java/lang/Object\n-       145: invokestatic  #19                 // Method dev/langchain4j/internal/Exceptions.runtime:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;\n+       142: anewarray     #2                  // class java/lang/Object\n+       145: invokestatic  #66                 // Method dev/langchain4j/internal/Exceptions.runtime:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;\n        148: athrow\n        149: aload_2\n-       150: invokeinterface #27,  1           // InterfaceMethod dev/langchain4j/data/message/ChatMessage.text:()Ljava/lang/String;\n+       150: invokeinterface #87,  1           // InterfaceMethod dev/langchain4j/data/message/ChatMessage.text:()Ljava/lang/String;\n        155: areturn\n       LineNumberTable:\n         line 36: 0\n         line 37: 13\n         line 40: 48\n         line 41: 62\n         line 42: 72\n@@ -291,18 +289,18 @@\n           locals = [ class dev/langchain4j/data/message/ChatMessage ]\n \n   public static dev.langchain4j.model.chat.mock.ChatModelMock withStaticResponse(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n     flags: (0x0009) ACC_PUBLIC, ACC_STATIC\n     Code:\n       stack=3, locals=1, args_size=1\n-         0: new           #28                 // class dev/langchain4j/model/chat/mock/ChatModelMock\n+         0: new           #17                 // class dev/langchain4j/model/chat/mock/ChatModelMock\n          3: dup\n          4: aload_0\n-         5: invokespecial #29                 // Method \"<init>\":(Ljava/lang/String;)V\n+         5: invokespecial #90                 // Method \"<init>\":(Ljava/lang/String;)V\n          8: areturn\n       LineNumberTable:\n         line 54: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       9     0 response   Ljava/lang/String;\n }\n"}]}, {"source1": "dev/langchain4j/model/embedding/EmbeddingModelTest$BrokenEmbeddingModelImpl.class", "source2": "dev/langchain4j/model/embedding/EmbeddingModelTest$BrokenEmbeddingModelImpl.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,64 +1,64 @@\n-  SHA-256 checksum ae07b04c8078a49335176d4f22b5b6bbf3e39d06b10c3fd2ace334b99e1e0b73\n+  SHA-256 checksum 0a29bfe9982c69a8a033bc0ce7bb134f0d9776d6bcba6d5e6d19d588b9493d5c\n   Compiled from \"EmbeddingModelTest.java\"\n public class dev.langchain4j.model.embedding.EmbeddingModelTest$BrokenEmbeddingModelImpl implements dev.langchain4j.model.embedding.EmbeddingModel\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #8                          // dev/langchain4j/model/embedding/EmbeddingModelTest$BrokenEmbeddingModelImpl\n-  super_class: #9                         // java/lang/Object\n+  this_class: #25                         // dev/langchain4j/model/embedding/EmbeddingModelTest$BrokenEmbeddingModelImpl\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 2\n Constant pool:\n-   #1 = Methodref          #9.#31         // java/lang/Object.\"<init>\":()V\n-   #2 = Class              #32            // java/util/ArrayList\n-   #3 = Methodref          #2.#33         // java/util/ArrayList.\"<init>\":(Ljava/util/Collection;)V\n-   #4 = InterfaceMethodref #34.#35        // java/util/List.addAll:(Ljava/util/Collection;)Z\n-   #5 = Class              #37            // dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl\n-   #6 = Methodref          #5.#31         // dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl.\"<init>\":()V\n-   #7 = Methodref          #5.#39         // dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl.embedAll:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n-   #8 = Class              #40            // dev/langchain4j/model/embedding/EmbeddingModelTest$BrokenEmbeddingModelImpl\n-   #9 = Class              #41            // java/lang/Object\n-  #10 = Class              #42            // dev/langchain4j/model/embedding/EmbeddingModel\n-  #11 = Utf8               <init>\n-  #12 = Utf8               ()V\n-  #13 = Utf8               Code\n-  #14 = Utf8               LineNumberTable\n-  #15 = Utf8               LocalVariableTable\n-  #16 = Utf8               this\n-  #17 = Utf8               BrokenEmbeddingModelImpl\n-  #18 = Utf8               InnerClasses\n-  #19 = Utf8               Ldev/langchain4j/model/embedding/EmbeddingModelTest$BrokenEmbeddingModelImpl;\n-  #20 = Utf8               embedAll\n-  #21 = Utf8               (Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n-  #22 = Utf8               textSegments\n-  #23 = Utf8               Ljava/util/List;\n-  #24 = Utf8               doubledList\n-  #25 = Utf8               LocalVariableTypeTable\n-  #26 = Utf8               Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;\n-  #27 = Utf8               Signature\n-  #28 = Utf8               (Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;)Ldev/langchain4j/model/output/Response<Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;>;\n-  #29 = Utf8               SourceFile\n-  #30 = Utf8               EmbeddingModelTest.java\n-  #31 = NameAndType        #11:#12        // \"<init>\":()V\n-  #32 = Utf8               java/util/ArrayList\n-  #33 = NameAndType        #11:#43        // \"<init>\":(Ljava/util/Collection;)V\n-  #34 = Class              #44            // java/util/List\n-  #35 = NameAndType        #45:#46        // addAll:(Ljava/util/Collection;)Z\n-  #36 = Class              #47            // dev/langchain4j/model/embedding/EmbeddingModelTest\n-  #37 = Utf8               dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl\n-  #38 = Utf8               EmbeddingModelImpl\n-  #39 = NameAndType        #20:#21        // embedAll:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n-  #40 = Utf8               dev/langchain4j/model/embedding/EmbeddingModelTest$BrokenEmbeddingModelImpl\n-  #41 = Utf8               java/lang/Object\n-  #42 = Utf8               dev/langchain4j/model/embedding/EmbeddingModel\n-  #43 = Utf8               (Ljava/util/Collection;)V\n-  #44 = Utf8               java/util/List\n-  #45 = Utf8               addAll\n-  #46 = Utf8               (Ljava/util/Collection;)Z\n-  #47 = Utf8               dev/langchain4j/model/embedding/EmbeddingModelTest\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Class              #8             // java/util/ArrayList\n+   #8 = Utf8               java/util/ArrayList\n+   #9 = Methodref          #7.#10         // java/util/ArrayList.\"<init>\":(Ljava/util/Collection;)V\n+  #10 = NameAndType        #5:#11         // \"<init>\":(Ljava/util/Collection;)V\n+  #11 = Utf8               (Ljava/util/Collection;)V\n+  #12 = InterfaceMethodref #13.#14        // java/util/List.addAll:(Ljava/util/Collection;)Z\n+  #13 = Class              #15            // java/util/List\n+  #14 = NameAndType        #16:#17        // addAll:(Ljava/util/Collection;)Z\n+  #15 = Utf8               java/util/List\n+  #16 = Utf8               addAll\n+  #17 = Utf8               (Ljava/util/Collection;)Z\n+  #18 = Class              #19            // dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl\n+  #19 = Utf8               dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl\n+  #20 = Methodref          #18.#3         // dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl.\"<init>\":()V\n+  #21 = Methodref          #18.#22        // dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl.embedAll:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+  #22 = NameAndType        #23:#24        // embedAll:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+  #23 = Utf8               embedAll\n+  #24 = Utf8               (Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+  #25 = Class              #26            // dev/langchain4j/model/embedding/EmbeddingModelTest$BrokenEmbeddingModelImpl\n+  #26 = Utf8               dev/langchain4j/model/embedding/EmbeddingModelTest$BrokenEmbeddingModelImpl\n+  #27 = Class              #28            // dev/langchain4j/model/embedding/EmbeddingModel\n+  #28 = Utf8               dev/langchain4j/model/embedding/EmbeddingModel\n+  #29 = Utf8               Code\n+  #30 = Utf8               LineNumberTable\n+  #31 = Utf8               LocalVariableTable\n+  #32 = Utf8               this\n+  #33 = Utf8               Ldev/langchain4j/model/embedding/EmbeddingModelTest$BrokenEmbeddingModelImpl;\n+  #34 = Utf8               textSegments\n+  #35 = Utf8               Ljava/util/List;\n+  #36 = Utf8               doubledList\n+  #37 = Utf8               LocalVariableTypeTable\n+  #38 = Utf8               Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;\n+  #39 = Utf8               Signature\n+  #40 = Utf8               (Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;)Ldev/langchain4j/model/output/Response<Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;>;\n+  #41 = Utf8               SourceFile\n+  #42 = Utf8               EmbeddingModelTest.java\n+  #43 = Utf8               InnerClasses\n+  #44 = Class              #45            // dev/langchain4j/model/embedding/EmbeddingModelTest\n+  #45 = Utf8               dev/langchain4j/model/embedding/EmbeddingModelTest\n+  #46 = Utf8               EmbeddingModelImpl\n+  #47 = Utf8               BrokenEmbeddingModelImpl\n {\n   public dev.langchain4j.model.embedding.EmbeddingModelTest$BrokenEmbeddingModelImpl();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -71,41 +71,41 @@\n             0       5     0  this   Ldev/langchain4j/model/embedding/EmbeddingModelTest$BrokenEmbeddingModelImpl;\n \n   public dev.langchain4j.model.output.Response<java.util.List<dev.langchain4j.data.embedding.Embedding>> embedAll(java.util.List<dev.langchain4j.data.segment.TextSegment>);\n     descriptor: (Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=3, args_size=2\n-         0: new           #2                  // class java/util/ArrayList\n+         0: new           #7                  // class java/util/ArrayList\n          3: dup\n          4: aload_1\n-         5: invokespecial #3                  // Method java/util/ArrayList.\"<init>\":(Ljava/util/Collection;)V\n+         5: invokespecial #9                  // Method java/util/ArrayList.\"<init>\":(Ljava/util/Collection;)V\n          8: astore_2\n          9: aload_2\n         10: aload_1\n-        11: invokeinterface #4,  2            // InterfaceMethod java/util/List.addAll:(Ljava/util/Collection;)Z\n+        11: invokeinterface #12,  2           // InterfaceMethod java/util/List.addAll:(Ljava/util/Collection;)Z\n         16: pop\n-        17: new           #5                  // class dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl\n+        17: new           #18                 // class dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl\n         20: dup\n-        21: invokespecial #6                  // Method dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl.\"<init>\":()V\n+        21: invokespecial #20                 // Method dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl.\"<init>\":()V\n         24: aload_2\n-        25: invokevirtual #7                  // Method dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl.embedAll:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+        25: invokevirtual #21                 // Method dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl.embedAll:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n         28: areturn\n       LineNumberTable:\n         line 33: 0\n         line 34: 9\n         line 36: 17\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      29     0  this   Ldev/langchain4j/model/embedding/EmbeddingModelTest$BrokenEmbeddingModelImpl;\n             0      29     1 textSegments   Ljava/util/List;\n             9      20     2 doubledList   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0      29     1 textSegments   Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;\n             9      20     2 doubledList   Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;\n-    Signature: #28                          // (Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;)Ldev/langchain4j/model/output/Response<Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;>;\n+    Signature: #40                          // (Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;)Ldev/langchain4j/model/output/Response<Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;>;\n }\n SourceFile: \"EmbeddingModelTest.java\"\n InnerClasses:\n-  public static #17= #8 of #36;           // BrokenEmbeddingModelImpl=class dev/langchain4j/model/embedding/EmbeddingModelTest$BrokenEmbeddingModelImpl of class dev/langchain4j/model/embedding/EmbeddingModelTest\n-  public static #38= #5 of #36;           // EmbeddingModelImpl=class dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl of class dev/langchain4j/model/embedding/EmbeddingModelTest\n+  public static #46= #18 of #44;          // EmbeddingModelImpl=class dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl of class dev/langchain4j/model/embedding/EmbeddingModelTest\n+  public static #47= #25 of #44;          // BrokenEmbeddingModelImpl=class dev/langchain4j/model/embedding/EmbeddingModelTest$BrokenEmbeddingModelImpl of class dev/langchain4j/model/embedding/EmbeddingModelTest\n"}]}, {"source1": "dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl.class", "source2": "dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,163 +1,163 @@\n-  SHA-256 checksum eb1046d4ef88e483f785674bbea8c53c4991a31a0d0dfaa4e7026e420fa229f6\n+  SHA-256 checksum eb51568675b40fdd411aa3c92e6e710963f7445d2a3a81b2c8710bfcd8a2e13b\n   Compiled from \"EmbeddingModelTest.java\"\n public class dev.langchain4j.model.embedding.EmbeddingModelTest$EmbeddingModelImpl implements dev.langchain4j.model.embedding.EmbeddingModel\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #21                         // dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl\n-  super_class: #22                        // java/lang/Object\n+  this_class: #89                         // dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 4, attributes: 3\n Constant pool:\n-    #1 = Methodref          #22.#53       // java/lang/Object.\"<init>\":()V\n-    #2 = InterfaceMethodref #7.#54        // java/util/List.stream:()Ljava/util/stream/Stream;\n-    #3 = InvokeDynamic      #0:#60        // #0:apply:()Ljava/util/function/Function;\n-    #4 = InterfaceMethodref #61.#62       // java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n-    #5 = Methodref          #63.#64       // java/util/stream/Collectors.toList:()Ljava/util/stream/Collector;\n-    #6 = InterfaceMethodref #61.#65       // java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n-    #7 = Class              #66           // java/util/List\n-    #8 = InvokeDynamic      #1:#70        // #1:applyAsInt:()Ljava/util/function/ToIntFunction;\n-    #9 = InterfaceMethodref #61.#71       // java/util/stream/Stream.mapToInt:(Ljava/util/function/ToIntFunction;)Ljava/util/stream/IntStream;\n-   #10 = InterfaceMethodref #72.#73       // java/util/stream/IntStream.sum:()I\n-   #11 = Class              #74           // dev/langchain4j/model/output/TokenUsage\n-   #12 = Methodref          #75.#76       // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-   #13 = Methodref          #11.#77       // dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;)V\n-   #14 = Fieldref           #78.#79       // dev/langchain4j/model/output/FinishReason.STOP:Ldev/langchain4j/model/output/FinishReason;\n-   #15 = Methodref          #80.#81       // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n-   #16 = Methodref          #82.#83       // dev/langchain4j/data/segment/TextSegment.text:()Ljava/lang/String;\n-   #17 = Methodref          #84.#85       // java/lang/String.length:()I\n-   #18 = Class              #86           // dev/langchain4j/data/embedding/Embedding\n-   #19 = Methodref          #84.#87       // java/lang/String.hashCode:()I\n-   #20 = Methodref          #18.#88       // dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n-   #21 = Class              #90           // dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl\n-   #22 = Class              #91           // java/lang/Object\n-   #23 = Class              #92           // dev/langchain4j/model/embedding/EmbeddingModel\n-   #24 = Utf8               <init>\n-   #25 = Utf8               ()V\n-   #26 = Utf8               Code\n-   #27 = Utf8               LineNumberTable\n-   #28 = Utf8               LocalVariableTable\n-   #29 = Utf8               this\n-   #30 = Utf8               EmbeddingModelImpl\n-   #31 = Utf8               InnerClasses\n-   #32 = Utf8               Ldev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl;\n-   #33 = Utf8               embedAll\n-   #34 = Utf8               (Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n-   #35 = Utf8               textSegments\n-   #36 = Utf8               Ljava/util/List;\n-   #37 = Utf8               embeddings\n-   #38 = Utf8               tokenUsage\n-   #39 = Utf8               I\n-   #40 = Utf8               LocalVariableTypeTable\n-   #41 = Utf8               Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;\n-   #42 = Utf8               Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;\n-   #43 = Utf8               Signature\n-   #44 = Utf8               (Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;)Ldev/langchain4j/model/output/Response<Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;>;\n-   #45 = Utf8               lambda$embedAll$1\n-   #46 = Utf8               (Ldev/langchain4j/data/segment/TextSegment;)I\n-   #47 = Utf8               ts\n-   #48 = Utf8               Ldev/langchain4j/data/segment/TextSegment;\n-   #49 = Utf8               lambda$embedAll$0\n-   #50 = Utf8               (Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/data/embedding/Embedding;\n-   #51 = Utf8               SourceFile\n-   #52 = Utf8               EmbeddingModelTest.java\n-   #53 = NameAndType        #24:#25       // \"<init>\":()V\n-   #54 = NameAndType        #93:#94       // stream:()Ljava/util/stream/Stream;\n-   #55 = Utf8               BootstrapMethods\n-   #56 = MethodHandle       6:#95         // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-   #57 = MethodType         #96           //  (Ljava/lang/Object;)Ljava/lang/Object;\n-   #58 = MethodHandle       6:#97         // REF_invokeStatic dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl.lambda$embedAll$0:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/data/embedding/Embedding;\n-   #59 = MethodType         #50           //  (Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/data/embedding/Embedding;\n-   #60 = NameAndType        #98:#99       // apply:()Ljava/util/function/Function;\n-   #61 = Class              #100          // java/util/stream/Stream\n-   #62 = NameAndType        #101:#102     // map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n-   #63 = Class              #103          // java/util/stream/Collectors\n-   #64 = NameAndType        #104:#105     // toList:()Ljava/util/stream/Collector;\n-   #65 = NameAndType        #106:#107     // collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n-   #66 = Utf8               java/util/List\n-   #67 = MethodType         #108          //  (Ljava/lang/Object;)I\n-   #68 = MethodHandle       6:#109        // REF_invokeStatic dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl.lambda$embedAll$1:(Ldev/langchain4j/data/segment/TextSegment;)I\n-   #69 = MethodType         #46           //  (Ldev/langchain4j/data/segment/TextSegment;)I\n-   #70 = NameAndType        #110:#111     // applyAsInt:()Ljava/util/function/ToIntFunction;\n-   #71 = NameAndType        #112:#113     // mapToInt:(Ljava/util/function/ToIntFunction;)Ljava/util/stream/IntStream;\n-   #72 = Class              #114          // java/util/stream/IntStream\n-   #73 = NameAndType        #115:#116     // sum:()I\n-   #74 = Utf8               dev/langchain4j/model/output/TokenUsage\n-   #75 = Class              #117          // java/lang/Integer\n-   #76 = NameAndType        #118:#119     // valueOf:(I)Ljava/lang/Integer;\n-   #77 = NameAndType        #24:#120      // \"<init>\":(Ljava/lang/Integer;)V\n-   #78 = Class              #121          // dev/langchain4j/model/output/FinishReason\n-   #79 = NameAndType        #122:#123     // STOP:Ldev/langchain4j/model/output/FinishReason;\n-   #80 = Class              #124          // dev/langchain4j/model/output/Response\n-   #81 = NameAndType        #125:#126     // from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n-   #82 = Class              #127          // dev/langchain4j/data/segment/TextSegment\n-   #83 = NameAndType        #128:#129     // text:()Ljava/lang/String;\n-   #84 = Class              #130          // java/lang/String\n-   #85 = NameAndType        #131:#116     // length:()I\n-   #86 = Utf8               dev/langchain4j/data/embedding/Embedding\n-   #87 = NameAndType        #132:#116     // hashCode:()I\n-   #88 = NameAndType        #24:#133      // \"<init>\":([F)V\n-   #89 = Class              #134          // dev/langchain4j/model/embedding/EmbeddingModelTest\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = InterfaceMethodref #8.#9         // java/util/List.stream:()Ljava/util/stream/Stream;\n+    #8 = Class              #10           // java/util/List\n+    #9 = NameAndType        #11:#12       // stream:()Ljava/util/stream/Stream;\n+   #10 = Utf8               java/util/List\n+   #11 = Utf8               stream\n+   #12 = Utf8               ()Ljava/util/stream/Stream;\n+   #13 = InvokeDynamic      #0:#14        // #0:apply:()Ljava/util/function/Function;\n+   #14 = NameAndType        #15:#16       // apply:()Ljava/util/function/Function;\n+   #15 = Utf8               apply\n+   #16 = Utf8               ()Ljava/util/function/Function;\n+   #17 = InterfaceMethodref #18.#19       // java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n+   #18 = Class              #20           // java/util/stream/Stream\n+   #19 = NameAndType        #21:#22       // map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n+   #20 = Utf8               java/util/stream/Stream\n+   #21 = Utf8               map\n+   #22 = Utf8               (Ljava/util/function/Function;)Ljava/util/stream/Stream;\n+   #23 = Methodref          #24.#25       // java/util/stream/Collectors.toList:()Ljava/util/stream/Collector;\n+   #24 = Class              #26           // java/util/stream/Collectors\n+   #25 = NameAndType        #27:#28       // toList:()Ljava/util/stream/Collector;\n+   #26 = Utf8               java/util/stream/Collectors\n+   #27 = Utf8               toList\n+   #28 = Utf8               ()Ljava/util/stream/Collector;\n+   #29 = InterfaceMethodref #18.#30       // java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n+   #30 = NameAndType        #31:#32       // collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n+   #31 = Utf8               collect\n+   #32 = Utf8               (Ljava/util/stream/Collector;)Ljava/lang/Object;\n+   #33 = InvokeDynamic      #1:#34        // #1:applyAsInt:()Ljava/util/function/ToIntFunction;\n+   #34 = NameAndType        #35:#36       // applyAsInt:()Ljava/util/function/ToIntFunction;\n+   #35 = Utf8               applyAsInt\n+   #36 = Utf8               ()Ljava/util/function/ToIntFunction;\n+   #37 = InterfaceMethodref #18.#38       // java/util/stream/Stream.mapToInt:(Ljava/util/function/ToIntFunction;)Ljava/util/stream/IntStream;\n+   #38 = NameAndType        #39:#40       // mapToInt:(Ljava/util/function/ToIntFunction;)Ljava/util/stream/IntStream;\n+   #39 = Utf8               mapToInt\n+   #40 = Utf8               (Ljava/util/function/ToIntFunction;)Ljava/util/stream/IntStream;\n+   #41 = InterfaceMethodref #42.#43       // java/util/stream/IntStream.sum:()I\n+   #42 = Class              #44           // java/util/stream/IntStream\n+   #43 = NameAndType        #45:#46       // sum:()I\n+   #44 = Utf8               java/util/stream/IntStream\n+   #45 = Utf8               sum\n+   #46 = Utf8               ()I\n+   #47 = Class              #48           // dev/langchain4j/model/output/TokenUsage\n+   #48 = Utf8               dev/langchain4j/model/output/TokenUsage\n+   #49 = Methodref          #50.#51       // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+   #50 = Class              #52           // java/lang/Integer\n+   #51 = NameAndType        #53:#54       // valueOf:(I)Ljava/lang/Integer;\n+   #52 = Utf8               java/lang/Integer\n+   #53 = Utf8               valueOf\n+   #54 = Utf8               (I)Ljava/lang/Integer;\n+   #55 = Methodref          #47.#56       // dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;)V\n+   #56 = NameAndType        #5:#57        // \"<init>\":(Ljava/lang/Integer;)V\n+   #57 = Utf8               (Ljava/lang/Integer;)V\n+   #58 = Fieldref           #59.#60       // dev/langchain4j/model/output/FinishReason.STOP:Ldev/langchain4j/model/output/FinishReason;\n+   #59 = Class              #61           // dev/langchain4j/model/output/FinishReason\n+   #60 = NameAndType        #62:#63       // STOP:Ldev/langchain4j/model/output/FinishReason;\n+   #61 = Utf8               dev/langchain4j/model/output/FinishReason\n+   #62 = Utf8               STOP\n+   #63 = Utf8               Ldev/langchain4j/model/output/FinishReason;\n+   #64 = Methodref          #65.#66       // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n+   #65 = Class              #67           // dev/langchain4j/model/output/Response\n+   #66 = NameAndType        #68:#69       // from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n+   #67 = Utf8               dev/langchain4j/model/output/Response\n+   #68 = Utf8               from\n+   #69 = Utf8               (Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n+   #70 = Methodref          #71.#72       // dev/langchain4j/data/segment/TextSegment.text:()Ljava/lang/String;\n+   #71 = Class              #73           // dev/langchain4j/data/segment/TextSegment\n+   #72 = NameAndType        #74:#75       // text:()Ljava/lang/String;\n+   #73 = Utf8               dev/langchain4j/data/segment/TextSegment\n+   #74 = Utf8               text\n+   #75 = Utf8               ()Ljava/lang/String;\n+   #76 = Methodref          #77.#78       // java/lang/String.length:()I\n+   #77 = Class              #79           // java/lang/String\n+   #78 = NameAndType        #80:#46       // length:()I\n+   #79 = Utf8               java/lang/String\n+   #80 = Utf8               length\n+   #81 = Class              #82           // dev/langchain4j/data/embedding/Embedding\n+   #82 = Utf8               dev/langchain4j/data/embedding/Embedding\n+   #83 = Methodref          #77.#84       // java/lang/String.hashCode:()I\n+   #84 = NameAndType        #85:#46       // hashCode:()I\n+   #85 = Utf8               hashCode\n+   #86 = Methodref          #81.#87       // dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n+   #87 = NameAndType        #5:#88        // \"<init>\":([F)V\n+   #88 = Utf8               ([F)V\n+   #89 = Class              #90           // dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl\n    #90 = Utf8               dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl\n-   #91 = Utf8               java/lang/Object\n+   #91 = Class              #92           // dev/langchain4j/model/embedding/EmbeddingModel\n    #92 = Utf8               dev/langchain4j/model/embedding/EmbeddingModel\n-   #93 = Utf8               stream\n-   #94 = Utf8               ()Ljava/util/stream/Stream;\n-   #95 = Methodref          #135.#136     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-   #96 = Utf8               (Ljava/lang/Object;)Ljava/lang/Object;\n-   #97 = Methodref          #21.#137      // dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl.lambda$embedAll$0:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/data/embedding/Embedding;\n-   #98 = Utf8               apply\n-   #99 = Utf8               ()Ljava/util/function/Function;\n-  #100 = Utf8               java/util/stream/Stream\n-  #101 = Utf8               map\n-  #102 = Utf8               (Ljava/util/function/Function;)Ljava/util/stream/Stream;\n-  #103 = Utf8               java/util/stream/Collectors\n-  #104 = Utf8               toList\n-  #105 = Utf8               ()Ljava/util/stream/Collector;\n-  #106 = Utf8               collect\n-  #107 = Utf8               (Ljava/util/stream/Collector;)Ljava/lang/Object;\n-  #108 = Utf8               (Ljava/lang/Object;)I\n-  #109 = Methodref          #21.#138      // dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl.lambda$embedAll$1:(Ldev/langchain4j/data/segment/TextSegment;)I\n-  #110 = Utf8               applyAsInt\n-  #111 = Utf8               ()Ljava/util/function/ToIntFunction;\n-  #112 = Utf8               mapToInt\n-  #113 = Utf8               (Ljava/util/function/ToIntFunction;)Ljava/util/stream/IntStream;\n-  #114 = Utf8               java/util/stream/IntStream\n-  #115 = Utf8               sum\n-  #116 = Utf8               ()I\n-  #117 = Utf8               java/lang/Integer\n-  #118 = Utf8               valueOf\n-  #119 = Utf8               (I)Ljava/lang/Integer;\n-  #120 = Utf8               (Ljava/lang/Integer;)V\n-  #121 = Utf8               dev/langchain4j/model/output/FinishReason\n-  #122 = Utf8               STOP\n-  #123 = Utf8               Ldev/langchain4j/model/output/FinishReason;\n-  #124 = Utf8               dev/langchain4j/model/output/Response\n-  #125 = Utf8               from\n-  #126 = Utf8               (Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n-  #127 = Utf8               dev/langchain4j/data/segment/TextSegment\n-  #128 = Utf8               text\n-  #129 = Utf8               ()Ljava/lang/String;\n-  #130 = Utf8               java/lang/String\n-  #131 = Utf8               length\n-  #132 = Utf8               hashCode\n-  #133 = Utf8               ([F)V\n-  #134 = Utf8               dev/langchain4j/model/embedding/EmbeddingModelTest\n-  #135 = Class              #139          // java/lang/invoke/LambdaMetafactory\n-  #136 = NameAndType        #140:#143     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #137 = NameAndType        #49:#50       // lambda$embedAll$0:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/data/embedding/Embedding;\n-  #138 = NameAndType        #45:#46       // lambda$embedAll$1:(Ldev/langchain4j/data/segment/TextSegment;)I\n-  #139 = Utf8               java/lang/invoke/LambdaMetafactory\n-  #140 = Utf8               metafactory\n-  #141 = Class              #145          // java/lang/invoke/MethodHandles$Lookup\n-  #142 = Utf8               Lookup\n-  #143 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #144 = Class              #146          // java/lang/invoke/MethodHandles\n-  #145 = Utf8               java/lang/invoke/MethodHandles$Lookup\n-  #146 = Utf8               java/lang/invoke/MethodHandles\n+   #93 = Utf8               Code\n+   #94 = Utf8               LineNumberTable\n+   #95 = Utf8               LocalVariableTable\n+   #96 = Utf8               this\n+   #97 = Utf8               Ldev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl;\n+   #98 = Utf8               embedAll\n+   #99 = Utf8               (Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+  #100 = Utf8               textSegments\n+  #101 = Utf8               Ljava/util/List;\n+  #102 = Utf8               embeddings\n+  #103 = Utf8               tokenUsage\n+  #104 = Utf8               I\n+  #105 = Utf8               LocalVariableTypeTable\n+  #106 = Utf8               Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;\n+  #107 = Utf8               Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;\n+  #108 = Utf8               Signature\n+  #109 = Utf8               (Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;)Ldev/langchain4j/model/output/Response<Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;>;\n+  #110 = Utf8               lambda$embedAll$1\n+  #111 = Utf8               (Ldev/langchain4j/data/segment/TextSegment;)I\n+  #112 = Utf8               ts\n+  #113 = Utf8               Ldev/langchain4j/data/segment/TextSegment;\n+  #114 = Utf8               lambda$embedAll$0\n+  #115 = Utf8               (Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/data/embedding/Embedding;\n+  #116 = Utf8               SourceFile\n+  #117 = Utf8               EmbeddingModelTest.java\n+  #118 = Utf8               BootstrapMethods\n+  #119 = MethodHandle       6:#120        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #120 = Methodref          #121.#122     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #121 = Class              #123          // java/lang/invoke/LambdaMetafactory\n+  #122 = NameAndType        #124:#125     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #123 = Utf8               java/lang/invoke/LambdaMetafactory\n+  #124 = Utf8               metafactory\n+  #125 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #126 = MethodType         #127          //  (Ljava/lang/Object;)Ljava/lang/Object;\n+  #127 = Utf8               (Ljava/lang/Object;)Ljava/lang/Object;\n+  #128 = MethodHandle       6:#129        // REF_invokeStatic dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl.lambda$embedAll$0:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/data/embedding/Embedding;\n+  #129 = Methodref          #89.#130      // dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl.lambda$embedAll$0:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/data/embedding/Embedding;\n+  #130 = NameAndType        #114:#115     // lambda$embedAll$0:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/data/embedding/Embedding;\n+  #131 = MethodType         #115          //  (Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/data/embedding/Embedding;\n+  #132 = MethodType         #133          //  (Ljava/lang/Object;)I\n+  #133 = Utf8               (Ljava/lang/Object;)I\n+  #134 = MethodHandle       6:#135        // REF_invokeStatic dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl.lambda$embedAll$1:(Ldev/langchain4j/data/segment/TextSegment;)I\n+  #135 = Methodref          #89.#136      // dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl.lambda$embedAll$1:(Ldev/langchain4j/data/segment/TextSegment;)I\n+  #136 = NameAndType        #110:#111     // lambda$embedAll$1:(Ldev/langchain4j/data/segment/TextSegment;)I\n+  #137 = MethodType         #111          //  (Ldev/langchain4j/data/segment/TextSegment;)I\n+  #138 = Utf8               InnerClasses\n+  #139 = Class              #140          // dev/langchain4j/model/embedding/EmbeddingModelTest\n+  #140 = Utf8               dev/langchain4j/model/embedding/EmbeddingModelTest\n+  #141 = Utf8               EmbeddingModelImpl\n+  #142 = Class              #143          // java/lang/invoke/MethodHandles$Lookup\n+  #143 = Utf8               java/lang/invoke/MethodHandles$Lookup\n+  #144 = Class              #145          // java/lang/invoke/MethodHandles\n+  #145 = Utf8               java/lang/invoke/MethodHandles\n+  #146 = Utf8               Lookup\n {\n   public dev.langchain4j.model.embedding.EmbeddingModelTest$EmbeddingModelImpl();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -171,35 +171,35 @@\n \n   public dev.langchain4j.model.output.Response<java.util.List<dev.langchain4j.data.embedding.Embedding>> embedAll(java.util.List<dev.langchain4j.data.segment.TextSegment>);\n     descriptor: (Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=4, locals=4, args_size=2\n          0: aload_1\n-         1: invokeinterface #2,  1            // InterfaceMethod java/util/List.stream:()Ljava/util/stream/Stream;\n-         6: invokedynamic #3,  0              // InvokeDynamic #0:apply:()Ljava/util/function/Function;\n-        11: invokeinterface #4,  2            // InterfaceMethod java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n-        16: invokestatic  #5                  // Method java/util/stream/Collectors.toList:()Ljava/util/stream/Collector;\n-        19: invokeinterface #6,  2            // InterfaceMethod java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n-        24: checkcast     #7                  // class java/util/List\n+         1: invokeinterface #7,  1            // InterfaceMethod java/util/List.stream:()Ljava/util/stream/Stream;\n+         6: invokedynamic #13,  0             // InvokeDynamic #0:apply:()Ljava/util/function/Function;\n+        11: invokeinterface #17,  2           // InterfaceMethod java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n+        16: invokestatic  #23                 // Method java/util/stream/Collectors.toList:()Ljava/util/stream/Collector;\n+        19: invokeinterface #29,  2           // InterfaceMethod java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n+        24: checkcast     #8                  // class java/util/List\n         27: astore_2\n         28: aload_1\n-        29: invokeinterface #2,  1            // InterfaceMethod java/util/List.stream:()Ljava/util/stream/Stream;\n-        34: invokedynamic #8,  0              // InvokeDynamic #1:applyAsInt:()Ljava/util/function/ToIntFunction;\n-        39: invokeinterface #9,  2            // InterfaceMethod java/util/stream/Stream.mapToInt:(Ljava/util/function/ToIntFunction;)Ljava/util/stream/IntStream;\n-        44: invokeinterface #10,  1           // InterfaceMethod java/util/stream/IntStream.sum:()I\n+        29: invokeinterface #7,  1            // InterfaceMethod java/util/List.stream:()Ljava/util/stream/Stream;\n+        34: invokedynamic #33,  0             // InvokeDynamic #1:applyAsInt:()Ljava/util/function/ToIntFunction;\n+        39: invokeinterface #37,  2           // InterfaceMethod java/util/stream/Stream.mapToInt:(Ljava/util/function/ToIntFunction;)Ljava/util/stream/IntStream;\n+        44: invokeinterface #41,  1           // InterfaceMethod java/util/stream/IntStream.sum:()I\n         49: istore_3\n         50: aload_2\n-        51: new           #11                 // class dev/langchain4j/model/output/TokenUsage\n+        51: new           #47                 // class dev/langchain4j/model/output/TokenUsage\n         54: dup\n         55: iload_3\n-        56: invokestatic  #12                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-        59: invokespecial #13                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;)V\n-        62: getstatic     #14                 // Field dev/langchain4j/model/output/FinishReason.STOP:Ldev/langchain4j/model/output/FinishReason;\n-        65: invokestatic  #15                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n+        56: invokestatic  #49                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        59: invokespecial #55                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;)V\n+        62: getstatic     #58                 // Field dev/langchain4j/model/output/FinishReason.STOP:Ldev/langchain4j/model/output/FinishReason;\n+        65: invokestatic  #64                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n         68: areturn\n       LineNumberTable:\n         line 19: 0\n         line 20: 1\n         line 21: 16\n         line 23: 28\n         line 25: 50\n@@ -209,70 +209,70 @@\n             0      69     1 textSegments   Ljava/util/List;\n            28      41     2 embeddings   Ljava/util/List;\n            50      19     3 tokenUsage   I\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0      69     1 textSegments   Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;\n            28      41     2 embeddings   Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;\n-    Signature: #44                          // (Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;)Ldev/langchain4j/model/output/Response<Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;>;\n+    Signature: #109                         // (Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;)Ldev/langchain4j/model/output/Response<Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;>;\n \n   private static int lambda$embedAll$1(dev.langchain4j.data.segment.TextSegment);\n     descriptor: (Ldev/langchain4j/data/segment/TextSegment;)I\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n-         1: invokevirtual #16                 // Method dev/langchain4j/data/segment/TextSegment.text:()Ljava/lang/String;\n-         4: invokevirtual #17                 // Method java/lang/String.length:()I\n+         1: invokevirtual #70                 // Method dev/langchain4j/data/segment/TextSegment.text:()Ljava/lang/String;\n+         4: invokevirtual #76                 // Method java/lang/String.length:()I\n          7: ireturn\n       LineNumberTable:\n         line 23: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       8     0    ts   Ldev/langchain4j/data/segment/TextSegment;\n \n   private static dev.langchain4j.data.embedding.Embedding lambda$embedAll$0(dev.langchain4j.data.segment.TextSegment);\n     descriptor: (Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/data/embedding/Embedding;\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=6, locals=1, args_size=1\n-         0: new           #18                 // class dev/langchain4j/data/embedding/Embedding\n+         0: new           #81                 // class dev/langchain4j/data/embedding/Embedding\n          3: dup\n          4: iconst_2\n          5: newarray       float\n          7: dup\n          8: iconst_0\n          9: aload_0\n-        10: invokevirtual #16                 // Method dev/langchain4j/data/segment/TextSegment.text:()Ljava/lang/String;\n-        13: invokevirtual #17                 // Method java/lang/String.length:()I\n+        10: invokevirtual #70                 // Method dev/langchain4j/data/segment/TextSegment.text:()Ljava/lang/String;\n+        13: invokevirtual #76                 // Method java/lang/String.length:()I\n         16: i2f\n         17: fastore\n         18: dup\n         19: iconst_1\n         20: aload_0\n-        21: invokevirtual #16                 // Method dev/langchain4j/data/segment/TextSegment.text:()Ljava/lang/String;\n-        24: invokevirtual #19                 // Method java/lang/String.hashCode:()I\n+        21: invokevirtual #70                 // Method dev/langchain4j/data/segment/TextSegment.text:()Ljava/lang/String;\n+        24: invokevirtual #83                 // Method java/lang/String.hashCode:()I\n         27: i2f\n         28: fastore\n-        29: invokespecial #20                 // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n+        29: invokespecial #86                 // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n         32: areturn\n       LineNumberTable:\n         line 20: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      33     0    ts   Ldev/langchain4j/data/segment/TextSegment;\n }\n SourceFile: \"EmbeddingModelTest.java\"\n-InnerClasses:\n-  public static #30= #21 of #89;          // EmbeddingModelImpl=class dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl of class dev/langchain4j/model/embedding/EmbeddingModelTest\n-  public static final #142= #141 of #144; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n BootstrapMethods:\n-  0: #56 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  0: #119 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #57 (Ljava/lang/Object;)Ljava/lang/Object;\n-      #58 REF_invokeStatic dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl.lambda$embedAll$0:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/data/embedding/Embedding;\n-      #59 (Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/data/embedding/Embedding;\n-  1: #56 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #126 (Ljava/lang/Object;)Ljava/lang/Object;\n+      #128 REF_invokeStatic dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl.lambda$embedAll$0:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/data/embedding/Embedding;\n+      #131 (Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/data/embedding/Embedding;\n+  1: #119 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #67 (Ljava/lang/Object;)I\n-      #68 REF_invokeStatic dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl.lambda$embedAll$1:(Ldev/langchain4j/data/segment/TextSegment;)I\n-      #69 (Ldev/langchain4j/data/segment/TextSegment;)I\n+      #132 (Ljava/lang/Object;)I\n+      #134 REF_invokeStatic dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl.lambda$embedAll$1:(Ldev/langchain4j/data/segment/TextSegment;)I\n+      #137 (Ldev/langchain4j/data/segment/TextSegment;)I\n+InnerClasses:\n+  public static #141= #89 of #139;        // EmbeddingModelImpl=class dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl of class dev/langchain4j/model/embedding/EmbeddingModelTest\n+  public static final #146= #142 of #144; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n"}]}, {"source1": "dev/langchain4j/model/embedding/EmbeddingModelTest.class", "source2": "dev/langchain4j/model/embedding/EmbeddingModelTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,184 +1,184 @@\n-  SHA-256 checksum 84cf92fd57264a778e524c1cf352ceb7b99e1fd71eaf42a319826f55fc6c2056\n+  SHA-256 checksum 47ce0ec60c3540a8d286b52ca1826a66c2dd8efbaf8d188285bf690d625160a8\n   Compiled from \"EmbeddingModelTest.java\"\n class dev.langchain4j.model.embedding.EmbeddingModelTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n   this_class: #31                         // dev/langchain4j/model/embedding/EmbeddingModelTest\n-  super_class: #32                        // java/lang/Object\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 4, attributes: 3\n Constant pool:\n-    #1 = Methodref          #32.#62       // java/lang/Object.\"<init>\":()V\n-    #2 = Class              #63           // dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl\n-    #3 = Methodref          #2.#62        // dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl.\"<init>\":()V\n-    #4 = String             #64           // abc def\n-    #5 = InterfaceMethodref #65.#66       // dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n-    #6 = Methodref          #67.#68       // dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n-    #7 = Class              #69           // dev/langchain4j/data/embedding/Embedding\n-    #8 = Methodref          #7.#70        // dev/langchain4j/data/embedding/Embedding.vector:()[F\n-    #9 = Methodref          #31.#71       // dev/langchain4j/model/embedding/EmbeddingModelTest.assertThat:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n-   #10 = Methodref          #72.#73       // java/lang/String.length:()I\n-   #11 = Methodref          #72.#74       // java/lang/String.hashCode:()I\n-   #12 = Methodref          #75.#76       // org/assertj/core/api/AbstractFloatArrayAssert.containsExactly:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n-   #13 = Methodref          #67.#77       // dev/langchain4j/model/output/Response.finishReason:()Ldev/langchain4j/model/output/FinishReason;\n-   #14 = Methodref          #31.#78       // dev/langchain4j/model/embedding/EmbeddingModelTest.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-   #15 = Fieldref           #79.#80       // dev/langchain4j/model/output/FinishReason.STOP:Ldev/langchain4j/model/output/FinishReason;\n-   #16 = Methodref          #81.#82       // org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #17 = Methodref          #67.#83       // dev/langchain4j/model/output/Response.tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n-   #18 = Methodref          #31.#84       // dev/langchain4j/model/embedding/EmbeddingModelTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #19 = Class              #85           // dev/langchain4j/model/output/TokenUsage\n-   #20 = Methodref          #86.#87       // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-   #21 = Methodref          #19.#88       // dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;)V\n-   #22 = Methodref          #89.#82       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #23 = Class              #90           // dev/langchain4j/model/embedding/EmbeddingModelTest$BrokenEmbeddingModelImpl\n-   #24 = Methodref          #23.#62       // dev/langchain4j/model/embedding/EmbeddingModelTest$BrokenEmbeddingModelImpl.\"<init>\":()V\n-   #25 = Class              #91           // java/lang/IllegalArgumentException\n-   #26 = Methodref          #31.#92       // dev/langchain4j/model/embedding/EmbeddingModelTest.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-   #27 = InvokeDynamic      #0:#97        // #0:call:(Ldev/langchain4j/model/embedding/EmbeddingModel;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #28 = Methodref          #98.#99       // org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #29 = String             #100          // Expected a single embedding, but got 2\n-   #30 = Methodref          #101.#102     // org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #31 = Class              #103          // dev/langchain4j/model/embedding/EmbeddingModelTest\n-   #32 = Class              #104          // java/lang/Object\n-   #33 = Class              #105          // org/assertj/core/api/WithAssertions\n-   #34 = Utf8               BrokenEmbeddingModelImpl\n-   #35 = Utf8               InnerClasses\n-   #36 = Utf8               EmbeddingModelImpl\n-   #37 = Utf8               <init>\n-   #38 = Utf8               ()V\n-   #39 = Utf8               Code\n-   #40 = Utf8               LineNumberTable\n-   #41 = Utf8               LocalVariableTable\n-   #42 = Utf8               this\n-   #43 = Utf8               Ldev/langchain4j/model/embedding/EmbeddingModelTest;\n-   #44 = Utf8               test\n-   #45 = Utf8               model\n-   #46 = Utf8               Ldev/langchain4j/model/embedding/EmbeddingModel;\n-   #47 = Utf8               abcDef\n-   #48 = Utf8               Ljava/lang/String;\n-   #49 = Utf8               response\n-   #50 = Utf8               Ldev/langchain4j/model/output/Response;\n-   #51 = Utf8               LocalVariableTypeTable\n-   #52 = Utf8               Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/embedding/Embedding;>;\n-   #53 = Utf8               RuntimeVisibleAnnotations\n-   #54 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #55 = Utf8               test_broken\n-   #56 = Utf8               lambda$test_broken$0\n-   #57 = Utf8               (Ldev/langchain4j/model/embedding/EmbeddingModel;)V\n-   #58 = Utf8               Exceptions\n-   #59 = Class              #106          // java/lang/Throwable\n-   #60 = Utf8               SourceFile\n-   #61 = Utf8               EmbeddingModelTest.java\n-   #62 = NameAndType        #37:#38       // \"<init>\":()V\n-   #63 = Utf8               dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl\n-   #64 = Utf8               abc def\n-   #65 = Class              #107          // dev/langchain4j/model/embedding/EmbeddingModel\n-   #66 = NameAndType        #108:#109     // embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n-   #67 = Class              #110          // dev/langchain4j/model/output/Response\n-   #68 = NameAndType        #111:#112     // content:()Ljava/lang/Object;\n-   #69 = Utf8               dev/langchain4j/data/embedding/Embedding\n-   #70 = NameAndType        #113:#114     // vector:()[F\n-   #71 = NameAndType        #115:#116     // assertThat:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n-   #72 = Class              #117          // java/lang/String\n-   #73 = NameAndType        #118:#119     // length:()I\n-   #74 = NameAndType        #120:#119     // hashCode:()I\n-   #75 = Class              #121          // org/assertj/core/api/AbstractFloatArrayAssert\n-   #76 = NameAndType        #122:#116     // containsExactly:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n-   #77 = NameAndType        #123:#124     // finishReason:()Ldev/langchain4j/model/output/FinishReason;\n-   #78 = NameAndType        #115:#125     // assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-   #79 = Class              #126          // dev/langchain4j/model/output/FinishReason\n-   #80 = NameAndType        #127:#128     // STOP:Ldev/langchain4j/model/output/FinishReason;\n-   #81 = Class              #129          // org/assertj/core/api/AbstractComparableAssert\n-   #82 = NameAndType        #130:#131     // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #83 = NameAndType        #132:#133     // tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n-   #84 = NameAndType        #115:#134     // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #85 = Utf8               dev/langchain4j/model/output/TokenUsage\n-   #86 = Class              #135          // java/lang/Integer\n-   #87 = NameAndType        #136:#137     // valueOf:(I)Ljava/lang/Integer;\n-   #88 = NameAndType        #37:#138      // \"<init>\":(Ljava/lang/Integer;)V\n-   #89 = Class              #139          // org/assertj/core/api/ObjectAssert\n-   #90 = Utf8               dev/langchain4j/model/embedding/EmbeddingModelTest$BrokenEmbeddingModelImpl\n-   #91 = Utf8               java/lang/IllegalArgumentException\n-   #92 = NameAndType        #140:#141     // assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-   #93 = Utf8               BootstrapMethods\n-   #94 = MethodHandle       6:#142        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-   #95 = MethodType         #38           //  ()V\n-   #96 = MethodHandle       6:#143        // REF_invokeStatic dev/langchain4j/model/embedding/EmbeddingModelTest.lambda$test_broken$0:(Ldev/langchain4j/model/embedding/EmbeddingModel;)V\n-   #97 = NameAndType        #144:#147     // call:(Ldev/langchain4j/model/embedding/EmbeddingModel;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #98 = Class              #148          // org/assertj/core/api/ThrowableTypeAssert\n-   #99 = NameAndType        #149:#150     // isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #100 = Utf8               Expected a single embedding, but got 2\n-  #101 = Class              #151          // org/assertj/core/api/ThrowableAssertAlternative\n-  #102 = NameAndType        #152:#153     // withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #103 = Utf8               dev/langchain4j/model/embedding/EmbeddingModelTest\n-  #104 = Utf8               java/lang/Object\n-  #105 = Utf8               org/assertj/core/api/WithAssertions\n-  #106 = Utf8               java/lang/Throwable\n-  #107 = Utf8               dev/langchain4j/model/embedding/EmbeddingModel\n-  #108 = Utf8               embed\n-  #109 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n-  #110 = Utf8               dev/langchain4j/model/output/Response\n-  #111 = Utf8               content\n-  #112 = Utf8               ()Ljava/lang/Object;\n-  #113 = Utf8               vector\n-  #114 = Utf8               ()[F\n-  #115 = Utf8               assertThat\n-  #116 = Utf8               ([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n-  #117 = Utf8               java/lang/String\n-  #118 = Utf8               length\n-  #119 = Utf8               ()I\n-  #120 = Utf8               hashCode\n-  #121 = Utf8               org/assertj/core/api/AbstractFloatArrayAssert\n-  #122 = Utf8               containsExactly\n-  #123 = Utf8               finishReason\n-  #124 = Utf8               ()Ldev/langchain4j/model/output/FinishReason;\n-  #125 = Utf8               (Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-  #126 = Utf8               dev/langchain4j/model/output/FinishReason\n-  #127 = Utf8               STOP\n-  #128 = Utf8               Ldev/langchain4j/model/output/FinishReason;\n-  #129 = Utf8               org/assertj/core/api/AbstractComparableAssert\n-  #130 = Utf8               isEqualTo\n-  #131 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #132 = Utf8               tokenUsage\n-  #133 = Utf8               ()Ldev/langchain4j/model/output/TokenUsage;\n-  #134 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #135 = Utf8               java/lang/Integer\n-  #136 = Utf8               valueOf\n-  #137 = Utf8               (I)Ljava/lang/Integer;\n-  #138 = Utf8               (Ljava/lang/Integer;)V\n-  #139 = Utf8               org/assertj/core/api/ObjectAssert\n-  #140 = Utf8               assertThatExceptionOfType\n-  #141 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-  #142 = Methodref          #154.#155     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #143 = Methodref          #31.#156      // dev/langchain4j/model/embedding/EmbeddingModelTest.lambda$test_broken$0:(Ldev/langchain4j/model/embedding/EmbeddingModel;)V\n-  #144 = Utf8               call\n-  #145 = Class              #158          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #146 = Utf8               ThrowingCallable\n-  #147 = Utf8               (Ldev/langchain4j/model/embedding/EmbeddingModel;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-  #148 = Utf8               org/assertj/core/api/ThrowableTypeAssert\n-  #149 = Utf8               isThrownBy\n-  #150 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #151 = Utf8               org/assertj/core/api/ThrowableAssertAlternative\n-  #152 = Utf8               withMessageContaining\n-  #153 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #154 = Class              #159          // java/lang/invoke/LambdaMetafactory\n-  #155 = NameAndType        #160:#163     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #156 = NameAndType        #56:#57       // lambda$test_broken$0:(Ldev/langchain4j/model/embedding/EmbeddingModel;)V\n-  #157 = Class              #164          // org/assertj/core/api/ThrowableAssert\n-  #158 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #159 = Utf8               java/lang/invoke/LambdaMetafactory\n-  #160 = Utf8               metafactory\n-  #161 = Class              #166          // java/lang/invoke/MethodHandles$Lookup\n-  #162 = Utf8               Lookup\n-  #163 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #164 = Utf8               org/assertj/core/api/ThrowableAssert\n-  #165 = Class              #167          // java/lang/invoke/MethodHandles\n-  #166 = Utf8               java/lang/invoke/MethodHandles$Lookup\n-  #167 = Utf8               java/lang/invoke/MethodHandles\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Class              #8            // dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl\n+    #8 = Utf8               dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl\n+    #9 = Methodref          #7.#3         // dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl.\"<init>\":()V\n+   #10 = String             #11           // abc def\n+   #11 = Utf8               abc def\n+   #12 = InterfaceMethodref #13.#14       // dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+   #13 = Class              #15           // dev/langchain4j/model/embedding/EmbeddingModel\n+   #14 = NameAndType        #16:#17       // embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+   #15 = Utf8               dev/langchain4j/model/embedding/EmbeddingModel\n+   #16 = Utf8               embed\n+   #17 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+   #18 = Methodref          #19.#20       // dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n+   #19 = Class              #21           // dev/langchain4j/model/output/Response\n+   #20 = NameAndType        #22:#23       // content:()Ljava/lang/Object;\n+   #21 = Utf8               dev/langchain4j/model/output/Response\n+   #22 = Utf8               content\n+   #23 = Utf8               ()Ljava/lang/Object;\n+   #24 = Class              #25           // dev/langchain4j/data/embedding/Embedding\n+   #25 = Utf8               dev/langchain4j/data/embedding/Embedding\n+   #26 = Methodref          #24.#27       // dev/langchain4j/data/embedding/Embedding.vector:()[F\n+   #27 = NameAndType        #28:#29       // vector:()[F\n+   #28 = Utf8               vector\n+   #29 = Utf8               ()[F\n+   #30 = Methodref          #31.#32       // dev/langchain4j/model/embedding/EmbeddingModelTest.assertThat:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n+   #31 = Class              #33           // dev/langchain4j/model/embedding/EmbeddingModelTest\n+   #32 = NameAndType        #34:#35       // assertThat:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n+   #33 = Utf8               dev/langchain4j/model/embedding/EmbeddingModelTest\n+   #34 = Utf8               assertThat\n+   #35 = Utf8               ([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n+   #36 = Methodref          #37.#38       // java/lang/String.length:()I\n+   #37 = Class              #39           // java/lang/String\n+   #38 = NameAndType        #40:#41       // length:()I\n+   #39 = Utf8               java/lang/String\n+   #40 = Utf8               length\n+   #41 = Utf8               ()I\n+   #42 = Methodref          #37.#43       // java/lang/String.hashCode:()I\n+   #43 = NameAndType        #44:#41       // hashCode:()I\n+   #44 = Utf8               hashCode\n+   #45 = Methodref          #46.#47       // org/assertj/core/api/AbstractFloatArrayAssert.containsExactly:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n+   #46 = Class              #48           // org/assertj/core/api/AbstractFloatArrayAssert\n+   #47 = NameAndType        #49:#35       // containsExactly:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n+   #48 = Utf8               org/assertj/core/api/AbstractFloatArrayAssert\n+   #49 = Utf8               containsExactly\n+   #50 = Methodref          #19.#51       // dev/langchain4j/model/output/Response.finishReason:()Ldev/langchain4j/model/output/FinishReason;\n+   #51 = NameAndType        #52:#53       // finishReason:()Ldev/langchain4j/model/output/FinishReason;\n+   #52 = Utf8               finishReason\n+   #53 = Utf8               ()Ldev/langchain4j/model/output/FinishReason;\n+   #54 = Methodref          #31.#55       // dev/langchain4j/model/embedding/EmbeddingModelTest.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+   #55 = NameAndType        #34:#56       // assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+   #56 = Utf8               (Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+   #57 = Fieldref           #58.#59       // dev/langchain4j/model/output/FinishReason.STOP:Ldev/langchain4j/model/output/FinishReason;\n+   #58 = Class              #60           // dev/langchain4j/model/output/FinishReason\n+   #59 = NameAndType        #61:#62       // STOP:Ldev/langchain4j/model/output/FinishReason;\n+   #60 = Utf8               dev/langchain4j/model/output/FinishReason\n+   #61 = Utf8               STOP\n+   #62 = Utf8               Ldev/langchain4j/model/output/FinishReason;\n+   #63 = Methodref          #64.#65       // org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #64 = Class              #66           // org/assertj/core/api/AbstractComparableAssert\n+   #65 = NameAndType        #67:#68       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #66 = Utf8               org/assertj/core/api/AbstractComparableAssert\n+   #67 = Utf8               isEqualTo\n+   #68 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #69 = Methodref          #19.#70       // dev/langchain4j/model/output/Response.tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n+   #70 = NameAndType        #71:#72       // tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n+   #71 = Utf8               tokenUsage\n+   #72 = Utf8               ()Ldev/langchain4j/model/output/TokenUsage;\n+   #73 = Methodref          #31.#74       // dev/langchain4j/model/embedding/EmbeddingModelTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #74 = NameAndType        #34:#75       // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #75 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #76 = Class              #77           // dev/langchain4j/model/output/TokenUsage\n+   #77 = Utf8               dev/langchain4j/model/output/TokenUsage\n+   #78 = Methodref          #79.#80       // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+   #79 = Class              #81           // java/lang/Integer\n+   #80 = NameAndType        #82:#83       // valueOf:(I)Ljava/lang/Integer;\n+   #81 = Utf8               java/lang/Integer\n+   #82 = Utf8               valueOf\n+   #83 = Utf8               (I)Ljava/lang/Integer;\n+   #84 = Methodref          #76.#85       // dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;)V\n+   #85 = NameAndType        #5:#86        // \"<init>\":(Ljava/lang/Integer;)V\n+   #86 = Utf8               (Ljava/lang/Integer;)V\n+   #87 = Methodref          #88.#65       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #88 = Class              #89           // org/assertj/core/api/ObjectAssert\n+   #89 = Utf8               org/assertj/core/api/ObjectAssert\n+   #90 = Class              #91           // dev/langchain4j/model/embedding/EmbeddingModelTest$BrokenEmbeddingModelImpl\n+   #91 = Utf8               dev/langchain4j/model/embedding/EmbeddingModelTest$BrokenEmbeddingModelImpl\n+   #92 = Methodref          #90.#3        // dev/langchain4j/model/embedding/EmbeddingModelTest$BrokenEmbeddingModelImpl.\"<init>\":()V\n+   #93 = Class              #94           // java/lang/IllegalArgumentException\n+   #94 = Utf8               java/lang/IllegalArgumentException\n+   #95 = Methodref          #31.#96       // dev/langchain4j/model/embedding/EmbeddingModelTest.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #96 = NameAndType        #97:#98       // assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #97 = Utf8               assertThatExceptionOfType\n+   #98 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #99 = InvokeDynamic      #0:#100       // #0:call:(Ldev/langchain4j/model/embedding/EmbeddingModel;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+  #100 = NameAndType        #101:#102     // call:(Ldev/langchain4j/model/embedding/EmbeddingModel;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+  #101 = Utf8               call\n+  #102 = Utf8               (Ldev/langchain4j/model/embedding/EmbeddingModel;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+  #103 = Methodref          #104.#105     // org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+  #104 = Class              #106          // org/assertj/core/api/ThrowableTypeAssert\n+  #105 = NameAndType        #107:#108     // isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+  #106 = Utf8               org/assertj/core/api/ThrowableTypeAssert\n+  #107 = Utf8               isThrownBy\n+  #108 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+  #109 = String             #110          // Expected a single embedding, but got 2\n+  #110 = Utf8               Expected a single embedding, but got 2\n+  #111 = Methodref          #112.#113     // org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+  #112 = Class              #114          // org/assertj/core/api/ThrowableAssertAlternative\n+  #113 = NameAndType        #115:#116     // withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+  #114 = Utf8               org/assertj/core/api/ThrowableAssertAlternative\n+  #115 = Utf8               withMessageContaining\n+  #116 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+  #117 = Class              #118          // org/assertj/core/api/WithAssertions\n+  #118 = Utf8               org/assertj/core/api/WithAssertions\n+  #119 = Utf8               Code\n+  #120 = Utf8               LineNumberTable\n+  #121 = Utf8               LocalVariableTable\n+  #122 = Utf8               this\n+  #123 = Utf8               Ldev/langchain4j/model/embedding/EmbeddingModelTest;\n+  #124 = Utf8               test\n+  #125 = Utf8               model\n+  #126 = Utf8               Ldev/langchain4j/model/embedding/EmbeddingModel;\n+  #127 = Utf8               abcDef\n+  #128 = Utf8               Ljava/lang/String;\n+  #129 = Utf8               response\n+  #130 = Utf8               Ldev/langchain4j/model/output/Response;\n+  #131 = Utf8               LocalVariableTypeTable\n+  #132 = Utf8               Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/embedding/Embedding;>;\n+  #133 = Utf8               RuntimeVisibleAnnotations\n+  #134 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #135 = Utf8               test_broken\n+  #136 = Utf8               lambda$test_broken$0\n+  #137 = Utf8               (Ldev/langchain4j/model/embedding/EmbeddingModel;)V\n+  #138 = Utf8               Exceptions\n+  #139 = Class              #140          // java/lang/Throwable\n+  #140 = Utf8               java/lang/Throwable\n+  #141 = Utf8               SourceFile\n+  #142 = Utf8               EmbeddingModelTest.java\n+  #143 = Utf8               BootstrapMethods\n+  #144 = MethodHandle       6:#145        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #145 = Methodref          #146.#147     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #146 = Class              #148          // java/lang/invoke/LambdaMetafactory\n+  #147 = NameAndType        #149:#150     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #148 = Utf8               java/lang/invoke/LambdaMetafactory\n+  #149 = Utf8               metafactory\n+  #150 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #151 = MethodType         #6            //  ()V\n+  #152 = MethodHandle       6:#153        // REF_invokeStatic dev/langchain4j/model/embedding/EmbeddingModelTest.lambda$test_broken$0:(Ldev/langchain4j/model/embedding/EmbeddingModel;)V\n+  #153 = Methodref          #31.#154      // dev/langchain4j/model/embedding/EmbeddingModelTest.lambda$test_broken$0:(Ldev/langchain4j/model/embedding/EmbeddingModel;)V\n+  #154 = NameAndType        #136:#137     // lambda$test_broken$0:(Ldev/langchain4j/model/embedding/EmbeddingModel;)V\n+  #155 = Utf8               InnerClasses\n+  #156 = Utf8               EmbeddingModelImpl\n+  #157 = Utf8               BrokenEmbeddingModelImpl\n+  #158 = Class              #159          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n+  #159 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n+  #160 = Class              #161          // org/assertj/core/api/ThrowableAssert\n+  #161 = Utf8               org/assertj/core/api/ThrowableAssert\n+  #162 = Utf8               ThrowingCallable\n+  #163 = Class              #164          // java/lang/invoke/MethodHandles$Lookup\n+  #164 = Utf8               java/lang/invoke/MethodHandles$Lookup\n+  #165 = Class              #166          // java/lang/invoke/MethodHandles\n+  #166 = Utf8               java/lang/invoke/MethodHandles\n+  #167 = Utf8               Lookup\n {\n   dev.langchain4j.model.embedding.EmbeddingModelTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -191,64 +191,64 @@\n             0       5     0  this   Ldev/langchain4j/model/embedding/EmbeddingModelTest;\n \n   public void test();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=5, locals=4, args_size=1\n-         0: new           #2                  // class dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl\n+         0: new           #7                  // class dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl.\"<init>\":()V\n          7: astore_1\n-         8: ldc           #4                  // String abc def\n+         8: ldc           #10                 // String abc def\n         10: astore_2\n         11: aload_1\n         12: aload_2\n-        13: invokeinterface #5,  2            // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+        13: invokeinterface #12,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n         18: astore_3\n         19: aload_0\n         20: aload_3\n-        21: invokevirtual #6                  // Method dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n-        24: checkcast     #7                  // class dev/langchain4j/data/embedding/Embedding\n-        27: invokevirtual #8                  // Method dev/langchain4j/data/embedding/Embedding.vector:()[F\n-        30: invokevirtual #9                  // Method assertThat:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n+        21: invokevirtual #18                 // Method dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n+        24: checkcast     #24                 // class dev/langchain4j/data/embedding/Embedding\n+        27: invokevirtual #26                 // Method dev/langchain4j/data/embedding/Embedding.vector:()[F\n+        30: invokevirtual #30                 // Method assertThat:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n         33: iconst_2\n         34: newarray       float\n         36: dup\n         37: iconst_0\n         38: aload_2\n-        39: invokevirtual #10                 // Method java/lang/String.length:()I\n+        39: invokevirtual #36                 // Method java/lang/String.length:()I\n         42: i2f\n         43: fastore\n         44: dup\n         45: iconst_1\n         46: aload_2\n-        47: invokevirtual #11                 // Method java/lang/String.hashCode:()I\n+        47: invokevirtual #42                 // Method java/lang/String.hashCode:()I\n         50: i2f\n         51: fastore\n-        52: invokevirtual #12                 // Method org/assertj/core/api/AbstractFloatArrayAssert.containsExactly:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n+        52: invokevirtual #45                 // Method org/assertj/core/api/AbstractFloatArrayAssert.containsExactly:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n         55: pop\n         56: aload_0\n         57: aload_3\n-        58: invokevirtual #13                 // Method dev/langchain4j/model/output/Response.finishReason:()Ldev/langchain4j/model/output/FinishReason;\n-        61: invokevirtual #14                 // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-        64: getstatic     #15                 // Field dev/langchain4j/model/output/FinishReason.STOP:Ldev/langchain4j/model/output/FinishReason;\n-        67: invokevirtual #16                 // Method org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        58: invokevirtual #50                 // Method dev/langchain4j/model/output/Response.finishReason:()Ldev/langchain4j/model/output/FinishReason;\n+        61: invokevirtual #54                 // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+        64: getstatic     #57                 // Field dev/langchain4j/model/output/FinishReason.STOP:Ldev/langchain4j/model/output/FinishReason;\n+        67: invokevirtual #63                 // Method org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         70: pop\n         71: aload_0\n         72: aload_3\n-        73: invokevirtual #17                 // Method dev/langchain4j/model/output/Response.tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n-        76: invokevirtual #18                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        79: new           #19                 // class dev/langchain4j/model/output/TokenUsage\n+        73: invokevirtual #69                 // Method dev/langchain4j/model/output/Response.tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n+        76: invokevirtual #73                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        79: new           #76                 // class dev/langchain4j/model/output/TokenUsage\n         82: dup\n         83: aload_2\n-        84: invokevirtual #10                 // Method java/lang/String.length:()I\n-        87: invokestatic  #20                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-        90: invokespecial #21                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;)V\n-        93: invokevirtual #22                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        84: invokevirtual #36                 // Method java/lang/String.length:()I\n+        87: invokestatic  #78                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        90: invokespecial #84                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;)V\n+        93: invokevirtual #87                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         96: pop\n         97: return\n       LineNumberTable:\n         line 42: 0\n         line 44: 8\n         line 45: 11\n         line 47: 19\n@@ -261,73 +261,73 @@\n             8      90     1 model   Ldev/langchain4j/model/embedding/EmbeddingModel;\n            11      87     2 abcDef   Ljava/lang/String;\n            19      79     3 response   Ldev/langchain4j/model/output/Response;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            19      79     3 response   Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/embedding/Embedding;>;\n     RuntimeVisibleAnnotations:\n-      0: #54()\n+      0: #134()\n         org.junit.jupiter.api.Test\n \n   public void test_broken();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=1\n-         0: new           #23                 // class dev/langchain4j/model/embedding/EmbeddingModelTest$BrokenEmbeddingModelImpl\n+         0: new           #90                 // class dev/langchain4j/model/embedding/EmbeddingModelTest$BrokenEmbeddingModelImpl\n          3: dup\n-         4: invokespecial #24                 // Method dev/langchain4j/model/embedding/EmbeddingModelTest$BrokenEmbeddingModelImpl.\"<init>\":()V\n+         4: invokespecial #92                 // Method dev/langchain4j/model/embedding/EmbeddingModelTest$BrokenEmbeddingModelImpl.\"<init>\":()V\n          7: astore_1\n          8: aload_0\n-         9: ldc           #25                 // class java/lang/IllegalArgumentException\n-        11: invokevirtual #26                 // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+         9: ldc           #93                 // class java/lang/IllegalArgumentException\n+        11: invokevirtual #95                 // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n         14: aload_1\n-        15: invokedynamic #27,  0             // InvokeDynamic #0:call:(Ldev/langchain4j/model/embedding/EmbeddingModel;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-        20: invokevirtual #28                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-        23: ldc           #29                 // String Expected a single embedding, but got 2\n-        25: invokevirtual #30                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        15: invokedynamic #99,  0             // InvokeDynamic #0:call:(Ldev/langchain4j/model/embedding/EmbeddingModel;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+        20: invokevirtual #103                // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        23: ldc           #109                // String Expected a single embedding, but got 2\n+        25: invokevirtual #111                // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n         28: pop\n         29: return\n       LineNumberTable:\n         line 54: 0\n         line 56: 8\n         line 57: 20\n         line 58: 25\n         line 59: 29\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      30     0  this   Ldev/langchain4j/model/embedding/EmbeddingModelTest;\n             8      22     1 model   Ldev/langchain4j/model/embedding/EmbeddingModel;\n     RuntimeVisibleAnnotations:\n-      0: #54()\n+      0: #134()\n         org.junit.jupiter.api.Test\n \n   private static void lambda$test_broken$0(dev.langchain4j.model.embedding.EmbeddingModel) throws java.lang.Throwable;\n     descriptor: (Ldev/langchain4j/model/embedding/EmbeddingModel;)V\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=2, locals=1, args_size=1\n          0: aload_0\n-         1: ldc           #4                  // String abc def\n-         3: invokeinterface #5,  2            // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+         1: ldc           #10                 // String abc def\n+         3: invokeinterface #12,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n          8: pop\n          9: return\n       LineNumberTable:\n         line 57: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      10     0 model   Ldev/langchain4j/model/embedding/EmbeddingModel;\n     Exceptions:\n       throws java.lang.Throwable\n }\n SourceFile: \"EmbeddingModelTest.java\"\n-InnerClasses:\n-  public static #34= #23 of #31;          // BrokenEmbeddingModelImpl=class dev/langchain4j/model/embedding/EmbeddingModelTest$BrokenEmbeddingModelImpl of class dev/langchain4j/model/embedding/EmbeddingModelTest\n-  public static #36= #2 of #31;           // EmbeddingModelImpl=class dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl of class dev/langchain4j/model/embedding/EmbeddingModelTest\n-  public static #146= #145 of #157;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n-  public static final #162= #161 of #165; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n BootstrapMethods:\n-  0: #94 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  0: #144 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #95 ()V\n-      #96 REF_invokeStatic dev/langchain4j/model/embedding/EmbeddingModelTest.lambda$test_broken$0:(Ldev/langchain4j/model/embedding/EmbeddingModel;)V\n-      #95 ()V\n+      #151 ()V\n+      #152 REF_invokeStatic dev/langchain4j/model/embedding/EmbeddingModelTest.lambda$test_broken$0:(Ldev/langchain4j/model/embedding/EmbeddingModel;)V\n+      #151 ()V\n+InnerClasses:\n+  public static #156= #7 of #31;          // EmbeddingModelImpl=class dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl of class dev/langchain4j/model/embedding/EmbeddingModelTest\n+  public static #157= #90 of #31;         // BrokenEmbeddingModelImpl=class dev/langchain4j/model/embedding/EmbeddingModelTest$BrokenEmbeddingModelImpl of class dev/langchain4j/model/embedding/EmbeddingModelTest\n+  public static #162= #158 of #160;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n+  public static final #167= #163 of #165; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n"}]}, {"source1": "dev/langchain4j/model/embedding/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator.class", "source2": "dev/langchain4j/model/embedding/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,50 +1,50 @@\n-  SHA-256 checksum 01b4df510b17c2b0d86089ef058b21ae4b503940bf4ea57c2f9f4c4f840c032a\n+  SHA-256 checksum ff32609e3eb70c879c83a83d6c297b6c436d98cab242ab77cb60293d611baf3e\n   Compiled from \"TokenCountEstimatorTest.java\"\n public class dev.langchain4j.model.embedding.TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator implements dev.langchain4j.model.embedding.TokenCountEstimator\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #4                          // dev/langchain4j/model/embedding/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n-  super_class: #5                         // java/lang/Object\n+  this_class: #15                         // dev/langchain4j/model/embedding/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 2\n Constant pool:\n-   #1 = Methodref          #5.#22         // java/lang/Object.\"<init>\":()V\n-   #2 = String             #23            // \\\\s+\n-   #3 = Methodref          #24.#25        // java/lang/String.split:(Ljava/lang/String;)[Ljava/lang/String;\n-   #4 = Class              #27            // dev/langchain4j/model/embedding/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n-   #5 = Class              #28            // java/lang/Object\n-   #6 = Class              #29            // dev/langchain4j/model/embedding/TokenCountEstimator\n-   #7 = Utf8               <init>\n-   #8 = Utf8               ()V\n-   #9 = Utf8               Code\n-  #10 = Utf8               LineNumberTable\n-  #11 = Utf8               LocalVariableTable\n-  #12 = Utf8               this\n-  #13 = Utf8               WhitespaceSplitTokenCountEstimator\n-  #14 = Utf8               InnerClasses\n-  #15 = Utf8               Ldev/langchain4j/model/embedding/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator;\n-  #16 = Utf8               estimateTokenCount\n-  #17 = Utf8               (Ljava/lang/String;)I\n-  #18 = Utf8               text\n-  #19 = Utf8               Ljava/lang/String;\n-  #20 = Utf8               SourceFile\n-  #21 = Utf8               TokenCountEstimatorTest.java\n-  #22 = NameAndType        #7:#8          // \"<init>\":()V\n-  #23 = Utf8               \\\\s+\n-  #24 = Class              #30            // java/lang/String\n-  #25 = NameAndType        #31:#32        // split:(Ljava/lang/String;)[Ljava/lang/String;\n-  #26 = Class              #33            // dev/langchain4j/model/embedding/TokenCountEstimatorTest\n-  #27 = Utf8               dev/langchain4j/model/embedding/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n-  #28 = Utf8               java/lang/Object\n-  #29 = Utf8               dev/langchain4j/model/embedding/TokenCountEstimator\n-  #30 = Utf8               java/lang/String\n-  #31 = Utf8               split\n-  #32 = Utf8               (Ljava/lang/String;)[Ljava/lang/String;\n-  #33 = Utf8               dev/langchain4j/model/embedding/TokenCountEstimatorTest\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = String             #8             // \\\\s+\n+   #8 = Utf8               \\\\s+\n+   #9 = Methodref          #10.#11        // java/lang/String.split:(Ljava/lang/String;)[Ljava/lang/String;\n+  #10 = Class              #12            // java/lang/String\n+  #11 = NameAndType        #13:#14        // split:(Ljava/lang/String;)[Ljava/lang/String;\n+  #12 = Utf8               java/lang/String\n+  #13 = Utf8               split\n+  #14 = Utf8               (Ljava/lang/String;)[Ljava/lang/String;\n+  #15 = Class              #16            // dev/langchain4j/model/embedding/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n+  #16 = Utf8               dev/langchain4j/model/embedding/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n+  #17 = Class              #18            // dev/langchain4j/model/embedding/TokenCountEstimator\n+  #18 = Utf8               dev/langchain4j/model/embedding/TokenCountEstimator\n+  #19 = Utf8               Code\n+  #20 = Utf8               LineNumberTable\n+  #21 = Utf8               LocalVariableTable\n+  #22 = Utf8               this\n+  #23 = Utf8               Ldev/langchain4j/model/embedding/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator;\n+  #24 = Utf8               estimateTokenCount\n+  #25 = Utf8               (Ljava/lang/String;)I\n+  #26 = Utf8               text\n+  #27 = Utf8               Ljava/lang/String;\n+  #28 = Utf8               SourceFile\n+  #29 = Utf8               TokenCountEstimatorTest.java\n+  #30 = Utf8               InnerClasses\n+  #31 = Class              #32            // dev/langchain4j/model/embedding/TokenCountEstimatorTest\n+  #32 = Utf8               dev/langchain4j/model/embedding/TokenCountEstimatorTest\n+  #33 = Utf8               WhitespaceSplitTokenCountEstimator\n {\n   public dev.langchain4j.model.embedding.TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -58,21 +58,21 @@\n \n   public int estimateTokenCount(java.lang.String);\n     descriptor: (Ljava/lang/String;)I\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_1\n-         1: ldc           #2                  // String \\\\s+\n-         3: invokevirtual #3                  // Method java/lang/String.split:(Ljava/lang/String;)[Ljava/lang/String;\n+         1: ldc           #7                  // String \\\\s+\n+         3: invokevirtual #9                  // Method java/lang/String.split:(Ljava/lang/String;)[Ljava/lang/String;\n          6: arraylength\n          7: ireturn\n       LineNumberTable:\n         line 15: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       8     0  this   Ldev/langchain4j/model/embedding/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator;\n             0       8     1  text   Ljava/lang/String;\n }\n SourceFile: \"TokenCountEstimatorTest.java\"\n InnerClasses:\n-  public static #13= #4 of #26;           // WhitespaceSplitTokenCountEstimator=class dev/langchain4j/model/embedding/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator of class dev/langchain4j/model/embedding/TokenCountEstimatorTest\n+  public static #33= #15 of #31;          // WhitespaceSplitTokenCountEstimator=class dev/langchain4j/model/embedding/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator of class dev/langchain4j/model/embedding/TokenCountEstimatorTest\n"}]}, {"source1": "dev/langchain4j/model/embedding/TokenCountEstimatorTest.class", "source2": "dev/langchain4j/model/embedding/TokenCountEstimatorTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,90 +1,90 @@\n-  SHA-256 checksum d944ef418b33e2b7dcf8673850f20797fa83ecf73c1217dbef3402803a9a1fa7\n+  SHA-256 checksum ab0c2097a23abb450f66a862a42936aca13c8541f309ee99263029b6bf037120\n   Compiled from \"TokenCountEstimatorTest.java\"\n class dev.langchain4j.model.embedding.TokenCountEstimatorTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #16                         // dev/langchain4j/model/embedding/TokenCountEstimatorTest\n-  super_class: #17                        // java/lang/Object\n+  this_class: #19                         // dev/langchain4j/model/embedding/TokenCountEstimatorTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 2\n Constant pool:\n-   #1 = Methodref          #17.#39        // java/lang/Object.\"<init>\":()V\n-   #2 = Class              #40            // dev/langchain4j/model/embedding/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n-   #3 = Methodref          #2.#39         // dev/langchain4j/model/embedding/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator.\"<init>\":()V\n-   #4 = String             #41            // foo bar, baz\n-   #5 = InterfaceMethodref #42.#43        // dev/langchain4j/model/embedding/TokenCountEstimator.estimateTokenCount:(Ljava/lang/String;)I\n-   #6 = Methodref          #16.#44        // dev/langchain4j/model/embedding/TokenCountEstimatorTest.assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n-   #7 = Methodref          #45.#46        // org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n-   #8 = Methodref          #47.#48        // dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-   #9 = InterfaceMethodref #42.#49        // dev/langchain4j/model/embedding/TokenCountEstimator.estimateTokenCount:(Ldev/langchain4j/data/segment/TextSegment;)I\n-  #10 = Class              #50            // java/util/ArrayList\n-  #11 = Methodref          #10.#39        // java/util/ArrayList.\"<init>\":()V\n-  #12 = String             #51            // Hello, world!\n-  #13 = InterfaceMethodref #52.#53        // java/util/List.add:(Ljava/lang/Object;)Z\n-  #14 = String             #54            // How are you?\n-  #15 = InterfaceMethodref #42.#55        // dev/langchain4j/model/embedding/TokenCountEstimator.estimateTokenCount:(Ljava/util/List;)I\n-  #16 = Class              #56            // dev/langchain4j/model/embedding/TokenCountEstimatorTest\n-  #17 = Class              #57            // java/lang/Object\n-  #18 = Class              #58            // org/assertj/core/api/WithAssertions\n-  #19 = Utf8               WhitespaceSplitTokenCountEstimator\n-  #20 = Utf8               InnerClasses\n-  #21 = Utf8               <init>\n-  #22 = Utf8               ()V\n-  #23 = Utf8               Code\n-  #24 = Utf8               LineNumberTable\n-  #25 = Utf8               LocalVariableTable\n-  #26 = Utf8               this\n-  #27 = Utf8               Ldev/langchain4j/model/embedding/TokenCountEstimatorTest;\n-  #28 = Utf8               test\n-  #29 = Utf8               segments\n-  #30 = Utf8               Ljava/util/List;\n-  #31 = Utf8               estimator\n-  #32 = Utf8               Ldev/langchain4j/model/embedding/TokenCountEstimator;\n-  #33 = Utf8               LocalVariableTypeTable\n-  #34 = Utf8               Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;\n-  #35 = Utf8               RuntimeVisibleAnnotations\n-  #36 = Utf8               Lorg/junit/jupiter/api/Test;\n-  #37 = Utf8               SourceFile\n-  #38 = Utf8               TokenCountEstimatorTest.java\n-  #39 = NameAndType        #21:#22        // \"<init>\":()V\n-  #40 = Utf8               dev/langchain4j/model/embedding/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n-  #41 = Utf8               foo bar, baz\n-  #42 = Class              #59            // dev/langchain4j/model/embedding/TokenCountEstimator\n-  #43 = NameAndType        #60:#61        // estimateTokenCount:(Ljava/lang/String;)I\n-  #44 = NameAndType        #62:#63        // assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n-  #45 = Class              #64            // org/assertj/core/api/AbstractIntegerAssert\n-  #46 = NameAndType        #65:#63        // isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n-  #47 = Class              #66            // dev/langchain4j/data/segment/TextSegment\n-  #48 = NameAndType        #67:#68        // textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #49 = NameAndType        #60:#69        // estimateTokenCount:(Ldev/langchain4j/data/segment/TextSegment;)I\n-  #50 = Utf8               java/util/ArrayList\n-  #51 = Utf8               Hello, world!\n-  #52 = Class              #70            // java/util/List\n-  #53 = NameAndType        #71:#72        // add:(Ljava/lang/Object;)Z\n-  #54 = Utf8               How are you?\n-  #55 = NameAndType        #60:#73        // estimateTokenCount:(Ljava/util/List;)I\n-  #56 = Utf8               dev/langchain4j/model/embedding/TokenCountEstimatorTest\n-  #57 = Utf8               java/lang/Object\n-  #58 = Utf8               org/assertj/core/api/WithAssertions\n-  #59 = Utf8               dev/langchain4j/model/embedding/TokenCountEstimator\n-  #60 = Utf8               estimateTokenCount\n-  #61 = Utf8               (Ljava/lang/String;)I\n-  #62 = Utf8               assertThat\n-  #63 = Utf8               (I)Lorg/assertj/core/api/AbstractIntegerAssert;\n-  #64 = Utf8               org/assertj/core/api/AbstractIntegerAssert\n-  #65 = Utf8               isEqualTo\n-  #66 = Utf8               dev/langchain4j/data/segment/TextSegment\n-  #67 = Utf8               textSegment\n-  #68 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #69 = Utf8               (Ldev/langchain4j/data/segment/TextSegment;)I\n-  #70 = Utf8               java/util/List\n-  #71 = Utf8               add\n-  #72 = Utf8               (Ljava/lang/Object;)Z\n-  #73 = Utf8               (Ljava/util/List;)I\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Class              #8             // dev/langchain4j/model/embedding/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n+   #8 = Utf8               dev/langchain4j/model/embedding/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n+   #9 = Methodref          #7.#3          // dev/langchain4j/model/embedding/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator.\"<init>\":()V\n+  #10 = String             #11            // foo bar, baz\n+  #11 = Utf8               foo bar, baz\n+  #12 = InterfaceMethodref #13.#14        // dev/langchain4j/model/embedding/TokenCountEstimator.estimateTokenCount:(Ljava/lang/String;)I\n+  #13 = Class              #15            // dev/langchain4j/model/embedding/TokenCountEstimator\n+  #14 = NameAndType        #16:#17        // estimateTokenCount:(Ljava/lang/String;)I\n+  #15 = Utf8               dev/langchain4j/model/embedding/TokenCountEstimator\n+  #16 = Utf8               estimateTokenCount\n+  #17 = Utf8               (Ljava/lang/String;)I\n+  #18 = Methodref          #19.#20        // dev/langchain4j/model/embedding/TokenCountEstimatorTest.assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+  #19 = Class              #21            // dev/langchain4j/model/embedding/TokenCountEstimatorTest\n+  #20 = NameAndType        #22:#23        // assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+  #21 = Utf8               dev/langchain4j/model/embedding/TokenCountEstimatorTest\n+  #22 = Utf8               assertThat\n+  #23 = Utf8               (I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+  #24 = Methodref          #25.#26        // org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+  #25 = Class              #27            // org/assertj/core/api/AbstractIntegerAssert\n+  #26 = NameAndType        #28:#23        // isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+  #27 = Utf8               org/assertj/core/api/AbstractIntegerAssert\n+  #28 = Utf8               isEqualTo\n+  #29 = Methodref          #30.#31        // dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #30 = Class              #32            // dev/langchain4j/data/segment/TextSegment\n+  #31 = NameAndType        #33:#34        // textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #32 = Utf8               dev/langchain4j/data/segment/TextSegment\n+  #33 = Utf8               textSegment\n+  #34 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #35 = InterfaceMethodref #13.#36        // dev/langchain4j/model/embedding/TokenCountEstimator.estimateTokenCount:(Ldev/langchain4j/data/segment/TextSegment;)I\n+  #36 = NameAndType        #16:#37        // estimateTokenCount:(Ldev/langchain4j/data/segment/TextSegment;)I\n+  #37 = Utf8               (Ldev/langchain4j/data/segment/TextSegment;)I\n+  #38 = Class              #39            // java/util/ArrayList\n+  #39 = Utf8               java/util/ArrayList\n+  #40 = Methodref          #38.#3         // java/util/ArrayList.\"<init>\":()V\n+  #41 = String             #42            // Hello, world!\n+  #42 = Utf8               Hello, world!\n+  #43 = InterfaceMethodref #44.#45        // java/util/List.add:(Ljava/lang/Object;)Z\n+  #44 = Class              #46            // java/util/List\n+  #45 = NameAndType        #47:#48        // add:(Ljava/lang/Object;)Z\n+  #46 = Utf8               java/util/List\n+  #47 = Utf8               add\n+  #48 = Utf8               (Ljava/lang/Object;)Z\n+  #49 = String             #50            // How are you?\n+  #50 = Utf8               How are you?\n+  #51 = InterfaceMethodref #13.#52        // dev/langchain4j/model/embedding/TokenCountEstimator.estimateTokenCount:(Ljava/util/List;)I\n+  #52 = NameAndType        #16:#53        // estimateTokenCount:(Ljava/util/List;)I\n+  #53 = Utf8               (Ljava/util/List;)I\n+  #54 = Class              #55            // org/assertj/core/api/WithAssertions\n+  #55 = Utf8               org/assertj/core/api/WithAssertions\n+  #56 = Utf8               Code\n+  #57 = Utf8               LineNumberTable\n+  #58 = Utf8               LocalVariableTable\n+  #59 = Utf8               this\n+  #60 = Utf8               Ldev/langchain4j/model/embedding/TokenCountEstimatorTest;\n+  #61 = Utf8               test\n+  #62 = Utf8               segments\n+  #63 = Utf8               Ljava/util/List;\n+  #64 = Utf8               estimator\n+  #65 = Utf8               Ldev/langchain4j/model/embedding/TokenCountEstimator;\n+  #66 = Utf8               LocalVariableTypeTable\n+  #67 = Utf8               Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;\n+  #68 = Utf8               RuntimeVisibleAnnotations\n+  #69 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #70 = Utf8               SourceFile\n+  #71 = Utf8               TokenCountEstimatorTest.java\n+  #72 = Utf8               InnerClasses\n+  #73 = Utf8               WhitespaceSplitTokenCountEstimator\n {\n   dev.langchain4j.model.embedding.TokenCountEstimatorTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -97,56 +97,56 @@\n             0       5     0  this   Ldev/langchain4j/model/embedding/TokenCountEstimatorTest;\n \n   public void test();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=3, args_size=1\n-         0: new           #2                  // class dev/langchain4j/model/embedding/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n+         0: new           #7                  // class dev/langchain4j/model/embedding/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/model/embedding/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/model/embedding/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator.\"<init>\":()V\n          7: astore_1\n          8: aload_0\n          9: aload_1\n-        10: ldc           #4                  // String foo bar, baz\n-        12: invokeinterface #5,  2            // InterfaceMethod dev/langchain4j/model/embedding/TokenCountEstimator.estimateTokenCount:(Ljava/lang/String;)I\n-        17: invokevirtual #6                  // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        10: ldc           #10                 // String foo bar, baz\n+        12: invokeinterface #12,  2           // InterfaceMethod dev/langchain4j/model/embedding/TokenCountEstimator.estimateTokenCount:(Ljava/lang/String;)I\n+        17: invokevirtual #18                 // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         20: iconst_3\n-        21: invokevirtual #7                  // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        21: invokevirtual #24                 // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         24: pop\n         25: aload_0\n         26: aload_1\n-        27: ldc           #4                  // String foo bar, baz\n-        29: invokestatic  #8                  // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-        32: invokeinterface #9,  2            // InterfaceMethod dev/langchain4j/model/embedding/TokenCountEstimator.estimateTokenCount:(Ldev/langchain4j/data/segment/TextSegment;)I\n-        37: invokevirtual #6                  // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        27: ldc           #10                 // String foo bar, baz\n+        29: invokestatic  #29                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+        32: invokeinterface #35,  2           // InterfaceMethod dev/langchain4j/model/embedding/TokenCountEstimator.estimateTokenCount:(Ldev/langchain4j/data/segment/TextSegment;)I\n+        37: invokevirtual #18                 // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         40: iconst_3\n-        41: invokevirtual #7                  // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        41: invokevirtual #24                 // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         44: pop\n-        45: new           #10                 // class java/util/ArrayList\n+        45: new           #38                 // class java/util/ArrayList\n         48: dup\n-        49: invokespecial #11                 // Method java/util/ArrayList.\"<init>\":()V\n+        49: invokespecial #40                 // Method java/util/ArrayList.\"<init>\":()V\n         52: astore_2\n         53: aload_2\n-        54: ldc           #12                 // String Hello, world!\n-        56: invokestatic  #8                  // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-        59: invokeinterface #13,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n+        54: ldc           #41                 // String Hello, world!\n+        56: invokestatic  #29                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+        59: invokeinterface #43,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n         64: pop\n         65: aload_2\n-        66: ldc           #14                 // String How are you?\n-        68: invokestatic  #8                  // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-        71: invokeinterface #13,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n+        66: ldc           #49                 // String How are you?\n+        68: invokestatic  #29                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+        71: invokeinterface #43,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n         76: pop\n         77: aload_0\n         78: aload_1\n         79: aload_2\n-        80: invokeinterface #15,  2           // InterfaceMethod dev/langchain4j/model/embedding/TokenCountEstimator.estimateTokenCount:(Ljava/util/List;)I\n-        85: invokevirtual #6                  // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        80: invokeinterface #51,  2           // InterfaceMethod dev/langchain4j/model/embedding/TokenCountEstimator.estimateTokenCount:(Ljava/util/List;)I\n+        85: invokevirtual #18                 // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         88: iconst_5\n-        89: invokevirtual #7                  // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        89: invokevirtual #24                 // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         92: pop\n         93: return\n       LineNumberTable:\n         line 21: 0\n         line 23: 8\n         line 25: 25\n         line 28: 45\n@@ -159,13 +159,13 @@\n            53      40     2 segments   Ljava/util/List;\n             0      94     0  this   Ldev/langchain4j/model/embedding/TokenCountEstimatorTest;\n             8      86     1 estimator   Ldev/langchain4j/model/embedding/TokenCountEstimator;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            53      40     2 segments   Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;\n     RuntimeVisibleAnnotations:\n-      0: #36()\n+      0: #69()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"TokenCountEstimatorTest.java\"\n InnerClasses:\n-  public static #19= #2 of #16;           // WhitespaceSplitTokenCountEstimator=class dev/langchain4j/model/embedding/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator of class dev/langchain4j/model/embedding/TokenCountEstimatorTest\n+  public static #73= #7 of #19;           // WhitespaceSplitTokenCountEstimator=class dev/langchain4j/model/embedding/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator of class dev/langchain4j/model/embedding/TokenCountEstimatorTest\n"}]}, {"source1": "dev/langchain4j/model/image/ImageModelTest$FixedImageModel.class", "source2": "dev/langchain4j/model/image/ImageModelTest$FixedImageModel.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,70 +1,70 @@\n-  SHA-256 checksum ec82dd3580223c7404c92b6c495ad1cfa6fb9420d41e1e6c1d85489fe9ab82b6\n+  SHA-256 checksum c5912816fafbab2d0c21eec42127b90e947c6a97ba67815a18f316226f5384e3\n   Compiled from \"ImageModelTest.java\"\n public class dev.langchain4j.model.image.ImageModelTest$FixedImageModel implements dev.langchain4j.model.image.ImageModel\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #4                          // dev/langchain4j/model/image/ImageModelTest$FixedImageModel\n-  super_class: #5                         // java/lang/Object\n+  this_class: #8                          // dev/langchain4j/model/image/ImageModelTest$FixedImageModel\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 1, methods: 2, attributes: 2\n Constant pool:\n-   #1 = Methodref          #5.#26         // java/lang/Object.\"<init>\":()V\n-   #2 = Fieldref           #4.#27         // dev/langchain4j/model/image/ImageModelTest$FixedImageModel.image:Ldev/langchain4j/data/image/Image;\n-   #3 = Methodref          #28.#29        // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-   #4 = Class              #31            // dev/langchain4j/model/image/ImageModelTest$FixedImageModel\n-   #5 = Class              #32            // java/lang/Object\n-   #6 = Class              #33            // dev/langchain4j/model/image/ImageModel\n-   #7 = Utf8               image\n-   #8 = Utf8               Ldev/langchain4j/data/image/Image;\n-   #9 = Utf8               <init>\n-  #10 = Utf8               (Ldev/langchain4j/data/image/Image;)V\n-  #11 = Utf8               Code\n-  #12 = Utf8               LineNumberTable\n-  #13 = Utf8               LocalVariableTable\n-  #14 = Utf8               this\n-  #15 = Utf8               FixedImageModel\n-  #16 = Utf8               InnerClasses\n-  #17 = Utf8               Ldev/langchain4j/model/image/ImageModelTest$FixedImageModel;\n-  #18 = Utf8               generate\n-  #19 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n-  #20 = Utf8               prompt\n-  #21 = Utf8               Ljava/lang/String;\n-  #22 = Utf8               Signature\n-  #23 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/image/Image;>;\n-  #24 = Utf8               SourceFile\n-  #25 = Utf8               ImageModelTest.java\n-  #26 = NameAndType        #9:#34         // \"<init>\":()V\n-  #27 = NameAndType        #7:#8          // image:Ldev/langchain4j/data/image/Image;\n-  #28 = Class              #35            // dev/langchain4j/model/output/Response\n-  #29 = NameAndType        #36:#37        // from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-  #30 = Class              #38            // dev/langchain4j/model/image/ImageModelTest\n-  #31 = Utf8               dev/langchain4j/model/image/ImageModelTest$FixedImageModel\n-  #32 = Utf8               java/lang/Object\n-  #33 = Utf8               dev/langchain4j/model/image/ImageModel\n-  #34 = Utf8               ()V\n-  #35 = Utf8               dev/langchain4j/model/output/Response\n-  #36 = Utf8               from\n-  #37 = Utf8               (Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-  #38 = Utf8               dev/langchain4j/model/image/ImageModelTest\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Fieldref           #8.#9          // dev/langchain4j/model/image/ImageModelTest$FixedImageModel.image:Ldev/langchain4j/data/image/Image;\n+   #8 = Class              #10            // dev/langchain4j/model/image/ImageModelTest$FixedImageModel\n+   #9 = NameAndType        #11:#12        // image:Ldev/langchain4j/data/image/Image;\n+  #10 = Utf8               dev/langchain4j/model/image/ImageModelTest$FixedImageModel\n+  #11 = Utf8               image\n+  #12 = Utf8               Ldev/langchain4j/data/image/Image;\n+  #13 = Methodref          #14.#15        // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+  #14 = Class              #16            // dev/langchain4j/model/output/Response\n+  #15 = NameAndType        #17:#18        // from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+  #16 = Utf8               dev/langchain4j/model/output/Response\n+  #17 = Utf8               from\n+  #18 = Utf8               (Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+  #19 = Class              #20            // dev/langchain4j/model/image/ImageModel\n+  #20 = Utf8               dev/langchain4j/model/image/ImageModel\n+  #21 = Utf8               (Ldev/langchain4j/data/image/Image;)V\n+  #22 = Utf8               Code\n+  #23 = Utf8               LineNumberTable\n+  #24 = Utf8               LocalVariableTable\n+  #25 = Utf8               this\n+  #26 = Utf8               Ldev/langchain4j/model/image/ImageModelTest$FixedImageModel;\n+  #27 = Utf8               generate\n+  #28 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+  #29 = Utf8               prompt\n+  #30 = Utf8               Ljava/lang/String;\n+  #31 = Utf8               Signature\n+  #32 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/image/Image;>;\n+  #33 = Utf8               SourceFile\n+  #34 = Utf8               ImageModelTest.java\n+  #35 = Utf8               InnerClasses\n+  #36 = Class              #37            // dev/langchain4j/model/image/ImageModelTest\n+  #37 = Utf8               dev/langchain4j/model/image/ImageModelTest\n+  #38 = Utf8               FixedImageModel\n {\n   private final dev.langchain4j.data.image.Image image;\n     descriptor: Ldev/langchain4j/data/image/Image;\n     flags: (0x0012) ACC_PRIVATE, ACC_FINAL\n \n   public dev.langchain4j.model.image.ImageModelTest$FixedImageModel(dev.langchain4j.data.image.Image);\n     descriptor: (Ldev/langchain4j/data/image/Image;)V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n          4: aload_0\n          5: aload_1\n-         6: putfield      #2                  // Field image:Ldev/langchain4j/data/image/Image;\n+         6: putfield      #7                  // Field image:Ldev/langchain4j/data/image/Image;\n          9: return\n       LineNumberTable:\n         line 15: 0\n         line 16: 4\n         line 17: 9\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n@@ -73,21 +73,21 @@\n \n   public dev.langchain4j.model.output.Response<dev.langchain4j.data.image.Image> generate(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=2, args_size=2\n          0: aload_0\n-         1: getfield      #2                  // Field image:Ldev/langchain4j/data/image/Image;\n-         4: invokestatic  #3                  // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+         1: getfield      #7                  // Field image:Ldev/langchain4j/data/image/Image;\n+         4: invokestatic  #13                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n          7: areturn\n       LineNumberTable:\n         line 21: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       8     0  this   Ldev/langchain4j/model/image/ImageModelTest$FixedImageModel;\n             0       8     1 prompt   Ljava/lang/String;\n-    Signature: #23                          // (Ljava/lang/String;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/image/Image;>;\n+    Signature: #32                          // (Ljava/lang/String;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/image/Image;>;\n }\n SourceFile: \"ImageModelTest.java\"\n InnerClasses:\n-  public static #15= #4 of #30;           // FixedImageModel=class dev/langchain4j/model/image/ImageModelTest$FixedImageModel of class dev/langchain4j/model/image/ImageModelTest\n+  public static #38= #8 of #36;           // FixedImageModel=class dev/langchain4j/model/image/ImageModelTest$FixedImageModel of class dev/langchain4j/model/image/ImageModelTest\n"}]}, {"source1": "dev/langchain4j/model/image/ImageModelTest.class", "source2": "dev/langchain4j/model/image/ImageModelTest.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -21,15 +21,15 @@\n     }\n     \n     @Test\n     public void test_trivial() {\n         final ImageModel model = (ImageModel)new ImageModelTest.FixedImageModel(ImageModelTest.PLACEHOLDER_IMAGE);\n         final Response<Image> response = (Response<Image>)model.generate(\"prompt\");\n         this.assertThat((Object)response).isNotNull();\n-        this.assertThat(response.content()).isEqualTo((Object)ImageModelTest.PLACEHOLDER_IMAGE);\n+        this.assertThat((Object)response.content()).isEqualTo((Object)ImageModelTest.PLACEHOLDER_IMAGE);\n     }\n     \n     static {\n         try {\n             PLACEHOLDER_IMAGE = Image.builder().url(new URI(\"https://foo.bar\")).build();\n         }\n         catch (final Exception e) {\n"}]}, {"source1": "dev/langchain4j/model/input/PromptTemplateTest.class", "source2": "dev/langchain4j/model/input/PromptTemplateTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,286 +1,286 @@\n-  SHA-256 checksum 0b99765be03f4e9af8ae81731269017241cc0e75256b5cf9e04728ac2396e1c2\n+  SHA-256 checksum e1d2bd50d9a832d7bc94598c059a58afa60f2292256f9b4b2c617c9ae6a4fca6\n   Compiled from \"PromptTemplateTest.java\"\n class dev.langchain4j.model.input.PromptTemplateTest\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #57                         // dev/langchain4j/model/input/PromptTemplateTest\n-  super_class: #58                        // java/lang/Object\n+  this_class: #186                        // dev/langchain4j/model/input/PromptTemplateTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 0, methods: 14, attributes: 3\n Constant pool:\n-    #1 = Methodref          #58.#117      // java/lang/Object.\"<init>\":()V\n-    #2 = String             #118          // Hello world.\n-    #3 = Methodref          #45.#119      // dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n-    #4 = Methodref          #120.#121     // java/util/Collections.emptyMap:()Ljava/util/Map;\n-    #5 = Methodref          #45.#122      // dev/langchain4j/model/input/PromptTemplate.apply:(Ljava/util/Map;)Ldev/langchain4j/model/input/Prompt;\n-    #6 = Methodref          #123.#124     // dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n-    #7 = Methodref          #125.#126     // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-    #8 = Methodref          #127.#128     // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-    #9 = String             #129          // My name is {{it}}.\n-   #10 = String             #130          // Klaus\n-   #11 = Methodref          #45.#131      // dev/langchain4j/model/input/PromptTemplate.apply:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n-   #12 = String             #132          // My name is Klaus.\n-   #13 = String             #133          // My name is {{name}}.\n-   #14 = String             #134          // name\n-   #15 = Methodref          #120.#135     // java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-   #16 = String             #136          // My name is {{name}}, I am {{age}} years old.\n-   #17 = Class              #137          // java/util/HashMap\n-   #18 = Methodref          #17.#117      // java/util/HashMap.\"<init>\":()V\n-   #19 = InterfaceMethodref #138.#139     // java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-   #20 = String             #140          // age\n-   #21 = Methodref          #141.#142     // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-   #22 = String             #143          // My name is Klaus, I am 42 years old.\n-   #23 = String             #144          // My name is {{name}}, call me {{name}}.\n-   #24 = String             #145          // My name is Klaus, call me Klaus.\n-   #25 = InvokeDynamic      #0:#150       // #0:call:(Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #26 = Methodref          #125.#151     // org/assertj/core/api/Assertions.assertThatThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/AbstractThrowableAssert;\n-   #27 = Class              #152          // java/lang/IllegalArgumentException\n-   #28 = Methodref          #29.#153      // org/assertj/core/api/AbstractThrowableAssert.isExactlyInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n-   #29 = Class              #154          // org/assertj/core/api/AbstractThrowableAssert\n-   #30 = String             #155          // Value for the variable \\'name\\' is missing\n-   #31 = Methodref          #29.#156      // org/assertj/core/api/AbstractThrowableAssert.hasMessage:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractThrowableAssert;\n-   #32 = InvokeDynamic      #1:#150       // #1:call:(Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #33 = String             #158          // Value for the variable \\'name\\' is null\n-   #34 = String             #159          // Today is {{current_date}}\n-   #35 = Class              #160          // java/lang/StringBuilder\n-   #36 = Methodref          #35.#117      // java/lang/StringBuilder.\"<init>\":()V\n-   #37 = String             #161          // Today is\n-   #38 = Methodref          #35.#162      // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-   #39 = Methodref          #163.#164     // java/time/LocalDate.now:()Ljava/time/LocalDate;\n-   #40 = Methodref          #35.#165      // java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-   #41 = Methodref          #35.#166      // java/lang/StringBuilder.toString:()Ljava/lang/String;\n-   #42 = Methodref          #167.#168     // java/time/Instant.now:()Ljava/time/Instant;\n-   #43 = Fieldref           #169.#170     // java/time/ZoneOffset.UTC:Ljava/time/ZoneOffset;\n-   #44 = Methodref          #171.#172     // java/time/Clock.fixed:(Ljava/time/Instant;Ljava/time/ZoneId;)Ljava/time/Clock;\n-   #45 = Class              #173          // dev/langchain4j/model/input/PromptTemplate\n-   #46 = String             #174          // My name is {{it}} and now is {{current_time}}\n-   #47 = Methodref          #45.#175      // dev/langchain4j/model/input/PromptTemplate.\"<init>\":(Ljava/lang/String;Ljava/time/Clock;)V\n-   #48 = String             #176          // My name is Klaus and now is\n-   #49 = Methodref          #177.#178     // java/time/LocalTime.now:(Ljava/time/Clock;)Ljava/time/LocalTime;\n-   #50 = String             #179          // My name is {{name}} and now is {{current_date_time}}\n-   #51 = Methodref          #180.#181     // java/time/LocalDateTime.now:(Ljava/time/Clock;)Ljava/time/LocalDateTime;\n-   #52 = String             #182          // This is {{it}}.\n-   #53 = Fieldref           #183.#184     // java/lang/System.out:Ljava/io/PrintStream;\n-   #54 = Methodref          #185.#186     // java/io/PrintStream.println:(Ljava/lang/String;)V\n-   #55 = String             #187          // This is\n-   #56 = String             #188          // .\n-   #57 = Class              #189          // dev/langchain4j/model/input/PromptTemplateTest\n-   #58 = Class              #190          // java/lang/Object\n-   #59 = Utf8               <init>\n-   #60 = Utf8               ()V\n-   #61 = Utf8               Code\n-   #62 = Utf8               LineNumberTable\n-   #63 = Utf8               LocalVariableTable\n-   #64 = Utf8               this\n-   #65 = Utf8               Ldev/langchain4j/model/input/PromptTemplateTest;\n-   #66 = Utf8               should_create_prompt_from_template_without_variables\n-   #67 = Utf8               promptTemplate\n-   #68 = Utf8               Ldev/langchain4j/model/input/PromptTemplate;\n-   #69 = Utf8               variables\n-   #70 = Utf8               Ljava/util/Map;\n-   #71 = Utf8               prompt\n-   #72 = Utf8               Ldev/langchain4j/model/input/Prompt;\n-   #73 = Utf8               LocalVariableTypeTable\n-   #74 = Utf8               Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;\n-   #75 = Utf8               RuntimeVisibleAnnotations\n-   #76 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #77 = Utf8               should_create_prompt_from_template_with_it_variable\n-   #78 = Utf8               should_create_prompt_from_template_with_single_variable\n-   #79 = Utf8               should_create_prompt_from_template_with_multiple_variables\n-   #80 = Utf8               should_allow_same_variable_in_template_multiple_times\n-   #81 = Utf8               should_fail_when_value_is_missing\n-   #82 = Utf8               should_fail_when_value_is_null\n-   #83 = Utf8               should_provide_date_automatically\n-   #84 = Utf8               should_provide_time_automatically\n-   #85 = Utf8               clock\n-   #86 = Utf8               Ljava/time/Clock;\n-   #87 = Utf8               should_provide_date_and_time_automatically\n-   #88 = Utf8               should_support_special_characters\n-   #89 = Utf8               (Ljava/lang/String;)V\n-   #90 = Utf8               s\n-   #91 = Utf8               Ljava/lang/String;\n-   #92 = Utf8               Lorg/junit/jupiter/params/ParameterizedTest;\n-   #93 = Utf8               Lorg/junit/jupiter/params/provider/ValueSource;\n-   #94 = Utf8               strings\n-   #95 = Utf8               $\n-   #96 = Utf8               $$\n-   #97 = Utf8               {\n-   #98 = Utf8               {{\n-   #99 = Utf8               }\n-  #100 = Utf8               }}\n-  #101 = Utf8               {}\n-  #102 = Utf8               {{}}\n-  #103 = Utf8               *\n-  #104 = Utf8               **\n-  #105 = Utf8               \\\\\n-  #106 = Utf8               \\\\\\\\\n-  #107 = Utf8               ${}*\\\\\n-  #108 = Utf8               ${ *hello* }\n-  #109 = Utf8               \\\\$\\\\{ \\\\*hello\\\\* \\\\}\n-  #110 = Utf8               lambda$should_fail_when_value_is_null$1\n-  #111 = Utf8               (Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)V\n-  #112 = Utf8               Exceptions\n-  #113 = Class              #191          // java/lang/Throwable\n-  #114 = Utf8               lambda$should_fail_when_value_is_missing$0\n-  #115 = Utf8               SourceFile\n-  #116 = Utf8               PromptTemplateTest.java\n-  #117 = NameAndType        #59:#60       // \"<init>\":()V\n-  #118 = Utf8               Hello world.\n-  #119 = NameAndType        #192:#193     // from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n-  #120 = Class              #194          // java/util/Collections\n-  #121 = NameAndType        #195:#196     // emptyMap:()Ljava/util/Map;\n-  #122 = NameAndType        #197:#198     // apply:(Ljava/util/Map;)Ldev/langchain4j/model/input/Prompt;\n-  #123 = Class              #199          // dev/langchain4j/model/input/Prompt\n-  #124 = NameAndType        #200:#201     // text:()Ljava/lang/String;\n-  #125 = Class              #202          // org/assertj/core/api/Assertions\n-  #126 = NameAndType        #203:#204     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #127 = Class              #205          // org/assertj/core/api/AbstractStringAssert\n-  #128 = NameAndType        #206:#204     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #129 = Utf8               My name is {{it}}.\n-  #130 = Utf8               Klaus\n-  #131 = NameAndType        #197:#207     // apply:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n-  #132 = Utf8               My name is Klaus.\n-  #133 = Utf8               My name is {{name}}.\n-  #134 = Utf8               name\n-  #135 = NameAndType        #208:#209     // singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-  #136 = Utf8               My name is {{name}}, I am {{age}} years old.\n-  #137 = Utf8               java/util/HashMap\n-  #138 = Class              #210          // java/util/Map\n-  #139 = NameAndType        #211:#212     // put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-  #140 = Utf8               age\n-  #141 = Class              #213          // java/lang/Integer\n-  #142 = NameAndType        #214:#215     // valueOf:(I)Ljava/lang/Integer;\n-  #143 = Utf8               My name is Klaus, I am 42 years old.\n-  #144 = Utf8               My name is {{name}}, call me {{name}}.\n-  #145 = Utf8               My name is Klaus, call me Klaus.\n-  #146 = Utf8               BootstrapMethods\n-  #147 = MethodHandle       6:#216        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #148 = MethodType         #60           //  ()V\n-  #149 = MethodHandle       6:#217        // REF_invokeStatic dev/langchain4j/model/input/PromptTemplateTest.lambda$should_fail_when_value_is_missing$0:(Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)V\n-  #150 = NameAndType        #218:#222     // call:(Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-  #151 = NameAndType        #223:#224     // assertThatThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/AbstractThrowableAssert;\n-  #152 = Utf8               java/lang/IllegalArgumentException\n-  #153 = NameAndType        #225:#226     // isExactlyInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n-  #154 = Utf8               org/assertj/core/api/AbstractThrowableAssert\n-  #155 = Utf8               Value for the variable \\'name\\' is missing\n-  #156 = NameAndType        #227:#228     // hasMessage:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractThrowableAssert;\n-  #157 = MethodHandle       6:#229        // REF_invokeStatic dev/langchain4j/model/input/PromptTemplateTest.lambda$should_fail_when_value_is_null$1:(Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)V\n-  #158 = Utf8               Value for the variable \\'name\\' is null\n-  #159 = Utf8               Today is {{current_date}}\n-  #160 = Utf8               java/lang/StringBuilder\n-  #161 = Utf8               Today is\n-  #162 = NameAndType        #230:#231     // append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-  #163 = Class              #232          // java/time/LocalDate\n-  #164 = NameAndType        #233:#234     // now:()Ljava/time/LocalDate;\n-  #165 = NameAndType        #230:#235     // append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-  #166 = NameAndType        #236:#201     // toString:()Ljava/lang/String;\n-  #167 = Class              #237          // java/time/Instant\n-  #168 = NameAndType        #233:#238     // now:()Ljava/time/Instant;\n-  #169 = Class              #239          // java/time/ZoneOffset\n-  #170 = NameAndType        #240:#241     // UTC:Ljava/time/ZoneOffset;\n-  #171 = Class              #242          // java/time/Clock\n-  #172 = NameAndType        #243:#244     // fixed:(Ljava/time/Instant;Ljava/time/ZoneId;)Ljava/time/Clock;\n-  #173 = Utf8               dev/langchain4j/model/input/PromptTemplate\n-  #174 = Utf8               My name is {{it}} and now is {{current_time}}\n-  #175 = NameAndType        #59:#245      // \"<init>\":(Ljava/lang/String;Ljava/time/Clock;)V\n-  #176 = Utf8               My name is Klaus and now is\n-  #177 = Class              #246          // java/time/LocalTime\n-  #178 = NameAndType        #233:#247     // now:(Ljava/time/Clock;)Ljava/time/LocalTime;\n-  #179 = Utf8               My name is {{name}} and now is {{current_date_time}}\n-  #180 = Class              #248          // java/time/LocalDateTime\n-  #181 = NameAndType        #233:#249     // now:(Ljava/time/Clock;)Ljava/time/LocalDateTime;\n-  #182 = Utf8               This is {{it}}.\n-  #183 = Class              #250          // java/lang/System\n-  #184 = NameAndType        #251:#252     // out:Ljava/io/PrintStream;\n-  #185 = Class              #253          // java/io/PrintStream\n-  #186 = NameAndType        #254:#89      // println:(Ljava/lang/String;)V\n-  #187 = Utf8               This is\n-  #188 = Utf8               .\n-  #189 = Utf8               dev/langchain4j/model/input/PromptTemplateTest\n-  #190 = Utf8               java/lang/Object\n-  #191 = Utf8               java/lang/Throwable\n-  #192 = Utf8               from\n-  #193 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n-  #194 = Utf8               java/util/Collections\n-  #195 = Utf8               emptyMap\n-  #196 = Utf8               ()Ljava/util/Map;\n-  #197 = Utf8               apply\n-  #198 = Utf8               (Ljava/util/Map;)Ldev/langchain4j/model/input/Prompt;\n-  #199 = Utf8               dev/langchain4j/model/input/Prompt\n-  #200 = Utf8               text\n-  #201 = Utf8               ()Ljava/lang/String;\n-  #202 = Utf8               org/assertj/core/api/Assertions\n-  #203 = Utf8               assertThat\n-  #204 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #205 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #206 = Utf8               isEqualTo\n-  #207 = Utf8               (Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n-  #208 = Utf8               singletonMap\n-  #209 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-  #210 = Utf8               java/util/Map\n-  #211 = Utf8               put\n-  #212 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-  #213 = Utf8               java/lang/Integer\n-  #214 = Utf8               valueOf\n-  #215 = Utf8               (I)Ljava/lang/Integer;\n-  #216 = Methodref          #255.#256     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #217 = Methodref          #57.#257      // dev/langchain4j/model/input/PromptTemplateTest.lambda$should_fail_when_value_is_missing$0:(Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)V\n-  #218 = Utf8               call\n-  #219 = Class              #259          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #220 = Utf8               ThrowingCallable\n-  #221 = Utf8               InnerClasses\n-  #222 = Utf8               (Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-  #223 = Utf8               assertThatThrownBy\n-  #224 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/AbstractThrowableAssert;\n-  #225 = Utf8               isExactlyInstanceOf\n-  #226 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n-  #227 = Utf8               hasMessage\n-  #228 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractThrowableAssert;\n-  #229 = Methodref          #57.#260      // dev/langchain4j/model/input/PromptTemplateTest.lambda$should_fail_when_value_is_null$1:(Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)V\n-  #230 = Utf8               append\n-  #231 = Utf8               (Ljava/lang/String;)Ljava/lang/StringBuilder;\n-  #232 = Utf8               java/time/LocalDate\n-  #233 = Utf8               now\n-  #234 = Utf8               ()Ljava/time/LocalDate;\n-  #235 = Utf8               (Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-  #236 = Utf8               toString\n-  #237 = Utf8               java/time/Instant\n-  #238 = Utf8               ()Ljava/time/Instant;\n-  #239 = Utf8               java/time/ZoneOffset\n-  #240 = Utf8               UTC\n-  #241 = Utf8               Ljava/time/ZoneOffset;\n-  #242 = Utf8               java/time/Clock\n-  #243 = Utf8               fixed\n-  #244 = Utf8               (Ljava/time/Instant;Ljava/time/ZoneId;)Ljava/time/Clock;\n-  #245 = Utf8               (Ljava/lang/String;Ljava/time/Clock;)V\n-  #246 = Utf8               java/time/LocalTime\n-  #247 = Utf8               (Ljava/time/Clock;)Ljava/time/LocalTime;\n-  #248 = Utf8               java/time/LocalDateTime\n-  #249 = Utf8               (Ljava/time/Clock;)Ljava/time/LocalDateTime;\n-  #250 = Utf8               java/lang/System\n-  #251 = Utf8               out\n-  #252 = Utf8               Ljava/io/PrintStream;\n-  #253 = Utf8               java/io/PrintStream\n-  #254 = Utf8               println\n-  #255 = Class              #261          // java/lang/invoke/LambdaMetafactory\n-  #256 = NameAndType        #262:#265     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #257 = NameAndType        #114:#111     // lambda$should_fail_when_value_is_missing$0:(Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)V\n-  #258 = Class              #266          // org/assertj/core/api/ThrowableAssert\n-  #259 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #260 = NameAndType        #110:#111     // lambda$should_fail_when_value_is_null$1:(Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)V\n-  #261 = Utf8               java/lang/invoke/LambdaMetafactory\n-  #262 = Utf8               metafactory\n-  #263 = Class              #268          // java/lang/invoke/MethodHandles$Lookup\n-  #264 = Utf8               Lookup\n-  #265 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #266 = Utf8               org/assertj/core/api/ThrowableAssert\n-  #267 = Class              #269          // java/lang/invoke/MethodHandles\n-  #268 = Utf8               java/lang/invoke/MethodHandles$Lookup\n-  #269 = Utf8               java/lang/invoke/MethodHandles\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = String             #8            // Hello world.\n+    #8 = Utf8               Hello world.\n+    #9 = Methodref          #10.#11       // dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+   #10 = Class              #12           // dev/langchain4j/model/input/PromptTemplate\n+   #11 = NameAndType        #13:#14       // from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+   #12 = Utf8               dev/langchain4j/model/input/PromptTemplate\n+   #13 = Utf8               from\n+   #14 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+   #15 = Methodref          #16.#17       // java/util/Collections.emptyMap:()Ljava/util/Map;\n+   #16 = Class              #18           // java/util/Collections\n+   #17 = NameAndType        #19:#20       // emptyMap:()Ljava/util/Map;\n+   #18 = Utf8               java/util/Collections\n+   #19 = Utf8               emptyMap\n+   #20 = Utf8               ()Ljava/util/Map;\n+   #21 = Methodref          #10.#22       // dev/langchain4j/model/input/PromptTemplate.apply:(Ljava/util/Map;)Ldev/langchain4j/model/input/Prompt;\n+   #22 = NameAndType        #23:#24       // apply:(Ljava/util/Map;)Ldev/langchain4j/model/input/Prompt;\n+   #23 = Utf8               apply\n+   #24 = Utf8               (Ljava/util/Map;)Ldev/langchain4j/model/input/Prompt;\n+   #25 = Methodref          #26.#27       // dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n+   #26 = Class              #28           // dev/langchain4j/model/input/Prompt\n+   #27 = NameAndType        #29:#30       // text:()Ljava/lang/String;\n+   #28 = Utf8               dev/langchain4j/model/input/Prompt\n+   #29 = Utf8               text\n+   #30 = Utf8               ()Ljava/lang/String;\n+   #31 = Methodref          #32.#33       // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #32 = Class              #34           // org/assertj/core/api/Assertions\n+   #33 = NameAndType        #35:#36       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #34 = Utf8               org/assertj/core/api/Assertions\n+   #35 = Utf8               assertThat\n+   #36 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #37 = Methodref          #38.#39       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #38 = Class              #40           // org/assertj/core/api/AbstractStringAssert\n+   #39 = NameAndType        #41:#36       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #40 = Utf8               org/assertj/core/api/AbstractStringAssert\n+   #41 = Utf8               isEqualTo\n+   #42 = String             #43           // My name is {{it}}.\n+   #43 = Utf8               My name is {{it}}.\n+   #44 = String             #45           // Klaus\n+   #45 = Utf8               Klaus\n+   #46 = Methodref          #10.#47       // dev/langchain4j/model/input/PromptTemplate.apply:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n+   #47 = NameAndType        #23:#48       // apply:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n+   #48 = Utf8               (Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n+   #49 = String             #50           // My name is Klaus.\n+   #50 = Utf8               My name is Klaus.\n+   #51 = String             #52           // My name is {{name}}.\n+   #52 = Utf8               My name is {{name}}.\n+   #53 = String             #54           // name\n+   #54 = Utf8               name\n+   #55 = Methodref          #16.#56       // java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+   #56 = NameAndType        #57:#58       // singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+   #57 = Utf8               singletonMap\n+   #58 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+   #59 = String             #60           // My name is {{name}}, I am {{age}} years old.\n+   #60 = Utf8               My name is {{name}}, I am {{age}} years old.\n+   #61 = Class              #62           // java/util/HashMap\n+   #62 = Utf8               java/util/HashMap\n+   #63 = Methodref          #61.#3        // java/util/HashMap.\"<init>\":()V\n+   #64 = InterfaceMethodref #65.#66       // java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+   #65 = Class              #67           // java/util/Map\n+   #66 = NameAndType        #68:#69       // put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+   #67 = Utf8               java/util/Map\n+   #68 = Utf8               put\n+   #69 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+   #70 = String             #71           // age\n+   #71 = Utf8               age\n+   #72 = Methodref          #73.#74       // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+   #73 = Class              #75           // java/lang/Integer\n+   #74 = NameAndType        #76:#77       // valueOf:(I)Ljava/lang/Integer;\n+   #75 = Utf8               java/lang/Integer\n+   #76 = Utf8               valueOf\n+   #77 = Utf8               (I)Ljava/lang/Integer;\n+   #78 = String             #79           // My name is Klaus, I am 42 years old.\n+   #79 = Utf8               My name is Klaus, I am 42 years old.\n+   #80 = String             #81           // My name is {{name}}, call me {{name}}.\n+   #81 = Utf8               My name is {{name}}, call me {{name}}.\n+   #82 = String             #83           // My name is Klaus, call me Klaus.\n+   #83 = Utf8               My name is Klaus, call me Klaus.\n+   #84 = InvokeDynamic      #0:#85        // #0:call:(Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #85 = NameAndType        #86:#87       // call:(Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #86 = Utf8               call\n+   #87 = Utf8               (Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #88 = Methodref          #32.#89       // org/assertj/core/api/Assertions.assertThatThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/AbstractThrowableAssert;\n+   #89 = NameAndType        #90:#91       // assertThatThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/AbstractThrowableAssert;\n+   #90 = Utf8               assertThatThrownBy\n+   #91 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/AbstractThrowableAssert;\n+   #92 = Class              #93           // java/lang/IllegalArgumentException\n+   #93 = Utf8               java/lang/IllegalArgumentException\n+   #94 = Methodref          #95.#96       // org/assertj/core/api/AbstractThrowableAssert.isExactlyInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+   #95 = Class              #97           // org/assertj/core/api/AbstractThrowableAssert\n+   #96 = NameAndType        #98:#99       // isExactlyInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+   #97 = Utf8               org/assertj/core/api/AbstractThrowableAssert\n+   #98 = Utf8               isExactlyInstanceOf\n+   #99 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+  #100 = String             #101          // Value for the variable \\'name\\' is missing\n+  #101 = Utf8               Value for the variable \\'name\\' is missing\n+  #102 = Methodref          #95.#103      // org/assertj/core/api/AbstractThrowableAssert.hasMessage:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractThrowableAssert;\n+  #103 = NameAndType        #104:#105     // hasMessage:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractThrowableAssert;\n+  #104 = Utf8               hasMessage\n+  #105 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractThrowableAssert;\n+  #106 = InvokeDynamic      #1:#85        // #1:call:(Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+  #107 = String             #108          // Value for the variable \\'name\\' is null\n+  #108 = Utf8               Value for the variable \\'name\\' is null\n+  #109 = String             #110          // Today is {{current_date}}\n+  #110 = Utf8               Today is {{current_date}}\n+  #111 = Class              #112          // java/lang/StringBuilder\n+  #112 = Utf8               java/lang/StringBuilder\n+  #113 = Methodref          #111.#3       // java/lang/StringBuilder.\"<init>\":()V\n+  #114 = String             #115          // Today is\n+  #115 = Utf8               Today is\n+  #116 = Methodref          #111.#117     // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+  #117 = NameAndType        #118:#119     // append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+  #118 = Utf8               append\n+  #119 = Utf8               (Ljava/lang/String;)Ljava/lang/StringBuilder;\n+  #120 = Methodref          #121.#122     // java/time/LocalDate.now:()Ljava/time/LocalDate;\n+  #121 = Class              #123          // java/time/LocalDate\n+  #122 = NameAndType        #124:#125     // now:()Ljava/time/LocalDate;\n+  #123 = Utf8               java/time/LocalDate\n+  #124 = Utf8               now\n+  #125 = Utf8               ()Ljava/time/LocalDate;\n+  #126 = Methodref          #111.#127     // java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+  #127 = NameAndType        #118:#128     // append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+  #128 = Utf8               (Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+  #129 = Methodref          #111.#130     // java/lang/StringBuilder.toString:()Ljava/lang/String;\n+  #130 = NameAndType        #131:#30      // toString:()Ljava/lang/String;\n+  #131 = Utf8               toString\n+  #132 = Methodref          #133.#134     // java/time/Instant.now:()Ljava/time/Instant;\n+  #133 = Class              #135          // java/time/Instant\n+  #134 = NameAndType        #124:#136     // now:()Ljava/time/Instant;\n+  #135 = Utf8               java/time/Instant\n+  #136 = Utf8               ()Ljava/time/Instant;\n+  #137 = Fieldref           #138.#139     // java/time/ZoneOffset.UTC:Ljava/time/ZoneOffset;\n+  #138 = Class              #140          // java/time/ZoneOffset\n+  #139 = NameAndType        #141:#142     // UTC:Ljava/time/ZoneOffset;\n+  #140 = Utf8               java/time/ZoneOffset\n+  #141 = Utf8               UTC\n+  #142 = Utf8               Ljava/time/ZoneOffset;\n+  #143 = Methodref          #144.#145     // java/time/Clock.fixed:(Ljava/time/Instant;Ljava/time/ZoneId;)Ljava/time/Clock;\n+  #144 = Class              #146          // java/time/Clock\n+  #145 = NameAndType        #147:#148     // fixed:(Ljava/time/Instant;Ljava/time/ZoneId;)Ljava/time/Clock;\n+  #146 = Utf8               java/time/Clock\n+  #147 = Utf8               fixed\n+  #148 = Utf8               (Ljava/time/Instant;Ljava/time/ZoneId;)Ljava/time/Clock;\n+  #149 = String             #150          // My name is {{it}} and now is {{current_time}}\n+  #150 = Utf8               My name is {{it}} and now is {{current_time}}\n+  #151 = Methodref          #10.#152      // dev/langchain4j/model/input/PromptTemplate.\"<init>\":(Ljava/lang/String;Ljava/time/Clock;)V\n+  #152 = NameAndType        #5:#153       // \"<init>\":(Ljava/lang/String;Ljava/time/Clock;)V\n+  #153 = Utf8               (Ljava/lang/String;Ljava/time/Clock;)V\n+  #154 = String             #155          // My name is Klaus and now is\n+  #155 = Utf8               My name is Klaus and now is\n+  #156 = Methodref          #157.#158     // java/time/LocalTime.now:(Ljava/time/Clock;)Ljava/time/LocalTime;\n+  #157 = Class              #159          // java/time/LocalTime\n+  #158 = NameAndType        #124:#160     // now:(Ljava/time/Clock;)Ljava/time/LocalTime;\n+  #159 = Utf8               java/time/LocalTime\n+  #160 = Utf8               (Ljava/time/Clock;)Ljava/time/LocalTime;\n+  #161 = String             #162          // My name is {{name}} and now is {{current_date_time}}\n+  #162 = Utf8               My name is {{name}} and now is {{current_date_time}}\n+  #163 = Methodref          #164.#165     // java/time/LocalDateTime.now:(Ljava/time/Clock;)Ljava/time/LocalDateTime;\n+  #164 = Class              #166          // java/time/LocalDateTime\n+  #165 = NameAndType        #124:#167     // now:(Ljava/time/Clock;)Ljava/time/LocalDateTime;\n+  #166 = Utf8               java/time/LocalDateTime\n+  #167 = Utf8               (Ljava/time/Clock;)Ljava/time/LocalDateTime;\n+  #168 = String             #169          // This is {{it}}.\n+  #169 = Utf8               This is {{it}}.\n+  #170 = Fieldref           #171.#172     // java/lang/System.out:Ljava/io/PrintStream;\n+  #171 = Class              #173          // java/lang/System\n+  #172 = NameAndType        #174:#175     // out:Ljava/io/PrintStream;\n+  #173 = Utf8               java/lang/System\n+  #174 = Utf8               out\n+  #175 = Utf8               Ljava/io/PrintStream;\n+  #176 = Methodref          #177.#178     // java/io/PrintStream.println:(Ljava/lang/String;)V\n+  #177 = Class              #179          // java/io/PrintStream\n+  #178 = NameAndType        #180:#181     // println:(Ljava/lang/String;)V\n+  #179 = Utf8               java/io/PrintStream\n+  #180 = Utf8               println\n+  #181 = Utf8               (Ljava/lang/String;)V\n+  #182 = String             #183          // This is\n+  #183 = Utf8               This is\n+  #184 = String             #185          // .\n+  #185 = Utf8               .\n+  #186 = Class              #187          // dev/langchain4j/model/input/PromptTemplateTest\n+  #187 = Utf8               dev/langchain4j/model/input/PromptTemplateTest\n+  #188 = Utf8               Code\n+  #189 = Utf8               LineNumberTable\n+  #190 = Utf8               LocalVariableTable\n+  #191 = Utf8               this\n+  #192 = Utf8               Ldev/langchain4j/model/input/PromptTemplateTest;\n+  #193 = Utf8               should_create_prompt_from_template_without_variables\n+  #194 = Utf8               promptTemplate\n+  #195 = Utf8               Ldev/langchain4j/model/input/PromptTemplate;\n+  #196 = Utf8               variables\n+  #197 = Utf8               Ljava/util/Map;\n+  #198 = Utf8               prompt\n+  #199 = Utf8               Ldev/langchain4j/model/input/Prompt;\n+  #200 = Utf8               LocalVariableTypeTable\n+  #201 = Utf8               Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;\n+  #202 = Utf8               RuntimeVisibleAnnotations\n+  #203 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #204 = Utf8               should_create_prompt_from_template_with_it_variable\n+  #205 = Utf8               should_create_prompt_from_template_with_single_variable\n+  #206 = Utf8               should_create_prompt_from_template_with_multiple_variables\n+  #207 = Utf8               should_allow_same_variable_in_template_multiple_times\n+  #208 = Utf8               should_fail_when_value_is_missing\n+  #209 = Utf8               should_fail_when_value_is_null\n+  #210 = Utf8               should_provide_date_automatically\n+  #211 = Utf8               should_provide_time_automatically\n+  #212 = Utf8               clock\n+  #213 = Utf8               Ljava/time/Clock;\n+  #214 = Utf8               should_provide_date_and_time_automatically\n+  #215 = Utf8               should_support_special_characters\n+  #216 = Utf8               s\n+  #217 = Utf8               Ljava/lang/String;\n+  #218 = Utf8               Lorg/junit/jupiter/params/ParameterizedTest;\n+  #219 = Utf8               Lorg/junit/jupiter/params/provider/ValueSource;\n+  #220 = Utf8               strings\n+  #221 = Utf8               $\n+  #222 = Utf8               $$\n+  #223 = Utf8               {\n+  #224 = Utf8               {{\n+  #225 = Utf8               }\n+  #226 = Utf8               }}\n+  #227 = Utf8               {}\n+  #228 = Utf8               {{}}\n+  #229 = Utf8               *\n+  #230 = Utf8               **\n+  #231 = Utf8               \\\\\n+  #232 = Utf8               \\\\\\\\\n+  #233 = Utf8               ${}*\\\\\n+  #234 = Utf8               ${ *hello* }\n+  #235 = Utf8               \\\\$\\\\{ \\\\*hello\\\\* \\\\}\n+  #236 = Utf8               lambda$should_fail_when_value_is_null$1\n+  #237 = Utf8               (Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)V\n+  #238 = Utf8               Exceptions\n+  #239 = Class              #240          // java/lang/Throwable\n+  #240 = Utf8               java/lang/Throwable\n+  #241 = Utf8               lambda$should_fail_when_value_is_missing$0\n+  #242 = Utf8               SourceFile\n+  #243 = Utf8               PromptTemplateTest.java\n+  #244 = Utf8               BootstrapMethods\n+  #245 = MethodHandle       6:#246        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #246 = Methodref          #247.#248     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #247 = Class              #249          // java/lang/invoke/LambdaMetafactory\n+  #248 = NameAndType        #250:#251     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #249 = Utf8               java/lang/invoke/LambdaMetafactory\n+  #250 = Utf8               metafactory\n+  #251 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #252 = MethodType         #6            //  ()V\n+  #253 = MethodHandle       6:#254        // REF_invokeStatic dev/langchain4j/model/input/PromptTemplateTest.lambda$should_fail_when_value_is_missing$0:(Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)V\n+  #254 = Methodref          #186.#255     // dev/langchain4j/model/input/PromptTemplateTest.lambda$should_fail_when_value_is_missing$0:(Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)V\n+  #255 = NameAndType        #241:#237     // lambda$should_fail_when_value_is_missing$0:(Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)V\n+  #256 = MethodHandle       6:#257        // REF_invokeStatic dev/langchain4j/model/input/PromptTemplateTest.lambda$should_fail_when_value_is_null$1:(Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)V\n+  #257 = Methodref          #186.#258     // dev/langchain4j/model/input/PromptTemplateTest.lambda$should_fail_when_value_is_null$1:(Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)V\n+  #258 = NameAndType        #236:#237     // lambda$should_fail_when_value_is_null$1:(Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)V\n+  #259 = Utf8               InnerClasses\n+  #260 = Class              #261          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n+  #261 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n+  #262 = Class              #263          // org/assertj/core/api/ThrowableAssert\n+  #263 = Utf8               org/assertj/core/api/ThrowableAssert\n+  #264 = Utf8               ThrowingCallable\n+  #265 = Class              #266          // java/lang/invoke/MethodHandles$Lookup\n+  #266 = Utf8               java/lang/invoke/MethodHandles$Lookup\n+  #267 = Class              #268          // java/lang/invoke/MethodHandles\n+  #268 = Utf8               java/lang/invoke/MethodHandles\n+  #269 = Utf8               Lookup\n {\n   dev.langchain4j.model.input.PromptTemplateTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -293,28 +293,28 @@\n             0       5     0  this   Ldev/langchain4j/model/input/PromptTemplateTest;\n \n   void should_create_prompt_from_template_without_variables();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=2, locals=4, args_size=1\n-         0: ldc           #2                  // String Hello world.\n-         2: invokestatic  #3                  // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+         0: ldc           #7                  // String Hello world.\n+         2: invokestatic  #9                  // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n          5: astore_1\n-         6: invokestatic  #4                  // Method java/util/Collections.emptyMap:()Ljava/util/Map;\n+         6: invokestatic  #15                 // Method java/util/Collections.emptyMap:()Ljava/util/Map;\n          9: astore_2\n         10: aload_1\n         11: aload_2\n-        12: invokevirtual #5                  // Method dev/langchain4j/model/input/PromptTemplate.apply:(Ljava/util/Map;)Ldev/langchain4j/model/input/Prompt;\n+        12: invokevirtual #21                 // Method dev/langchain4j/model/input/PromptTemplate.apply:(Ljava/util/Map;)Ldev/langchain4j/model/input/Prompt;\n         15: astore_3\n         16: aload_3\n-        17: invokevirtual #6                  // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n-        20: invokestatic  #7                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        23: ldc           #2                  // String Hello world.\n-        25: invokevirtual #8                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        17: invokevirtual #25                 // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n+        20: invokestatic  #31                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        23: ldc           #7                  // String Hello world.\n+        25: invokevirtual #37                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         28: pop\n         29: return\n       LineNumberTable:\n         line 22: 0\n         line 24: 6\n         line 27: 10\n         line 30: 16\n@@ -325,71 +325,71 @@\n             6      24     1 promptTemplate   Ldev/langchain4j/model/input/PromptTemplate;\n            10      20     2 variables   Ljava/util/Map;\n            16      14     3 prompt   Ldev/langchain4j/model/input/Prompt;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            10      20     2 variables   Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;\n     RuntimeVisibleAnnotations:\n-      0: #76()\n+      0: #203()\n         org.junit.jupiter.api.Test\n \n   void should_create_prompt_from_template_with_it_variable();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=2, locals=3, args_size=1\n-         0: ldc           #9                  // String My name is {{it}}.\n-         2: invokestatic  #3                  // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+         0: ldc           #42                 // String My name is {{it}}.\n+         2: invokestatic  #9                  // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n          5: astore_1\n          6: aload_1\n-         7: ldc           #10                 // String Klaus\n-         9: invokevirtual #11                 // Method dev/langchain4j/model/input/PromptTemplate.apply:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n+         7: ldc           #44                 // String Klaus\n+         9: invokevirtual #46                 // Method dev/langchain4j/model/input/PromptTemplate.apply:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n         12: astore_2\n         13: aload_2\n-        14: invokevirtual #6                  // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n-        17: invokestatic  #7                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        20: ldc           #12                 // String My name is Klaus.\n-        22: invokevirtual #8                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        14: invokevirtual #25                 // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n+        17: invokestatic  #31                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        20: ldc           #49                 // String My name is Klaus.\n+        22: invokevirtual #37                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         25: pop\n         26: return\n       LineNumberTable:\n         line 37: 0\n         line 40: 6\n         line 43: 13\n         line 44: 26\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      27     0  this   Ldev/langchain4j/model/input/PromptTemplateTest;\n             6      21     1 promptTemplate   Ldev/langchain4j/model/input/PromptTemplate;\n            13      14     2 prompt   Ldev/langchain4j/model/input/Prompt;\n     RuntimeVisibleAnnotations:\n-      0: #76()\n+      0: #203()\n         org.junit.jupiter.api.Test\n \n   void should_create_prompt_from_template_with_single_variable();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=2, locals=4, args_size=1\n-         0: ldc           #13                 // String My name is {{name}}.\n-         2: invokestatic  #3                  // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+         0: ldc           #51                 // String My name is {{name}}.\n+         2: invokestatic  #9                  // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n          5: astore_1\n-         6: ldc           #14                 // String name\n-         8: ldc           #10                 // String Klaus\n-        10: invokestatic  #15                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+         6: ldc           #53                 // String name\n+         8: ldc           #44                 // String Klaus\n+        10: invokestatic  #55                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n         13: astore_2\n         14: aload_1\n         15: aload_2\n-        16: invokevirtual #5                  // Method dev/langchain4j/model/input/PromptTemplate.apply:(Ljava/util/Map;)Ldev/langchain4j/model/input/Prompt;\n+        16: invokevirtual #21                 // Method dev/langchain4j/model/input/PromptTemplate.apply:(Ljava/util/Map;)Ldev/langchain4j/model/input/Prompt;\n         19: astore_3\n         20: aload_3\n-        21: invokevirtual #6                  // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n-        24: invokestatic  #7                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        27: ldc           #12                 // String My name is Klaus.\n-        29: invokevirtual #8                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        21: invokevirtual #25                 // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n+        24: invokestatic  #31                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        27: ldc           #49                 // String My name is Klaus.\n+        29: invokevirtual #37                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         32: pop\n         33: return\n       LineNumberTable:\n         line 50: 0\n         line 52: 6\n         line 55: 14\n         line 58: 20\n@@ -400,49 +400,49 @@\n             6      28     1 promptTemplate   Ldev/langchain4j/model/input/PromptTemplate;\n            14      20     2 variables   Ljava/util/Map;\n            20      14     3 prompt   Ldev/langchain4j/model/input/Prompt;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            14      20     2 variables   Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;\n     RuntimeVisibleAnnotations:\n-      0: #76()\n+      0: #203()\n         org.junit.jupiter.api.Test\n \n   void should_create_prompt_from_template_with_multiple_variables();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=3, locals=4, args_size=1\n-         0: ldc           #16                 // String My name is {{name}}, I am {{age}} years old.\n-         2: invokestatic  #3                  // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+         0: ldc           #59                 // String My name is {{name}}, I am {{age}} years old.\n+         2: invokestatic  #9                  // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n          5: astore_1\n-         6: new           #17                 // class java/util/HashMap\n+         6: new           #61                 // class java/util/HashMap\n          9: dup\n-        10: invokespecial #18                 // Method java/util/HashMap.\"<init>\":()V\n+        10: invokespecial #63                 // Method java/util/HashMap.\"<init>\":()V\n         13: astore_2\n         14: aload_2\n-        15: ldc           #14                 // String name\n-        17: ldc           #10                 // String Klaus\n-        19: invokeinterface #19,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+        15: ldc           #53                 // String name\n+        17: ldc           #44                 // String Klaus\n+        19: invokeinterface #64,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n         24: pop\n         25: aload_2\n-        26: ldc           #20                 // String age\n+        26: ldc           #70                 // String age\n         28: bipush        42\n-        30: invokestatic  #21                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-        33: invokeinterface #19,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+        30: invokestatic  #72                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        33: invokeinterface #64,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n         38: pop\n         39: aload_1\n         40: aload_2\n-        41: invokevirtual #5                  // Method dev/langchain4j/model/input/PromptTemplate.apply:(Ljava/util/Map;)Ldev/langchain4j/model/input/Prompt;\n+        41: invokevirtual #21                 // Method dev/langchain4j/model/input/PromptTemplate.apply:(Ljava/util/Map;)Ldev/langchain4j/model/input/Prompt;\n         44: astore_3\n         45: aload_3\n-        46: invokevirtual #6                  // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n-        49: invokestatic  #7                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        52: ldc           #22                 // String My name is Klaus, I am 42 years old.\n-        54: invokevirtual #8                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        46: invokevirtual #25                 // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n+        49: invokestatic  #31                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        52: ldc           #78                 // String My name is Klaus, I am 42 years old.\n+        54: invokevirtual #37                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         57: pop\n         58: return\n       LineNumberTable:\n         line 65: 0\n         line 67: 6\n         line 68: 14\n         line 69: 25\n@@ -455,43 +455,43 @@\n             6      53     1 promptTemplate   Ldev/langchain4j/model/input/PromptTemplate;\n            14      45     2 variables   Ljava/util/Map;\n            45      14     3 prompt   Ldev/langchain4j/model/input/Prompt;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            14      45     2 variables   Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;\n     RuntimeVisibleAnnotations:\n-      0: #76()\n+      0: #203()\n         org.junit.jupiter.api.Test\n \n   void should_allow_same_variable_in_template_multiple_times();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=3, locals=4, args_size=1\n-         0: ldc           #23                 // String My name is {{name}}, call me {{name}}.\n-         2: invokestatic  #3                  // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+         0: ldc           #80                 // String My name is {{name}}, call me {{name}}.\n+         2: invokestatic  #9                  // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n          5: astore_1\n-         6: new           #17                 // class java/util/HashMap\n+         6: new           #61                 // class java/util/HashMap\n          9: dup\n-        10: invokespecial #18                 // Method java/util/HashMap.\"<init>\":()V\n+        10: invokespecial #63                 // Method java/util/HashMap.\"<init>\":()V\n         13: astore_2\n         14: aload_2\n-        15: ldc           #14                 // String name\n-        17: ldc           #10                 // String Klaus\n-        19: invokeinterface #19,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+        15: ldc           #53                 // String name\n+        17: ldc           #44                 // String Klaus\n+        19: invokeinterface #64,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n         24: pop\n         25: aload_1\n         26: aload_2\n-        27: invokevirtual #5                  // Method dev/langchain4j/model/input/PromptTemplate.apply:(Ljava/util/Map;)Ldev/langchain4j/model/input/Prompt;\n+        27: invokevirtual #21                 // Method dev/langchain4j/model/input/PromptTemplate.apply:(Ljava/util/Map;)Ldev/langchain4j/model/input/Prompt;\n         30: astore_3\n         31: aload_3\n-        32: invokevirtual #6                  // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n-        35: invokestatic  #7                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        38: ldc           #24                 // String My name is Klaus, call me Klaus.\n-        40: invokevirtual #8                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        32: invokevirtual #25                 // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n+        35: invokestatic  #31                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        38: ldc           #82                 // String My name is Klaus, call me Klaus.\n+        40: invokevirtual #37                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         43: pop\n         44: return\n       LineNumberTable:\n         line 82: 0\n         line 84: 6\n         line 85: 14\n         line 88: 25\n@@ -503,36 +503,36 @@\n             6      39     1 promptTemplate   Ldev/langchain4j/model/input/PromptTemplate;\n            14      31     2 variables   Ljava/util/Map;\n            31      14     3 prompt   Ldev/langchain4j/model/input/Prompt;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            14      31     2 variables   Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;\n     RuntimeVisibleAnnotations:\n-      0: #76()\n+      0: #203()\n         org.junit.jupiter.api.Test\n \n   void should_fail_when_value_is_missing();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=2, locals=3, args_size=1\n-         0: ldc           #13                 // String My name is {{name}}.\n-         2: invokestatic  #3                  // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+         0: ldc           #51                 // String My name is {{name}}.\n+         2: invokestatic  #9                  // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n          5: astore_1\n-         6: invokestatic  #4                  // Method java/util/Collections.emptyMap:()Ljava/util/Map;\n+         6: invokestatic  #15                 // Method java/util/Collections.emptyMap:()Ljava/util/Map;\n          9: astore_2\n         10: aload_1\n         11: aload_2\n-        12: invokedynamic #25,  0             // InvokeDynamic #0:call:(Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-        17: invokestatic  #26                 // Method org/assertj/core/api/Assertions.assertThatThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/AbstractThrowableAssert;\n-        20: ldc           #27                 // class java/lang/IllegalArgumentException\n-        22: invokevirtual #28                 // Method org/assertj/core/api/AbstractThrowableAssert.isExactlyInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n-        25: checkcast     #29                 // class org/assertj/core/api/AbstractThrowableAssert\n-        28: ldc           #30                 // String Value for the variable \\'name\\' is missing\n-        30: invokevirtual #31                 // Method org/assertj/core/api/AbstractThrowableAssert.hasMessage:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractThrowableAssert;\n+        12: invokedynamic #84,  0             // InvokeDynamic #0:call:(Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+        17: invokestatic  #88                 // Method org/assertj/core/api/Assertions.assertThatThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/AbstractThrowableAssert;\n+        20: ldc           #92                 // class java/lang/IllegalArgumentException\n+        22: invokevirtual #94                 // Method org/assertj/core/api/AbstractThrowableAssert.isExactlyInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+        25: checkcast     #95                 // class org/assertj/core/api/AbstractThrowableAssert\n+        28: ldc           #100                // String Value for the variable \\'name\\' is missing\n+        30: invokevirtual #102                // Method org/assertj/core/api/AbstractThrowableAssert.hasMessage:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractThrowableAssert;\n         33: pop\n         34: return\n       LineNumberTable:\n         line 98: 0\n         line 100: 6\n         line 103: 10\n         line 104: 22\n@@ -543,43 +543,43 @@\n             0      35     0  this   Ldev/langchain4j/model/input/PromptTemplateTest;\n             6      29     1 promptTemplate   Ldev/langchain4j/model/input/PromptTemplate;\n            10      25     2 variables   Ljava/util/Map;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            10      25     2 variables   Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;\n     RuntimeVisibleAnnotations:\n-      0: #76()\n+      0: #203()\n         org.junit.jupiter.api.Test\n \n   void should_fail_when_value_is_null();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=3, locals=3, args_size=1\n-         0: ldc           #13                 // String My name is {{name}}.\n-         2: invokestatic  #3                  // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+         0: ldc           #51                 // String My name is {{name}}.\n+         2: invokestatic  #9                  // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n          5: astore_1\n-         6: new           #17                 // class java/util/HashMap\n+         6: new           #61                 // class java/util/HashMap\n          9: dup\n-        10: invokespecial #18                 // Method java/util/HashMap.\"<init>\":()V\n+        10: invokespecial #63                 // Method java/util/HashMap.\"<init>\":()V\n         13: astore_2\n         14: aload_2\n-        15: ldc           #14                 // String name\n+        15: ldc           #53                 // String name\n         17: aconst_null\n-        18: invokeinterface #19,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+        18: invokeinterface #64,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n         23: pop\n         24: aload_1\n         25: aload_2\n-        26: invokedynamic #32,  0             // InvokeDynamic #1:call:(Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-        31: invokestatic  #26                 // Method org/assertj/core/api/Assertions.assertThatThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/AbstractThrowableAssert;\n-        34: ldc           #27                 // class java/lang/IllegalArgumentException\n-        36: invokevirtual #28                 // Method org/assertj/core/api/AbstractThrowableAssert.isExactlyInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n-        39: checkcast     #29                 // class org/assertj/core/api/AbstractThrowableAssert\n-        42: ldc           #33                 // String Value for the variable \\'name\\' is null\n-        44: invokevirtual #31                 // Method org/assertj/core/api/AbstractThrowableAssert.hasMessage:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractThrowableAssert;\n+        26: invokedynamic #106,  0            // InvokeDynamic #1:call:(Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+        31: invokestatic  #88                 // Method org/assertj/core/api/Assertions.assertThatThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/AbstractThrowableAssert;\n+        34: ldc           #92                 // class java/lang/IllegalArgumentException\n+        36: invokevirtual #94                 // Method org/assertj/core/api/AbstractThrowableAssert.isExactlyInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+        39: checkcast     #95                 // class org/assertj/core/api/AbstractThrowableAssert\n+        42: ldc           #107                // String Value for the variable \\'name\\' is null\n+        44: invokevirtual #102                // Method org/assertj/core/api/AbstractThrowableAssert.hasMessage:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractThrowableAssert;\n         47: pop\n         48: return\n       LineNumberTable:\n         line 112: 0\n         line 114: 6\n         line 115: 14\n         line 118: 24\n@@ -591,43 +591,43 @@\n             0      49     0  this   Ldev/langchain4j/model/input/PromptTemplateTest;\n             6      43     1 promptTemplate   Ldev/langchain4j/model/input/PromptTemplate;\n            14      35     2 variables   Ljava/util/Map;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            14      35     2 variables   Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;\n     RuntimeVisibleAnnotations:\n-      0: #76()\n+      0: #203()\n         org.junit.jupiter.api.Test\n \n   void should_provide_date_automatically();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=3, locals=4, args_size=1\n-         0: ldc           #34                 // String Today is {{current_date}}\n-         2: invokestatic  #3                  // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+         0: ldc           #109                // String Today is {{current_date}}\n+         2: invokestatic  #9                  // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n          5: astore_1\n-         6: invokestatic  #4                  // Method java/util/Collections.emptyMap:()Ljava/util/Map;\n+         6: invokestatic  #15                 // Method java/util/Collections.emptyMap:()Ljava/util/Map;\n          9: astore_2\n         10: aload_1\n         11: aload_2\n-        12: invokevirtual #5                  // Method dev/langchain4j/model/input/PromptTemplate.apply:(Ljava/util/Map;)Ldev/langchain4j/model/input/Prompt;\n+        12: invokevirtual #21                 // Method dev/langchain4j/model/input/PromptTemplate.apply:(Ljava/util/Map;)Ldev/langchain4j/model/input/Prompt;\n         15: astore_3\n         16: aload_3\n-        17: invokevirtual #6                  // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n-        20: invokestatic  #7                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        23: new           #35                 // class java/lang/StringBuilder\n+        17: invokevirtual #25                 // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n+        20: invokestatic  #31                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        23: new           #111                // class java/lang/StringBuilder\n         26: dup\n-        27: invokespecial #36                 // Method java/lang/StringBuilder.\"<init>\":()V\n-        30: ldc           #37                 // String Today is\n-        32: invokevirtual #38                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-        35: invokestatic  #39                 // Method java/time/LocalDate.now:()Ljava/time/LocalDate;\n-        38: invokevirtual #40                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-        41: invokevirtual #41                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n-        44: invokevirtual #8                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        27: invokespecial #113                // Method java/lang/StringBuilder.\"<init>\":()V\n+        30: ldc           #114                // String Today is\n+        32: invokevirtual #116                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        35: invokestatic  #120                // Method java/time/LocalDate.now:()Ljava/time/LocalDate;\n+        38: invokevirtual #126                // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+        41: invokevirtual #129                // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n+        44: invokevirtual #37                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         47: pop\n         48: return\n       LineNumberTable:\n         line 127: 0\n         line 129: 6\n         line 132: 10\n         line 135: 16\n@@ -638,49 +638,49 @@\n             6      43     1 promptTemplate   Ldev/langchain4j/model/input/PromptTemplate;\n            10      39     2 variables   Ljava/util/Map;\n            16      33     3 prompt   Ldev/langchain4j/model/input/Prompt;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            10      39     2 variables   Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;\n     RuntimeVisibleAnnotations:\n-      0: #76()\n+      0: #203()\n         org.junit.jupiter.api.Test\n \n   void should_provide_time_automatically();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=4, locals=4, args_size=1\n-         0: invokestatic  #42                 // Method java/time/Instant.now:()Ljava/time/Instant;\n-         3: getstatic     #43                 // Field java/time/ZoneOffset.UTC:Ljava/time/ZoneOffset;\n-         6: invokestatic  #44                 // Method java/time/Clock.fixed:(Ljava/time/Instant;Ljava/time/ZoneId;)Ljava/time/Clock;\n+         0: invokestatic  #132                // Method java/time/Instant.now:()Ljava/time/Instant;\n+         3: getstatic     #137                // Field java/time/ZoneOffset.UTC:Ljava/time/ZoneOffset;\n+         6: invokestatic  #143                // Method java/time/Clock.fixed:(Ljava/time/Instant;Ljava/time/ZoneId;)Ljava/time/Clock;\n          9: astore_1\n-        10: new           #45                 // class dev/langchain4j/model/input/PromptTemplate\n+        10: new           #10                 // class dev/langchain4j/model/input/PromptTemplate\n         13: dup\n-        14: ldc           #46                 // String My name is {{it}} and now is {{current_time}}\n+        14: ldc           #149                // String My name is {{it}} and now is {{current_time}}\n         16: aload_1\n-        17: invokespecial #47                 // Method dev/langchain4j/model/input/PromptTemplate.\"<init>\":(Ljava/lang/String;Ljava/time/Clock;)V\n+        17: invokespecial #151                // Method dev/langchain4j/model/input/PromptTemplate.\"<init>\":(Ljava/lang/String;Ljava/time/Clock;)V\n         20: astore_2\n         21: aload_2\n-        22: ldc           #10                 // String Klaus\n-        24: invokevirtual #11                 // Method dev/langchain4j/model/input/PromptTemplate.apply:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n+        22: ldc           #44                 // String Klaus\n+        24: invokevirtual #46                 // Method dev/langchain4j/model/input/PromptTemplate.apply:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n         27: astore_3\n         28: aload_3\n-        29: invokevirtual #6                  // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n-        32: invokestatic  #7                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        35: new           #35                 // class java/lang/StringBuilder\n+        29: invokevirtual #25                 // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n+        32: invokestatic  #31                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        35: new           #111                // class java/lang/StringBuilder\n         38: dup\n-        39: invokespecial #36                 // Method java/lang/StringBuilder.\"<init>\":()V\n-        42: ldc           #48                 // String My name is Klaus and now is\n-        44: invokevirtual #38                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        39: invokespecial #113                // Method java/lang/StringBuilder.\"<init>\":()V\n+        42: ldc           #154                // String My name is Klaus and now is\n+        44: invokevirtual #116                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         47: aload_1\n-        48: invokestatic  #49                 // Method java/time/LocalTime.now:(Ljava/time/Clock;)Ljava/time/LocalTime;\n-        51: invokevirtual #40                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-        54: invokevirtual #41                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n-        57: invokevirtual #8                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        48: invokestatic  #156                // Method java/time/LocalTime.now:(Ljava/time/Clock;)Ljava/time/LocalTime;\n+        51: invokevirtual #126                // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+        54: invokevirtual #129                // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n+        57: invokevirtual #37                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         60: pop\n         61: return\n       LineNumberTable:\n         line 142: 0\n         line 144: 10\n         line 147: 21\n         line 150: 28\n@@ -688,58 +688,58 @@\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      62     0  this   Ldev/langchain4j/model/input/PromptTemplateTest;\n            10      52     1 clock   Ljava/time/Clock;\n            21      41     2 promptTemplate   Ldev/langchain4j/model/input/PromptTemplate;\n            28      34     3 prompt   Ldev/langchain4j/model/input/Prompt;\n     RuntimeVisibleAnnotations:\n-      0: #76()\n+      0: #203()\n         org.junit.jupiter.api.Test\n \n   void should_provide_date_and_time_automatically();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=4, locals=5, args_size=1\n-         0: invokestatic  #42                 // Method java/time/Instant.now:()Ljava/time/Instant;\n-         3: getstatic     #43                 // Field java/time/ZoneOffset.UTC:Ljava/time/ZoneOffset;\n-         6: invokestatic  #44                 // Method java/time/Clock.fixed:(Ljava/time/Instant;Ljava/time/ZoneId;)Ljava/time/Clock;\n+         0: invokestatic  #132                // Method java/time/Instant.now:()Ljava/time/Instant;\n+         3: getstatic     #137                // Field java/time/ZoneOffset.UTC:Ljava/time/ZoneOffset;\n+         6: invokestatic  #143                // Method java/time/Clock.fixed:(Ljava/time/Instant;Ljava/time/ZoneId;)Ljava/time/Clock;\n          9: astore_1\n-        10: new           #45                 // class dev/langchain4j/model/input/PromptTemplate\n+        10: new           #10                 // class dev/langchain4j/model/input/PromptTemplate\n         13: dup\n-        14: ldc           #50                 // String My name is {{name}} and now is {{current_date_time}}\n+        14: ldc           #161                // String My name is {{name}} and now is {{current_date_time}}\n         16: aload_1\n-        17: invokespecial #47                 // Method dev/langchain4j/model/input/PromptTemplate.\"<init>\":(Ljava/lang/String;Ljava/time/Clock;)V\n+        17: invokespecial #151                // Method dev/langchain4j/model/input/PromptTemplate.\"<init>\":(Ljava/lang/String;Ljava/time/Clock;)V\n         20: astore_2\n-        21: new           #17                 // class java/util/HashMap\n+        21: new           #61                 // class java/util/HashMap\n         24: dup\n-        25: invokespecial #18                 // Method java/util/HashMap.\"<init>\":()V\n+        25: invokespecial #63                 // Method java/util/HashMap.\"<init>\":()V\n         28: astore_3\n         29: aload_3\n-        30: ldc           #14                 // String name\n-        32: ldc           #10                 // String Klaus\n-        34: invokeinterface #19,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+        30: ldc           #53                 // String name\n+        32: ldc           #44                 // String Klaus\n+        34: invokeinterface #64,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n         39: pop\n         40: aload_2\n         41: aload_3\n-        42: invokevirtual #5                  // Method dev/langchain4j/model/input/PromptTemplate.apply:(Ljava/util/Map;)Ldev/langchain4j/model/input/Prompt;\n+        42: invokevirtual #21                 // Method dev/langchain4j/model/input/PromptTemplate.apply:(Ljava/util/Map;)Ldev/langchain4j/model/input/Prompt;\n         45: astore        4\n         47: aload         4\n-        49: invokevirtual #6                  // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n-        52: invokestatic  #7                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        55: new           #35                 // class java/lang/StringBuilder\n+        49: invokevirtual #25                 // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n+        52: invokestatic  #31                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        55: new           #111                // class java/lang/StringBuilder\n         58: dup\n-        59: invokespecial #36                 // Method java/lang/StringBuilder.\"<init>\":()V\n-        62: ldc           #48                 // String My name is Klaus and now is\n-        64: invokevirtual #38                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        59: invokespecial #113                // Method java/lang/StringBuilder.\"<init>\":()V\n+        62: ldc           #154                // String My name is Klaus and now is\n+        64: invokevirtual #116                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         67: aload_1\n-        68: invokestatic  #51                 // Method java/time/LocalDateTime.now:(Ljava/time/Clock;)Ljava/time/LocalDateTime;\n-        71: invokevirtual #40                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-        74: invokevirtual #41                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n-        77: invokevirtual #8                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        68: invokestatic  #163                // Method java/time/LocalDateTime.now:(Ljava/time/Clock;)Ljava/time/LocalDateTime;\n+        71: invokevirtual #126                // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+        74: invokevirtual #129                // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n+        77: invokevirtual #37                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         80: pop\n         81: return\n       LineNumberTable:\n         line 157: 0\n         line 159: 10\n         line 161: 21\n         line 162: 29\n@@ -753,47 +753,47 @@\n            21      61     2 promptTemplate   Ldev/langchain4j/model/input/PromptTemplate;\n            29      53     3 variables   Ljava/util/Map;\n            47      35     4 prompt   Ldev/langchain4j/model/input/Prompt;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            29      53     3 variables   Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;\n     RuntimeVisibleAnnotations:\n-      0: #76()\n+      0: #203()\n         org.junit.jupiter.api.Test\n \n   void should_support_special_characters(java.lang.String);\n     descriptor: (Ljava/lang/String;)V\n     flags: (0x0000)\n     Code:\n       stack=3, locals=4, args_size=2\n-         0: ldc           #52                 // String This is {{it}}.\n-         2: invokestatic  #3                  // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+         0: ldc           #168                // String This is {{it}}.\n+         2: invokestatic  #9                  // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n          5: astore_2\n          6: aload_2\n          7: aload_1\n-         8: invokevirtual #11                 // Method dev/langchain4j/model/input/PromptTemplate.apply:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n+         8: invokevirtual #46                 // Method dev/langchain4j/model/input/PromptTemplate.apply:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n         11: astore_3\n-        12: getstatic     #53                 // Field java/lang/System.out:Ljava/io/PrintStream;\n+        12: getstatic     #170                // Field java/lang/System.out:Ljava/io/PrintStream;\n         15: aload_3\n-        16: invokevirtual #6                  // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n-        19: invokevirtual #54                 // Method java/io/PrintStream.println:(Ljava/lang/String;)V\n+        16: invokevirtual #25                 // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n+        19: invokevirtual #176                // Method java/io/PrintStream.println:(Ljava/lang/String;)V\n         22: aload_3\n-        23: invokevirtual #6                  // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n-        26: invokestatic  #7                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        29: new           #35                 // class java/lang/StringBuilder\n+        23: invokevirtual #25                 // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n+        26: invokestatic  #31                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        29: new           #111                // class java/lang/StringBuilder\n         32: dup\n-        33: invokespecial #36                 // Method java/lang/StringBuilder.\"<init>\":()V\n-        36: ldc           #55                 // String This is\n-        38: invokevirtual #38                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        33: invokespecial #113                // Method java/lang/StringBuilder.\"<init>\":()V\n+        36: ldc           #182                // String This is\n+        38: invokevirtual #116                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         41: aload_1\n-        42: invokevirtual #38                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-        45: ldc           #56                 // String .\n-        47: invokevirtual #38                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-        50: invokevirtual #41                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n-        53: invokevirtual #8                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        42: invokevirtual #116                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        45: ldc           #184                // String .\n+        47: invokevirtual #116                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        50: invokevirtual #129                // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n+        53: invokevirtual #37                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         56: pop\n         57: return\n       LineNumberTable:\n         line 192: 0\n         line 195: 6\n         line 196: 12\n         line 199: 22\n@@ -801,29 +801,29 @@\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      58     0  this   Ldev/langchain4j/model/input/PromptTemplateTest;\n             0      58     1     s   Ljava/lang/String;\n             6      52     2 promptTemplate   Ldev/langchain4j/model/input/PromptTemplate;\n            12      46     3 prompt   Ldev/langchain4j/model/input/Prompt;\n     RuntimeVisibleAnnotations:\n-      0: #92()\n+      0: #218()\n         org.junit.jupiter.params.ParameterizedTest\n-      1: #93(#94=[s#95,s#96,s#97,s#98,s#99,s#100,s#101,s#102,s#103,s#104,s#105,s#106,s#107,s#108,s#109])\n+      1: #219(#220=[s#221,s#222,s#223,s#224,s#225,s#226,s#227,s#228,s#229,s#230,s#231,s#232,s#233,s#234,s#235])\n         org.junit.jupiter.params.provider.ValueSource(\n           strings=[\"$\",\"$$\",\"{\",\"{{\",\"}\",\"}}\",\"{}\",\"{{}}\",\"*\",\"**\",\"\\\\\",\"\\\\\\\\\",\"${}*\\\\\",\"${ *hello* }\",\"\\\\$\\\\{ \\\\*hello\\\\* \\\\}\"]\n         )\n \n   private static void lambda$should_fail_when_value_is_null$1(dev.langchain4j.model.input.PromptTemplate, java.util.Map) throws java.lang.Throwable;\n     descriptor: (Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)V\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: invokevirtual #5                  // Method dev/langchain4j/model/input/PromptTemplate.apply:(Ljava/util/Map;)Ldev/langchain4j/model/input/Prompt;\n+         2: invokevirtual #21                 // Method dev/langchain4j/model/input/PromptTemplate.apply:(Ljava/util/Map;)Ldev/langchain4j/model/input/Prompt;\n          5: pop\n          6: return\n       LineNumberTable:\n         line 118: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0 promptTemplate   Ldev/langchain4j/model/input/PromptTemplate;\n@@ -834,34 +834,34 @@\n   private static void lambda$should_fail_when_value_is_missing$0(dev.langchain4j.model.input.PromptTemplate, java.util.Map) throws java.lang.Throwable;\n     descriptor: (Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)V\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: invokevirtual #5                  // Method dev/langchain4j/model/input/PromptTemplate.apply:(Ljava/util/Map;)Ldev/langchain4j/model/input/Prompt;\n+         2: invokevirtual #21                 // Method dev/langchain4j/model/input/PromptTemplate.apply:(Ljava/util/Map;)Ldev/langchain4j/model/input/Prompt;\n          5: pop\n          6: return\n       LineNumberTable:\n         line 103: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0 promptTemplate   Ldev/langchain4j/model/input/PromptTemplate;\n             0       7     1 variables   Ljava/util/Map;\n     Exceptions:\n       throws java.lang.Throwable\n }\n SourceFile: \"PromptTemplateTest.java\"\n-InnerClasses:\n-  public static #220= #219 of #258;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n-  public static final #264= #263 of #267; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n BootstrapMethods:\n-  0: #147 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  0: #245 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #148 ()V\n-      #149 REF_invokeStatic dev/langchain4j/model/input/PromptTemplateTest.lambda$should_fail_when_value_is_missing$0:(Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)V\n-      #148 ()V\n-  1: #147 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #252 ()V\n+      #253 REF_invokeStatic dev/langchain4j/model/input/PromptTemplateTest.lambda$should_fail_when_value_is_missing$0:(Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)V\n+      #252 ()V\n+  1: #245 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #148 ()V\n-      #157 REF_invokeStatic dev/langchain4j/model/input/PromptTemplateTest.lambda$should_fail_when_value_is_null$1:(Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)V\n-      #148 ()V\n+      #252 ()V\n+      #256 REF_invokeStatic dev/langchain4j/model/input/PromptTemplateTest.lambda$should_fail_when_value_is_null$1:(Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)V\n+      #252 ()V\n+InnerClasses:\n+  public static #264= #260 of #262;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n+  public static final #269= #265 of #267; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n"}]}, {"source1": "dev/langchain4j/model/input/PromptTest.class", "source2": "dev/langchain4j/model/input/PromptTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,176 +1,176 @@\n-  SHA-256 checksum 66801a494a58ebe04282692fe094316143494ff70dc5db86d3a779cd65a07df5\n+  SHA-256 checksum 28a171ccca67cfd6271fbea32280218fafb64822a98652cc0c88e451b04119c7\n   Compiled from \"PromptTest.java\"\n class dev.langchain4j.model.input.PromptTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #32                         // dev/langchain4j/model/input/PromptTest\n-  super_class: #28                        // java/lang/Object\n+  this_class: #10                         // dev/langchain4j/model/input/PromptTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 4, attributes: 3\n Constant pool:\n-    #1 = Methodref          #28.#56       // java/lang/Object.\"<init>\":()V\n-    #2 = Class              #57           // java/lang/IllegalArgumentException\n-    #3 = Methodref          #32.#58       // dev/langchain4j/model/input/PromptTest.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-    #4 = InvokeDynamic      #0:#63        // #0:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-    #5 = Methodref          #64.#65       // org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-    #6 = String             #66           // blank\n-    #7 = Methodref          #67.#68       // org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-    #8 = Class              #69           // dev/langchain4j/model/input/Prompt\n-    #9 = String             #70           // abc\n-   #10 = Methodref          #8.#71        // dev/langchain4j/model/input/Prompt.\"<init>\":(Ljava/lang/String;)V\n-   #11 = Methodref          #32.#72       // dev/langchain4j/model/input/PromptTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #12 = String             #73           // Prompt { text = \\\"abc\\\" }\n-   #13 = Methodref          #14.#74       // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-   #14 = Class              #75           // org/assertj/core/api/ObjectAssert\n-   #15 = Methodref          #8.#76        // dev/langchain4j/model/input/Prompt.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n-   #16 = Methodref          #14.#77       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #17 = Methodref          #8.#78        // dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n-   #18 = Methodref          #32.#79       // dev/langchain4j/model/input/PromptTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #19 = Methodref          #80.#81       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #20 = Methodref          #8.#82        // dev/langchain4j/model/input/Prompt.toSystemMessage:()Ldev/langchain4j/data/message/SystemMessage;\n-   #21 = Methodref          #83.#84       // dev/langchain4j/data/message/SystemMessage.systemMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n-   #22 = Methodref          #8.#85        // dev/langchain4j/model/input/Prompt.toUserMessage:()Ldev/langchain4j/data/message/UserMessage;\n-   #23 = Methodref          #86.#87       // dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-   #24 = Methodref          #8.#88        // dev/langchain4j/model/input/Prompt.toAiMessage:()Ldev/langchain4j/data/message/AiMessage;\n-   #25 = Methodref          #89.#90       // dev/langchain4j/data/message/AiMessage.aiMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n-   #26 = String             #91           // xyz\n-   #27 = Methodref          #14.#92       // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #28 = Class              #93           // java/lang/Object\n-   #29 = Methodref          #14.#94       // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #30 = Methodref          #14.#95       // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #31 = String             #96           //\n-   #32 = Class              #97           // dev/langchain4j/model/input/PromptTest\n-   #33 = Class              #98           // org/assertj/core/api/WithAssertions\n-   #34 = Utf8               <init>\n-   #35 = Utf8               ()V\n-   #36 = Utf8               Code\n-   #37 = Utf8               LineNumberTable\n-   #38 = Utf8               LocalVariableTable\n-   #39 = Utf8               this\n-   #40 = Utf8               Ldev/langchain4j/model/input/PromptTest;\n-   #41 = Utf8               test_constructor\n-   #42 = Utf8               p\n-   #43 = Utf8               Ldev/langchain4j/model/input/Prompt;\n-   #44 = Utf8               RuntimeVisibleAnnotations\n-   #45 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #46 = Utf8               test_equals_hashCode\n-   #47 = Utf8               p1\n-   #48 = Utf8               p2\n-   #49 = Utf8               p3\n-   #50 = Utf8               p4\n-   #51 = Utf8               lambda$test_constructor$0\n-   #52 = Utf8               Exceptions\n-   #53 = Class              #99           // java/lang/Throwable\n-   #54 = Utf8               SourceFile\n-   #55 = Utf8               PromptTest.java\n-   #56 = NameAndType        #34:#35       // \"<init>\":()V\n-   #57 = Utf8               java/lang/IllegalArgumentException\n-   #58 = NameAndType        #100:#101     // assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-   #59 = Utf8               BootstrapMethods\n-   #60 = MethodHandle       6:#102        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-   #61 = MethodType         #35           //  ()V\n-   #62 = MethodHandle       6:#103        // REF_invokeStatic dev/langchain4j/model/input/PromptTest.lambda$test_constructor$0:()V\n-   #63 = NameAndType        #104:#108     // call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #64 = Class              #109          // org/assertj/core/api/ThrowableTypeAssert\n-   #65 = NameAndType        #110:#111     // isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #66 = Utf8               blank\n-   #67 = Class              #112          // org/assertj/core/api/ThrowableAssertAlternative\n-   #68 = NameAndType        #113:#114     // withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #69 = Utf8               dev/langchain4j/model/input/Prompt\n-   #70 = Utf8               abc\n-   #71 = NameAndType        #34:#115      // \"<init>\":(Ljava/lang/String;)V\n-   #72 = NameAndType        #116:#117     // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #73 = Utf8               Prompt { text = \\\"abc\\\" }\n-   #74 = NameAndType        #118:#119     // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-   #75 = Utf8               org/assertj/core/api/ObjectAssert\n-   #76 = NameAndType        #120:#121     // from:(Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n-   #77 = NameAndType        #122:#123     // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #78 = NameAndType        #124:#125     // text:()Ljava/lang/String;\n-   #79 = NameAndType        #116:#126     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #80 = Class              #127          // org/assertj/core/api/AbstractStringAssert\n-   #81 = NameAndType        #122:#126     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #82 = NameAndType        #128:#129     // toSystemMessage:()Ldev/langchain4j/data/message/SystemMessage;\n-   #83 = Class              #130          // dev/langchain4j/data/message/SystemMessage\n-   #84 = NameAndType        #131:#132     // systemMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n-   #85 = NameAndType        #133:#134     // toUserMessage:()Ldev/langchain4j/data/message/UserMessage;\n-   #86 = Class              #135          // dev/langchain4j/data/message/UserMessage\n-   #87 = NameAndType        #136:#137     // userMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-   #88 = NameAndType        #138:#139     // toAiMessage:()Ldev/langchain4j/data/message/AiMessage;\n-   #89 = Class              #140          // dev/langchain4j/data/message/AiMessage\n-   #90 = NameAndType        #141:#142     // aiMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n-   #91 = Utf8               xyz\n-   #92 = NameAndType        #143:#123     // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #93 = Utf8               java/lang/Object\n-   #94 = NameAndType        #144:#123     // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #95 = NameAndType        #145:#123     // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #96 = Utf8\n-   #97 = Utf8               dev/langchain4j/model/input/PromptTest\n-   #98 = Utf8               org/assertj/core/api/WithAssertions\n-   #99 = Utf8               java/lang/Throwable\n-  #100 = Utf8               assertThatExceptionOfType\n-  #101 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-  #102 = Methodref          #146.#147     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #103 = Methodref          #32.#148      // dev/langchain4j/model/input/PromptTest.lambda$test_constructor$0:()V\n-  #104 = Utf8               call\n-  #105 = Class              #150          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #106 = Utf8               ThrowingCallable\n-  #107 = Utf8               InnerClasses\n-  #108 = Utf8               ()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-  #109 = Utf8               org/assertj/core/api/ThrowableTypeAssert\n-  #110 = Utf8               isThrownBy\n-  #111 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #112 = Utf8               org/assertj/core/api/ThrowableAssertAlternative\n-  #113 = Utf8               withMessageContaining\n-  #114 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #115 = Utf8               (Ljava/lang/String;)V\n-  #116 = Utf8               assertThat\n-  #117 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #118 = Utf8               hasToString\n-  #119 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-  #120 = Utf8               from\n-  #121 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n-  #122 = Utf8               isEqualTo\n-  #123 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #124 = Utf8               text\n-  #125 = Utf8               ()Ljava/lang/String;\n-  #126 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #127 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #128 = Utf8               toSystemMessage\n-  #129 = Utf8               ()Ldev/langchain4j/data/message/SystemMessage;\n-  #130 = Utf8               dev/langchain4j/data/message/SystemMessage\n-  #131 = Utf8               systemMessage\n-  #132 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n-  #133 = Utf8               toUserMessage\n-  #134 = Utf8               ()Ldev/langchain4j/data/message/UserMessage;\n-  #135 = Utf8               dev/langchain4j/data/message/UserMessage\n-  #136 = Utf8               userMessage\n-  #137 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-  #138 = Utf8               toAiMessage\n-  #139 = Utf8               ()Ldev/langchain4j/data/message/AiMessage;\n-  #140 = Utf8               dev/langchain4j/data/message/AiMessage\n-  #141 = Utf8               aiMessage\n-  #142 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n-  #143 = Utf8               isNotEqualTo\n-  #144 = Utf8               hasSameHashCodeAs\n-  #145 = Utf8               doesNotHaveSameHashCodeAs\n-  #146 = Class              #151          // java/lang/invoke/LambdaMetafactory\n-  #147 = NameAndType        #152:#155     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #148 = NameAndType        #51:#35       // lambda$test_constructor$0:()V\n-  #149 = Class              #156          // org/assertj/core/api/ThrowableAssert\n-  #150 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #151 = Utf8               java/lang/invoke/LambdaMetafactory\n-  #152 = Utf8               metafactory\n-  #153 = Class              #158          // java/lang/invoke/MethodHandles$Lookup\n-  #154 = Utf8               Lookup\n-  #155 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #156 = Utf8               org/assertj/core/api/ThrowableAssert\n-  #157 = Class              #159          // java/lang/invoke/MethodHandles\n-  #158 = Utf8               java/lang/invoke/MethodHandles$Lookup\n-  #159 = Utf8               java/lang/invoke/MethodHandles\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Class              #8            // java/lang/IllegalArgumentException\n+    #8 = Utf8               java/lang/IllegalArgumentException\n+    #9 = Methodref          #10.#11       // dev/langchain4j/model/input/PromptTest.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #10 = Class              #12           // dev/langchain4j/model/input/PromptTest\n+   #11 = NameAndType        #13:#14       // assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #12 = Utf8               dev/langchain4j/model/input/PromptTest\n+   #13 = Utf8               assertThatExceptionOfType\n+   #14 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #15 = InvokeDynamic      #0:#16        // #0:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #16 = NameAndType        #17:#18       // call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #17 = Utf8               call\n+   #18 = Utf8               ()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #19 = Methodref          #20.#21       // org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #20 = Class              #22           // org/assertj/core/api/ThrowableTypeAssert\n+   #21 = NameAndType        #23:#24       // isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #22 = Utf8               org/assertj/core/api/ThrowableTypeAssert\n+   #23 = Utf8               isThrownBy\n+   #24 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #25 = String             #26           // blank\n+   #26 = Utf8               blank\n+   #27 = Methodref          #28.#29       // org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #28 = Class              #30           // org/assertj/core/api/ThrowableAssertAlternative\n+   #29 = NameAndType        #31:#32       // withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #30 = Utf8               org/assertj/core/api/ThrowableAssertAlternative\n+   #31 = Utf8               withMessageContaining\n+   #32 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #33 = Class              #34           // dev/langchain4j/model/input/Prompt\n+   #34 = Utf8               dev/langchain4j/model/input/Prompt\n+   #35 = String             #36           // abc\n+   #36 = Utf8               abc\n+   #37 = Methodref          #33.#38       // dev/langchain4j/model/input/Prompt.\"<init>\":(Ljava/lang/String;)V\n+   #38 = NameAndType        #5:#39        // \"<init>\":(Ljava/lang/String;)V\n+   #39 = Utf8               (Ljava/lang/String;)V\n+   #40 = Methodref          #10.#41       // dev/langchain4j/model/input/PromptTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #41 = NameAndType        #42:#43       // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #42 = Utf8               assertThat\n+   #43 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #44 = String             #45           // Prompt { text = \\\"abc\\\" }\n+   #45 = Utf8               Prompt { text = \\\"abc\\\" }\n+   #46 = Methodref          #47.#48       // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #47 = Class              #49           // org/assertj/core/api/ObjectAssert\n+   #48 = NameAndType        #50:#51       // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #49 = Utf8               org/assertj/core/api/ObjectAssert\n+   #50 = Utf8               hasToString\n+   #51 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #52 = Methodref          #33.#53       // dev/langchain4j/model/input/Prompt.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n+   #53 = NameAndType        #54:#55       // from:(Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n+   #54 = Utf8               from\n+   #55 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n+   #56 = Methodref          #47.#57       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #57 = NameAndType        #58:#59       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #58 = Utf8               isEqualTo\n+   #59 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #60 = Methodref          #33.#61       // dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n+   #61 = NameAndType        #62:#63       // text:()Ljava/lang/String;\n+   #62 = Utf8               text\n+   #63 = Utf8               ()Ljava/lang/String;\n+   #64 = Methodref          #10.#65       // dev/langchain4j/model/input/PromptTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #65 = NameAndType        #42:#66       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #66 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #67 = Methodref          #68.#69       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #68 = Class              #70           // org/assertj/core/api/AbstractStringAssert\n+   #69 = NameAndType        #58:#66       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #70 = Utf8               org/assertj/core/api/AbstractStringAssert\n+   #71 = Methodref          #33.#72       // dev/langchain4j/model/input/Prompt.toSystemMessage:()Ldev/langchain4j/data/message/SystemMessage;\n+   #72 = NameAndType        #73:#74       // toSystemMessage:()Ldev/langchain4j/data/message/SystemMessage;\n+   #73 = Utf8               toSystemMessage\n+   #74 = Utf8               ()Ldev/langchain4j/data/message/SystemMessage;\n+   #75 = Methodref          #76.#77       // dev/langchain4j/data/message/SystemMessage.systemMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n+   #76 = Class              #78           // dev/langchain4j/data/message/SystemMessage\n+   #77 = NameAndType        #79:#80       // systemMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n+   #78 = Utf8               dev/langchain4j/data/message/SystemMessage\n+   #79 = Utf8               systemMessage\n+   #80 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n+   #81 = Methodref          #33.#82       // dev/langchain4j/model/input/Prompt.toUserMessage:()Ldev/langchain4j/data/message/UserMessage;\n+   #82 = NameAndType        #83:#84       // toUserMessage:()Ldev/langchain4j/data/message/UserMessage;\n+   #83 = Utf8               toUserMessage\n+   #84 = Utf8               ()Ldev/langchain4j/data/message/UserMessage;\n+   #85 = Methodref          #86.#87       // dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+   #86 = Class              #88           // dev/langchain4j/data/message/UserMessage\n+   #87 = NameAndType        #89:#90       // userMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+   #88 = Utf8               dev/langchain4j/data/message/UserMessage\n+   #89 = Utf8               userMessage\n+   #90 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+   #91 = Methodref          #33.#92       // dev/langchain4j/model/input/Prompt.toAiMessage:()Ldev/langchain4j/data/message/AiMessage;\n+   #92 = NameAndType        #93:#94       // toAiMessage:()Ldev/langchain4j/data/message/AiMessage;\n+   #93 = Utf8               toAiMessage\n+   #94 = Utf8               ()Ldev/langchain4j/data/message/AiMessage;\n+   #95 = Methodref          #96.#97       // dev/langchain4j/data/message/AiMessage.aiMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+   #96 = Class              #98           // dev/langchain4j/data/message/AiMessage\n+   #97 = NameAndType        #99:#100      // aiMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+   #98 = Utf8               dev/langchain4j/data/message/AiMessage\n+   #99 = Utf8               aiMessage\n+  #100 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+  #101 = String             #102          // xyz\n+  #102 = Utf8               xyz\n+  #103 = Methodref          #47.#104      // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #104 = NameAndType        #105:#59      // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #105 = Utf8               isNotEqualTo\n+  #106 = Methodref          #47.#107      // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #107 = NameAndType        #108:#59      // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #108 = Utf8               hasSameHashCodeAs\n+  #109 = Methodref          #47.#110      // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #110 = NameAndType        #111:#59      // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #111 = Utf8               doesNotHaveSameHashCodeAs\n+  #112 = String             #113          //\n+  #113 = Utf8\n+  #114 = Class              #115          // org/assertj/core/api/WithAssertions\n+  #115 = Utf8               org/assertj/core/api/WithAssertions\n+  #116 = Utf8               Code\n+  #117 = Utf8               LineNumberTable\n+  #118 = Utf8               LocalVariableTable\n+  #119 = Utf8               this\n+  #120 = Utf8               Ldev/langchain4j/model/input/PromptTest;\n+  #121 = Utf8               test_constructor\n+  #122 = Utf8               p\n+  #123 = Utf8               Ldev/langchain4j/model/input/Prompt;\n+  #124 = Utf8               RuntimeVisibleAnnotations\n+  #125 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #126 = Utf8               test_equals_hashCode\n+  #127 = Utf8               p1\n+  #128 = Utf8               p2\n+  #129 = Utf8               p3\n+  #130 = Utf8               p4\n+  #131 = Utf8               lambda$test_constructor$0\n+  #132 = Utf8               Exceptions\n+  #133 = Class              #134          // java/lang/Throwable\n+  #134 = Utf8               java/lang/Throwable\n+  #135 = Utf8               SourceFile\n+  #136 = Utf8               PromptTest.java\n+  #137 = Utf8               BootstrapMethods\n+  #138 = MethodHandle       6:#139        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #139 = Methodref          #140.#141     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #140 = Class              #142          // java/lang/invoke/LambdaMetafactory\n+  #141 = NameAndType        #143:#144     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #142 = Utf8               java/lang/invoke/LambdaMetafactory\n+  #143 = Utf8               metafactory\n+  #144 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #145 = MethodType         #6            //  ()V\n+  #146 = MethodHandle       6:#147        // REF_invokeStatic dev/langchain4j/model/input/PromptTest.lambda$test_constructor$0:()V\n+  #147 = Methodref          #10.#148      // dev/langchain4j/model/input/PromptTest.lambda$test_constructor$0:()V\n+  #148 = NameAndType        #131:#6       // lambda$test_constructor$0:()V\n+  #149 = Utf8               InnerClasses\n+  #150 = Class              #151          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n+  #151 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n+  #152 = Class              #153          // org/assertj/core/api/ThrowableAssert\n+  #153 = Utf8               org/assertj/core/api/ThrowableAssert\n+  #154 = Utf8               ThrowingCallable\n+  #155 = Class              #156          // java/lang/invoke/MethodHandles$Lookup\n+  #156 = Utf8               java/lang/invoke/MethodHandles$Lookup\n+  #157 = Class              #158          // java/lang/invoke/MethodHandles\n+  #158 = Utf8               java/lang/invoke/MethodHandles\n+  #159 = Utf8               Lookup\n {\n   dev.langchain4j.model.input.PromptTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -184,66 +184,66 @@\n \n   public void test_constructor();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=2, args_size=1\n          0: aload_0\n-         1: ldc           #2                  // class java/lang/IllegalArgumentException\n-         3: invokevirtual #3                  // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-         6: invokedynamic #4,  0              // InvokeDynamic #0:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-        11: invokevirtual #5                  // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-        14: ldc           #6                  // String blank\n-        16: invokevirtual #7                  // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+         1: ldc           #7                  // class java/lang/IllegalArgumentException\n+         3: invokevirtual #9                  // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+         6: invokedynamic #15,  0             // InvokeDynamic #0:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+        11: invokevirtual #19                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        14: ldc           #25                 // String blank\n+        16: invokevirtual #27                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n         19: pop\n-        20: new           #8                  // class dev/langchain4j/model/input/Prompt\n+        20: new           #33                 // class dev/langchain4j/model/input/Prompt\n         23: dup\n-        24: ldc           #9                  // String abc\n-        26: invokespecial #10                 // Method dev/langchain4j/model/input/Prompt.\"<init>\":(Ljava/lang/String;)V\n+        24: ldc           #35                 // String abc\n+        26: invokespecial #37                 // Method dev/langchain4j/model/input/Prompt.\"<init>\":(Ljava/lang/String;)V\n         29: astore_1\n         30: aload_0\n         31: aload_1\n-        32: invokevirtual #11                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        35: ldc           #12                 // String Prompt { text = \\\"abc\\\" }\n-        37: invokevirtual #13                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-        40: checkcast     #14                 // class org/assertj/core/api/ObjectAssert\n-        43: ldc           #9                  // String abc\n-        45: invokestatic  #15                 // Method dev/langchain4j/model/input/Prompt.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n-        48: invokevirtual #16                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        32: invokevirtual #40                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        35: ldc           #44                 // String Prompt { text = \\\"abc\\\" }\n+        37: invokevirtual #46                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+        40: checkcast     #47                 // class org/assertj/core/api/ObjectAssert\n+        43: ldc           #35                 // String abc\n+        45: invokestatic  #52                 // Method dev/langchain4j/model/input/Prompt.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n+        48: invokevirtual #56                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         51: pop\n         52: aload_0\n         53: aload_1\n-        54: invokevirtual #17                 // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n-        57: invokevirtual #18                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        60: ldc           #9                  // String abc\n-        62: invokevirtual #19                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        54: invokevirtual #60                 // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n+        57: invokevirtual #64                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        60: ldc           #35                 // String abc\n+        62: invokevirtual #67                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         65: pop\n         66: aload_0\n         67: aload_1\n-        68: invokevirtual #20                 // Method dev/langchain4j/model/input/Prompt.toSystemMessage:()Ldev/langchain4j/data/message/SystemMessage;\n-        71: invokevirtual #11                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        74: ldc           #9                  // String abc\n-        76: invokestatic  #21                 // Method dev/langchain4j/data/message/SystemMessage.systemMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n-        79: invokevirtual #16                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        68: invokevirtual #71                 // Method dev/langchain4j/model/input/Prompt.toSystemMessage:()Ldev/langchain4j/data/message/SystemMessage;\n+        71: invokevirtual #40                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        74: ldc           #35                 // String abc\n+        76: invokestatic  #75                 // Method dev/langchain4j/data/message/SystemMessage.systemMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n+        79: invokevirtual #56                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         82: pop\n         83: aload_0\n         84: aload_1\n-        85: invokevirtual #22                 // Method dev/langchain4j/model/input/Prompt.toUserMessage:()Ldev/langchain4j/data/message/UserMessage;\n-        88: invokevirtual #11                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        91: ldc           #9                  // String abc\n-        93: invokestatic  #23                 // Method dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-        96: invokevirtual #16                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        85: invokevirtual #81                 // Method dev/langchain4j/model/input/Prompt.toUserMessage:()Ldev/langchain4j/data/message/UserMessage;\n+        88: invokevirtual #40                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        91: ldc           #35                 // String abc\n+        93: invokestatic  #85                 // Method dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+        96: invokevirtual #56                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         99: pop\n        100: aload_0\n        101: aload_1\n-       102: invokevirtual #24                 // Method dev/langchain4j/model/input/Prompt.toAiMessage:()Ldev/langchain4j/data/message/AiMessage;\n-       105: invokevirtual #11                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-       108: ldc           #9                  // String abc\n-       110: invokestatic  #25                 // Method dev/langchain4j/data/message/AiMessage.aiMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n-       113: invokevirtual #16                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       102: invokevirtual #91                 // Method dev/langchain4j/model/input/Prompt.toAiMessage:()Ldev/langchain4j/data/message/AiMessage;\n+       105: invokevirtual #40                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       108: ldc           #35                 // String abc\n+       110: invokestatic  #95                 // Method dev/langchain4j/data/message/AiMessage.aiMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+       113: invokevirtual #56                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        116: pop\n        117: return\n       LineNumberTable:\n         line 13: 0\n         line 14: 11\n         line 15: 16\n         line 17: 20\n@@ -259,74 +259,74 @@\n         line 28: 110\n         line 29: 117\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     118     0  this   Ldev/langchain4j/model/input/PromptTest;\n            30      88     1     p   Ldev/langchain4j/model/input/Prompt;\n     RuntimeVisibleAnnotations:\n-      0: #45()\n+      0: #125()\n         org.junit.jupiter.api.Test\n \n   public void test_equals_hashCode();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=5, args_size=1\n-         0: ldc           #9                  // String abc\n-         2: invokestatic  #15                 // Method dev/langchain4j/model/input/Prompt.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n+         0: ldc           #35                 // String abc\n+         2: invokestatic  #52                 // Method dev/langchain4j/model/input/Prompt.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n          5: astore_1\n-         6: ldc           #9                  // String abc\n-         8: invokestatic  #15                 // Method dev/langchain4j/model/input/Prompt.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n+         6: ldc           #35                 // String abc\n+         8: invokestatic  #52                 // Method dev/langchain4j/model/input/Prompt.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n         11: astore_2\n-        12: ldc           #26                 // String xyz\n-        14: invokestatic  #15                 // Method dev/langchain4j/model/input/Prompt.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n+        12: ldc           #101                // String xyz\n+        14: invokestatic  #52                 // Method dev/langchain4j/model/input/Prompt.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n         17: astore_3\n-        18: ldc           #26                 // String xyz\n-        20: invokestatic  #15                 // Method dev/langchain4j/model/input/Prompt.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n+        18: ldc           #101                // String xyz\n+        20: invokestatic  #52                 // Method dev/langchain4j/model/input/Prompt.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n         23: astore        4\n         25: aload_0\n         26: aload_1\n-        27: invokevirtual #11                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        27: invokevirtual #40                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         30: aconst_null\n-        31: invokevirtual #27                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        34: checkcast     #14                 // class org/assertj/core/api/ObjectAssert\n-        37: new           #28                 // class java/lang/Object\n+        31: invokevirtual #103                // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        34: checkcast     #47                 // class org/assertj/core/api/ObjectAssert\n+        37: new           #2                  // class java/lang/Object\n         40: dup\n         41: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n-        44: invokevirtual #27                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        47: checkcast     #14                 // class org/assertj/core/api/ObjectAssert\n+        44: invokevirtual #103                // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        47: checkcast     #47                 // class org/assertj/core/api/ObjectAssert\n         50: aload_1\n-        51: invokevirtual #16                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        54: checkcast     #14                 // class org/assertj/core/api/ObjectAssert\n+        51: invokevirtual #56                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        54: checkcast     #47                 // class org/assertj/core/api/ObjectAssert\n         57: aload_1\n-        58: invokevirtual #29                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        61: checkcast     #14                 // class org/assertj/core/api/ObjectAssert\n+        58: invokevirtual #106                // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        61: checkcast     #47                 // class org/assertj/core/api/ObjectAssert\n         64: aload_2\n-        65: invokevirtual #16                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        68: checkcast     #14                 // class org/assertj/core/api/ObjectAssert\n+        65: invokevirtual #56                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        68: checkcast     #47                 // class org/assertj/core/api/ObjectAssert\n         71: aload_2\n-        72: invokevirtual #29                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        75: checkcast     #14                 // class org/assertj/core/api/ObjectAssert\n+        72: invokevirtual #106                // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        75: checkcast     #47                 // class org/assertj/core/api/ObjectAssert\n         78: aload_3\n-        79: invokevirtual #27                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        82: checkcast     #14                 // class org/assertj/core/api/ObjectAssert\n+        79: invokevirtual #103                // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        82: checkcast     #47                 // class org/assertj/core/api/ObjectAssert\n         85: aload_3\n-        86: invokevirtual #30                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        86: invokevirtual #109                // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         89: pop\n         90: aload_0\n         91: aload_3\n-        92: invokevirtual #11                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        92: invokevirtual #40                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         95: aload_3\n-        96: invokevirtual #16                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        99: checkcast     #14                 // class org/assertj/core/api/ObjectAssert\n+        96: invokevirtual #56                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        99: checkcast     #47                 // class org/assertj/core/api/ObjectAssert\n        102: aload         4\n-       104: invokevirtual #16                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       107: checkcast     #14                 // class org/assertj/core/api/ObjectAssert\n+       104: invokevirtual #56                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       107: checkcast     #47                 // class org/assertj/core/api/ObjectAssert\n        110: aload         4\n-       112: invokevirtual #29                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       112: invokevirtual #106                // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        115: pop\n        116: return\n       LineNumberTable:\n         line 33: 0\n         line 34: 6\n         line 36: 12\n         line 37: 18\n@@ -348,36 +348,36 @@\n         Start  Length  Slot  Name   Signature\n             0     117     0  this   Ldev/langchain4j/model/input/PromptTest;\n             6     111     1    p1   Ldev/langchain4j/model/input/Prompt;\n            12     105     2    p2   Ldev/langchain4j/model/input/Prompt;\n            18      99     3    p3   Ldev/langchain4j/model/input/Prompt;\n            25      92     4    p4   Ldev/langchain4j/model/input/Prompt;\n     RuntimeVisibleAnnotations:\n-      0: #45()\n+      0: #125()\n         org.junit.jupiter.api.Test\n \n   private static void lambda$test_constructor$0() throws java.lang.Throwable;\n     descriptor: ()V\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=3, locals=0, args_size=0\n-         0: new           #8                  // class dev/langchain4j/model/input/Prompt\n+         0: new           #33                 // class dev/langchain4j/model/input/Prompt\n          3: dup\n-         4: ldc           #31                 // String\n-         6: invokespecial #10                 // Method dev/langchain4j/model/input/Prompt.\"<init>\":(Ljava/lang/String;)V\n+         4: ldc           #112                // String\n+         6: invokespecial #37                 // Method dev/langchain4j/model/input/Prompt.\"<init>\":(Ljava/lang/String;)V\n          9: pop\n         10: return\n       LineNumberTable:\n         line 14: 0\n     Exceptions:\n       throws java.lang.Throwable\n }\n SourceFile: \"PromptTest.java\"\n-InnerClasses:\n-  public static #106= #105 of #149;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n-  public static final #154= #153 of #157; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n BootstrapMethods:\n-  0: #60 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  0: #138 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #61 ()V\n-      #62 REF_invokeStatic dev/langchain4j/model/input/PromptTest.lambda$test_constructor$0:()V\n-      #61 ()V\n+      #145 ()V\n+      #146 REF_invokeStatic dev/langchain4j/model/input/PromptTest.lambda$test_constructor$0:()V\n+      #145 ()V\n+InnerClasses:\n+  public static #154= #150 of #152;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n+  public static final #159= #155 of #157; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n"}]}, {"source1": "dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$BrokenPrompt.class", "source2": "dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$BrokenPrompt.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,71 +1,71 @@\n-  SHA-256 checksum 3ab9d0d6c203c6679fadd654593a6fa96d6d9f897c052cd86839932fa7bda96c\n+  SHA-256 checksum 3f77fb5c278a4c24289ee138e85a13fb3e59fc48b6c89b3a0b6bc591926e6f8b\n   Compiled from \"DefaultStructuredPromptFactoryTest.java\"\n class dev.langchain4j.model.input.structured.DefaultStructuredPromptFactoryTest$BrokenPrompt\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #3                          // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$BrokenPrompt\n-  super_class: #4                         // java/lang/Object\n+  this_class: #8                          // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$BrokenPrompt\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 1, methods: 1, attributes: 3\n Constant pool:\n-   #1 = Methodref          #4.#22         // java/lang/Object.\"<init>\":()V\n-   #2 = Fieldref           #3.#23         // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$BrokenPrompt.name:Ljava/lang/String;\n-   #3 = Class              #25            // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$BrokenPrompt\n-   #4 = Class              #26            // java/lang/Object\n-   #5 = Utf8               name\n-   #6 = Utf8               Ljava/lang/String;\n-   #7 = Utf8               <init>\n-   #8 = Utf8               (Ljava/lang/String;)V\n-   #9 = Utf8               Code\n-  #10 = Utf8               LineNumberTable\n-  #11 = Utf8               LocalVariableTable\n-  #12 = Utf8               this\n-  #13 = Utf8               BrokenPrompt\n-  #14 = Utf8               InnerClasses\n-  #15 = Utf8               Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$BrokenPrompt;\n-  #16 = Utf8               SourceFile\n-  #17 = Utf8               DefaultStructuredPromptFactoryTest.java\n-  #18 = Utf8               RuntimeVisibleAnnotations\n-  #19 = Utf8               Ldev/langchain4j/model/input/structured/StructuredPrompt;\n-  #20 = Utf8               value\n-  #21 = Utf8               Hello, my name is {{broken}}\n-  #22 = NameAndType        #7:#27         // \"<init>\":()V\n-  #23 = NameAndType        #5:#6          // name:Ljava/lang/String;\n-  #24 = Class              #28            // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest\n-  #25 = Utf8               dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$BrokenPrompt\n-  #26 = Utf8               java/lang/Object\n-  #27 = Utf8               ()V\n-  #28 = Utf8               dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Fieldref           #8.#9          // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$BrokenPrompt.name:Ljava/lang/String;\n+   #8 = Class              #10            // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$BrokenPrompt\n+   #9 = NameAndType        #11:#12        // name:Ljava/lang/String;\n+  #10 = Utf8               dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$BrokenPrompt\n+  #11 = Utf8               name\n+  #12 = Utf8               Ljava/lang/String;\n+  #13 = Utf8               (Ljava/lang/String;)V\n+  #14 = Utf8               Code\n+  #15 = Utf8               LineNumberTable\n+  #16 = Utf8               LocalVariableTable\n+  #17 = Utf8               this\n+  #18 = Utf8               Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$BrokenPrompt;\n+  #19 = Utf8               SourceFile\n+  #20 = Utf8               DefaultStructuredPromptFactoryTest.java\n+  #21 = Utf8               RuntimeVisibleAnnotations\n+  #22 = Utf8               Ldev/langchain4j/model/input/structured/StructuredPrompt;\n+  #23 = Utf8               value\n+  #24 = Utf8               Hello, my name is {{broken}}\n+  #25 = Utf8               InnerClasses\n+  #26 = Class              #27            // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest\n+  #27 = Utf8               dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest\n+  #28 = Utf8               BrokenPrompt\n {\n   public final java.lang.String name;\n     descriptor: Ljava/lang/String;\n     flags: (0x0011) ACC_PUBLIC, ACC_FINAL\n \n   public dev.langchain4j.model.input.structured.DefaultStructuredPromptFactoryTest$BrokenPrompt(java.lang.String);\n     descriptor: (Ljava/lang/String;)V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n          4: aload_0\n          5: aload_1\n-         6: putfield      #2                  // Field name:Ljava/lang/String;\n+         6: putfield      #7                  // Field name:Ljava/lang/String;\n          9: return\n       LineNumberTable:\n         line 22: 0\n         line 23: 4\n         line 24: 9\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      10     0  this   Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$BrokenPrompt;\n             0      10     1  name   Ljava/lang/String;\n }\n SourceFile: \"DefaultStructuredPromptFactoryTest.java\"\n RuntimeVisibleAnnotations:\n-  0: #19(#20=[s#21])\n+  0: #22(#23=[s#24])\n     dev.langchain4j.model.input.structured.StructuredPrompt(\n       value=[\"Hello, my name is {{broken}}\"]\n     )\n InnerClasses:\n-  static #13= #3 of #24;                  // BrokenPrompt=class dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$BrokenPrompt of class dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest\n+  static #28= #8 of #26;                  // BrokenPrompt=class dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$BrokenPrompt of class dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest\n"}]}, {"source1": "dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$Greeting.class", "source2": "dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$Greeting.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,71 +1,71 @@\n-  SHA-256 checksum b33a039a3b677139fbe2ecc83a2b8ba2f54eb4121abb3e9178fef56d654dda7f\n+  SHA-256 checksum ac0c17f622a56a47003e0dac320e355b05549bf03d2adbf0a4d3086816e3f2d4\n   Compiled from \"DefaultStructuredPromptFactoryTest.java\"\n class dev.langchain4j.model.input.structured.DefaultStructuredPromptFactoryTest$Greeting\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #3                          // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$Greeting\n-  super_class: #4                         // java/lang/Object\n+  this_class: #8                          // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$Greeting\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 1, methods: 1, attributes: 3\n Constant pool:\n-   #1 = Methodref          #4.#22         // java/lang/Object.\"<init>\":()V\n-   #2 = Fieldref           #3.#23         // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$Greeting.name:Ljava/lang/String;\n-   #3 = Class              #25            // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$Greeting\n-   #4 = Class              #26            // java/lang/Object\n-   #5 = Utf8               name\n-   #6 = Utf8               Ljava/lang/String;\n-   #7 = Utf8               <init>\n-   #8 = Utf8               (Ljava/lang/String;)V\n-   #9 = Utf8               Code\n-  #10 = Utf8               LineNumberTable\n-  #11 = Utf8               LocalVariableTable\n-  #12 = Utf8               this\n-  #13 = Utf8               Greeting\n-  #14 = Utf8               InnerClasses\n-  #15 = Utf8               Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$Greeting;\n-  #16 = Utf8               SourceFile\n-  #17 = Utf8               DefaultStructuredPromptFactoryTest.java\n-  #18 = Utf8               RuntimeVisibleAnnotations\n-  #19 = Utf8               Ldev/langchain4j/model/input/structured/StructuredPrompt;\n-  #20 = Utf8               value\n-  #21 = Utf8               Hello, my name is {{name}}\n-  #22 = NameAndType        #7:#27         // \"<init>\":()V\n-  #23 = NameAndType        #5:#6          // name:Ljava/lang/String;\n-  #24 = Class              #28            // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest\n-  #25 = Utf8               dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$Greeting\n-  #26 = Utf8               java/lang/Object\n-  #27 = Utf8               ()V\n-  #28 = Utf8               dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Fieldref           #8.#9          // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$Greeting.name:Ljava/lang/String;\n+   #8 = Class              #10            // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$Greeting\n+   #9 = NameAndType        #11:#12        // name:Ljava/lang/String;\n+  #10 = Utf8               dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$Greeting\n+  #11 = Utf8               name\n+  #12 = Utf8               Ljava/lang/String;\n+  #13 = Utf8               (Ljava/lang/String;)V\n+  #14 = Utf8               Code\n+  #15 = Utf8               LineNumberTable\n+  #16 = Utf8               LocalVariableTable\n+  #17 = Utf8               this\n+  #18 = Utf8               Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$Greeting;\n+  #19 = Utf8               SourceFile\n+  #20 = Utf8               DefaultStructuredPromptFactoryTest.java\n+  #21 = Utf8               RuntimeVisibleAnnotations\n+  #22 = Utf8               Ldev/langchain4j/model/input/structured/StructuredPrompt;\n+  #23 = Utf8               value\n+  #24 = Utf8               Hello, my name is {{name}}\n+  #25 = Utf8               InnerClasses\n+  #26 = Class              #27            // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest\n+  #27 = Utf8               dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest\n+  #28 = Utf8               Greeting\n {\n   public final java.lang.String name;\n     descriptor: Ljava/lang/String;\n     flags: (0x0011) ACC_PUBLIC, ACC_FINAL\n \n   public dev.langchain4j.model.input.structured.DefaultStructuredPromptFactoryTest$Greeting(java.lang.String);\n     descriptor: (Ljava/lang/String;)V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n          4: aload_0\n          5: aload_1\n-         6: putfield      #2                  // Field name:Ljava/lang/String;\n+         6: putfield      #7                  // Field name:Ljava/lang/String;\n          9: return\n       LineNumberTable:\n         line 13: 0\n         line 14: 4\n         line 15: 9\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      10     0  this   Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$Greeting;\n             0      10     1  name   Ljava/lang/String;\n }\n SourceFile: \"DefaultStructuredPromptFactoryTest.java\"\n RuntimeVisibleAnnotations:\n-  0: #19(#20=[s#21])\n+  0: #22(#23=[s#24])\n     dev.langchain4j.model.input.structured.StructuredPrompt(\n       value=[\"Hello, my name is {{name}}\"]\n     )\n InnerClasses:\n-  static #13= #3 of #24;                  // Greeting=class dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$Greeting of class dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest\n+  static #28= #8 of #26;                  // Greeting=class dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$Greeting of class dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest\n"}]}, {"source1": "dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest.class", "source2": "dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,145 +1,145 @@\n-  SHA-256 checksum ba55bb3177272e7df3cb56f9443cd59b901567741b31414dcf39530e16f8b9a2\n+  SHA-256 checksum 0af11cb6d347cc315a1282bcc78e866e03729daab6c34bd3bef2941d34091eee\n   Compiled from \"DefaultStructuredPromptFactoryTest.java\"\n class dev.langchain4j.model.input.structured.DefaultStructuredPromptFactoryTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #25                         // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest\n-  super_class: #24                        // java/lang/Object\n+  this_class: #28                         // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 7, attributes: 3\n Constant pool:\n-    #1 = Methodref          #24.#54       // java/lang/Object.\"<init>\":()V\n-    #2 = Class              #55           // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactory\n-    #3 = Methodref          #2.#54        // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactory.\"<init>\":()V\n-    #4 = Class              #56           // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$Greeting\n-    #5 = String             #57           // Klaus\n-    #6 = Methodref          #4.#58        // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$Greeting.\"<init>\":(Ljava/lang/String;)V\n-    #7 = Methodref          #2.#59        // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactory.toPrompt:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n-    #8 = Methodref          #60.#61       // dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n-    #9 = Methodref          #25.#62       // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #10 = String             #63           // Hello, my name is Klaus\n-   #11 = Methodref          #64.#65       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #12 = Class              #66           // java/lang/IllegalArgumentException\n-   #13 = Methodref          #25.#67       // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-   #14 = InvokeDynamic      #0:#72        // #0:call:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #15 = Methodref          #73.#74       // org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #16 = String             #75           // structuredPrompt cannot be null\n-   #17 = Methodref          #76.#77       // org/assertj/core/api/ThrowableAssertAlternative.withMessage:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #18 = InvokeDynamic      #1:#72        // #1:call:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #19 = String             #79           // java.lang.Object should be annotated with @StructuredPrompt to be used as a structured prompt\n-   #20 = InvokeDynamic      #2:#72        // #2:call:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #21 = String             #81           // Value for the variable \\'broken\\' is missing\n-   #22 = Class              #82           // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$BrokenPrompt\n-   #23 = Methodref          #22.#58       // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$BrokenPrompt.\"<init>\":(Ljava/lang/String;)V\n-   #24 = Class              #83           // java/lang/Object\n-   #25 = Class              #84           // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest\n-   #26 = Class              #85           // org/assertj/core/api/WithAssertions\n-   #27 = Utf8               BrokenPrompt\n-   #28 = Utf8               InnerClasses\n-   #29 = Utf8               Greeting\n-   #30 = Utf8               <init>\n-   #31 = Utf8               ()V\n-   #32 = Utf8               Code\n-   #33 = Utf8               LineNumberTable\n-   #34 = Utf8               LocalVariableTable\n-   #35 = Utf8               this\n-   #36 = Utf8               Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest;\n-   #37 = Utf8               test\n-   #38 = Utf8               factory\n-   #39 = Utf8               Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;\n-   #40 = Utf8               p\n-   #41 = Utf8               Ldev/langchain4j/model/input/Prompt;\n-   #42 = Utf8               RuntimeVisibleAnnotations\n-   #43 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #44 = Utf8               test_bad_input\n-   #45 = Utf8               test_brokenPrompt\n-   #46 = Utf8               lambda$test_brokenPrompt$2\n-   #47 = Utf8               (Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n-   #48 = Utf8               Exceptions\n-   #49 = Class              #86           // java/lang/Throwable\n-   #50 = Utf8               lambda$test_bad_input$1\n-   #51 = Utf8               lambda$test_bad_input$0\n-   #52 = Utf8               SourceFile\n-   #53 = Utf8               DefaultStructuredPromptFactoryTest.java\n-   #54 = NameAndType        #30:#31       // \"<init>\":()V\n-   #55 = Utf8               dev/langchain4j/model/input/structured/DefaultStructuredPromptFactory\n-   #56 = Utf8               dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$Greeting\n-   #57 = Utf8               Klaus\n-   #58 = NameAndType        #30:#87       // \"<init>\":(Ljava/lang/String;)V\n-   #59 = NameAndType        #88:#89       // toPrompt:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n-   #60 = Class              #90           // dev/langchain4j/model/input/Prompt\n-   #61 = NameAndType        #91:#92       // text:()Ljava/lang/String;\n-   #62 = NameAndType        #93:#94       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #63 = Utf8               Hello, my name is Klaus\n-   #64 = Class              #95           // org/assertj/core/api/AbstractStringAssert\n-   #65 = NameAndType        #96:#94       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #66 = Utf8               java/lang/IllegalArgumentException\n-   #67 = NameAndType        #97:#98       // assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-   #68 = Utf8               BootstrapMethods\n-   #69 = MethodHandle       6:#99         // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-   #70 = MethodType         #31           //  ()V\n-   #71 = MethodHandle       6:#100        // REF_invokeStatic dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest.lambda$test_bad_input$0:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n-   #72 = NameAndType        #101:#104     // call:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #73 = Class              #105          // org/assertj/core/api/ThrowableTypeAssert\n-   #74 = NameAndType        #106:#107     // isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #75 = Utf8               structuredPrompt cannot be null\n-   #76 = Class              #108          // org/assertj/core/api/ThrowableAssertAlternative\n-   #77 = NameAndType        #109:#110     // withMessage:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #78 = MethodHandle       6:#111        // REF_invokeStatic dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest.lambda$test_bad_input$1:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n-   #79 = Utf8               java.lang.Object should be annotated with @StructuredPrompt to be used as a structured prompt\n-   #80 = MethodHandle       6:#112        // REF_invokeStatic dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest.lambda$test_brokenPrompt$2:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n-   #81 = Utf8               Value for the variable \\'broken\\' is missing\n-   #82 = Utf8               dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$BrokenPrompt\n-   #83 = Utf8               java/lang/Object\n-   #84 = Utf8               dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest\n-   #85 = Utf8               org/assertj/core/api/WithAssertions\n-   #86 = Utf8               java/lang/Throwable\n-   #87 = Utf8               (Ljava/lang/String;)V\n-   #88 = Utf8               toPrompt\n-   #89 = Utf8               (Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n-   #90 = Utf8               dev/langchain4j/model/input/Prompt\n-   #91 = Utf8               text\n-   #92 = Utf8               ()Ljava/lang/String;\n-   #93 = Utf8               assertThat\n-   #94 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #95 = Utf8               org/assertj/core/api/AbstractStringAssert\n-   #96 = Utf8               isEqualTo\n-   #97 = Utf8               assertThatExceptionOfType\n-   #98 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-   #99 = Methodref          #113.#114     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #100 = Methodref          #25.#115      // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest.lambda$test_bad_input$0:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n-  #101 = Utf8               call\n-  #102 = Class              #117          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #103 = Utf8               ThrowingCallable\n-  #104 = Utf8               (Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-  #105 = Utf8               org/assertj/core/api/ThrowableTypeAssert\n-  #106 = Utf8               isThrownBy\n-  #107 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #108 = Utf8               org/assertj/core/api/ThrowableAssertAlternative\n-  #109 = Utf8               withMessage\n-  #110 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #111 = Methodref          #25.#118      // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest.lambda$test_bad_input$1:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n-  #112 = Methodref          #25.#119      // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest.lambda$test_brokenPrompt$2:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n-  #113 = Class              #120          // java/lang/invoke/LambdaMetafactory\n-  #114 = NameAndType        #121:#124     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #115 = NameAndType        #51:#47       // lambda$test_bad_input$0:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n-  #116 = Class              #125          // org/assertj/core/api/ThrowableAssert\n-  #117 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #118 = NameAndType        #50:#47       // lambda$test_bad_input$1:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n-  #119 = NameAndType        #46:#47       // lambda$test_brokenPrompt$2:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n-  #120 = Utf8               java/lang/invoke/LambdaMetafactory\n-  #121 = Utf8               metafactory\n-  #122 = Class              #127          // java/lang/invoke/MethodHandles$Lookup\n-  #123 = Utf8               Lookup\n-  #124 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #125 = Utf8               org/assertj/core/api/ThrowableAssert\n-  #126 = Class              #128          // java/lang/invoke/MethodHandles\n-  #127 = Utf8               java/lang/invoke/MethodHandles$Lookup\n-  #128 = Utf8               java/lang/invoke/MethodHandles\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Class              #8            // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactory\n+    #8 = Utf8               dev/langchain4j/model/input/structured/DefaultStructuredPromptFactory\n+    #9 = Methodref          #7.#3         // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactory.\"<init>\":()V\n+   #10 = Class              #11           // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$Greeting\n+   #11 = Utf8               dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$Greeting\n+   #12 = String             #13           // Klaus\n+   #13 = Utf8               Klaus\n+   #14 = Methodref          #10.#15       // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$Greeting.\"<init>\":(Ljava/lang/String;)V\n+   #15 = NameAndType        #5:#16        // \"<init>\":(Ljava/lang/String;)V\n+   #16 = Utf8               (Ljava/lang/String;)V\n+   #17 = Methodref          #7.#18        // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactory.toPrompt:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n+   #18 = NameAndType        #19:#20       // toPrompt:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n+   #19 = Utf8               toPrompt\n+   #20 = Utf8               (Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n+   #21 = Methodref          #22.#23       // dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n+   #22 = Class              #24           // dev/langchain4j/model/input/Prompt\n+   #23 = NameAndType        #25:#26       // text:()Ljava/lang/String;\n+   #24 = Utf8               dev/langchain4j/model/input/Prompt\n+   #25 = Utf8               text\n+   #26 = Utf8               ()Ljava/lang/String;\n+   #27 = Methodref          #28.#29       // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #28 = Class              #30           // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest\n+   #29 = NameAndType        #31:#32       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #30 = Utf8               dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest\n+   #31 = Utf8               assertThat\n+   #32 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #33 = String             #34           // Hello, my name is Klaus\n+   #34 = Utf8               Hello, my name is Klaus\n+   #35 = Methodref          #36.#37       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #36 = Class              #38           // org/assertj/core/api/AbstractStringAssert\n+   #37 = NameAndType        #39:#32       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #38 = Utf8               org/assertj/core/api/AbstractStringAssert\n+   #39 = Utf8               isEqualTo\n+   #40 = Class              #41           // java/lang/IllegalArgumentException\n+   #41 = Utf8               java/lang/IllegalArgumentException\n+   #42 = Methodref          #28.#43       // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #43 = NameAndType        #44:#45       // assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #44 = Utf8               assertThatExceptionOfType\n+   #45 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #46 = InvokeDynamic      #0:#47        // #0:call:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #47 = NameAndType        #48:#49       // call:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #48 = Utf8               call\n+   #49 = Utf8               (Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #50 = Methodref          #51.#52       // org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #51 = Class              #53           // org/assertj/core/api/ThrowableTypeAssert\n+   #52 = NameAndType        #54:#55       // isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #53 = Utf8               org/assertj/core/api/ThrowableTypeAssert\n+   #54 = Utf8               isThrownBy\n+   #55 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #56 = String             #57           // structuredPrompt cannot be null\n+   #57 = Utf8               structuredPrompt cannot be null\n+   #58 = Methodref          #59.#60       // org/assertj/core/api/ThrowableAssertAlternative.withMessage:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #59 = Class              #61           // org/assertj/core/api/ThrowableAssertAlternative\n+   #60 = NameAndType        #62:#63       // withMessage:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #61 = Utf8               org/assertj/core/api/ThrowableAssertAlternative\n+   #62 = Utf8               withMessage\n+   #63 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #64 = InvokeDynamic      #1:#47        // #1:call:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #65 = String             #66           // java.lang.Object should be annotated with @StructuredPrompt to be used as a structured prompt\n+   #66 = Utf8               java.lang.Object should be annotated with @StructuredPrompt to be used as a structured prompt\n+   #67 = InvokeDynamic      #2:#47        // #2:call:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #68 = String             #69           // Value for the variable \\'broken\\' is missing\n+   #69 = Utf8               Value for the variable \\'broken\\' is missing\n+   #70 = Class              #71           // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$BrokenPrompt\n+   #71 = Utf8               dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$BrokenPrompt\n+   #72 = Methodref          #70.#15       // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$BrokenPrompt.\"<init>\":(Ljava/lang/String;)V\n+   #73 = Class              #74           // org/assertj/core/api/WithAssertions\n+   #74 = Utf8               org/assertj/core/api/WithAssertions\n+   #75 = Utf8               Code\n+   #76 = Utf8               LineNumberTable\n+   #77 = Utf8               LocalVariableTable\n+   #78 = Utf8               this\n+   #79 = Utf8               Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest;\n+   #80 = Utf8               test\n+   #81 = Utf8               factory\n+   #82 = Utf8               Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;\n+   #83 = Utf8               p\n+   #84 = Utf8               Ldev/langchain4j/model/input/Prompt;\n+   #85 = Utf8               RuntimeVisibleAnnotations\n+   #86 = Utf8               Lorg/junit/jupiter/api/Test;\n+   #87 = Utf8               test_bad_input\n+   #88 = Utf8               test_brokenPrompt\n+   #89 = Utf8               lambda$test_brokenPrompt$2\n+   #90 = Utf8               (Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n+   #91 = Utf8               Exceptions\n+   #92 = Class              #93           // java/lang/Throwable\n+   #93 = Utf8               java/lang/Throwable\n+   #94 = Utf8               lambda$test_bad_input$1\n+   #95 = Utf8               lambda$test_bad_input$0\n+   #96 = Utf8               SourceFile\n+   #97 = Utf8               DefaultStructuredPromptFactoryTest.java\n+   #98 = Utf8               BootstrapMethods\n+   #99 = MethodHandle       6:#100        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #100 = Methodref          #101.#102     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #101 = Class              #103          // java/lang/invoke/LambdaMetafactory\n+  #102 = NameAndType        #104:#105     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #103 = Utf8               java/lang/invoke/LambdaMetafactory\n+  #104 = Utf8               metafactory\n+  #105 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #106 = MethodType         #6            //  ()V\n+  #107 = MethodHandle       6:#108        // REF_invokeStatic dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest.lambda$test_bad_input$0:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n+  #108 = Methodref          #28.#109      // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest.lambda$test_bad_input$0:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n+  #109 = NameAndType        #95:#90       // lambda$test_bad_input$0:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n+  #110 = MethodHandle       6:#111        // REF_invokeStatic dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest.lambda$test_bad_input$1:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n+  #111 = Methodref          #28.#112      // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest.lambda$test_bad_input$1:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n+  #112 = NameAndType        #94:#90       // lambda$test_bad_input$1:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n+  #113 = MethodHandle       6:#114        // REF_invokeStatic dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest.lambda$test_brokenPrompt$2:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n+  #114 = Methodref          #28.#115      // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest.lambda$test_brokenPrompt$2:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n+  #115 = NameAndType        #89:#90       // lambda$test_brokenPrompt$2:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n+  #116 = Utf8               InnerClasses\n+  #117 = Utf8               Greeting\n+  #118 = Class              #119          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n+  #119 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n+  #120 = Class              #121          // org/assertj/core/api/ThrowableAssert\n+  #121 = Utf8               org/assertj/core/api/ThrowableAssert\n+  #122 = Utf8               ThrowingCallable\n+  #123 = Utf8               BrokenPrompt\n+  #124 = Class              #125          // java/lang/invoke/MethodHandles$Lookup\n+  #125 = Utf8               java/lang/invoke/MethodHandles$Lookup\n+  #126 = Class              #127          // java/lang/invoke/MethodHandles\n+  #127 = Utf8               java/lang/invoke/MethodHandles\n+  #128 = Utf8               Lookup\n {\n   dev.langchain4j.model.input.structured.DefaultStructuredPromptFactoryTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -152,73 +152,73 @@\n             0       5     0  this   Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest;\n \n   public void test();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=4, locals=3, args_size=1\n-         0: new           #2                  // class dev/langchain4j/model/input/structured/DefaultStructuredPromptFactory\n+         0: new           #7                  // class dev/langchain4j/model/input/structured/DefaultStructuredPromptFactory\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/model/input/structured/DefaultStructuredPromptFactory.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/model/input/structured/DefaultStructuredPromptFactory.\"<init>\":()V\n          7: astore_1\n          8: aload_1\n-         9: new           #4                  // class dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$Greeting\n+         9: new           #10                 // class dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$Greeting\n         12: dup\n-        13: ldc           #5                  // String Klaus\n-        15: invokespecial #6                  // Method dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$Greeting.\"<init>\":(Ljava/lang/String;)V\n-        18: invokevirtual #7                  // Method dev/langchain4j/model/input/structured/DefaultStructuredPromptFactory.toPrompt:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n+        13: ldc           #12                 // String Klaus\n+        15: invokespecial #14                 // Method dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$Greeting.\"<init>\":(Ljava/lang/String;)V\n+        18: invokevirtual #17                 // Method dev/langchain4j/model/input/structured/DefaultStructuredPromptFactory.toPrompt:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n         21: astore_2\n         22: aload_0\n         23: aload_2\n-        24: invokevirtual #8                  // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n-        27: invokevirtual #9                  // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        30: ldc           #10                 // String Hello, my name is Klaus\n-        32: invokevirtual #11                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        24: invokevirtual #21                 // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n+        27: invokevirtual #27                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        30: ldc           #33                 // String Hello, my name is Klaus\n+        32: invokevirtual #35                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         35: pop\n         36: return\n       LineNumberTable:\n         line 30: 0\n         line 31: 8\n         line 32: 22\n         line 33: 36\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      37     0  this   Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest;\n             8      29     1 factory   Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;\n            22      15     2     p   Ldev/langchain4j/model/input/Prompt;\n     RuntimeVisibleAnnotations:\n-      0: #43()\n+      0: #86()\n         org.junit.jupiter.api.Test\n \n   public void test_bad_input();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=1\n-         0: new           #2                  // class dev/langchain4j/model/input/structured/DefaultStructuredPromptFactory\n+         0: new           #7                  // class dev/langchain4j/model/input/structured/DefaultStructuredPromptFactory\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/model/input/structured/DefaultStructuredPromptFactory.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/model/input/structured/DefaultStructuredPromptFactory.\"<init>\":()V\n          7: astore_1\n          8: aload_0\n-         9: ldc           #12                 // class java/lang/IllegalArgumentException\n-        11: invokevirtual #13                 // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+         9: ldc           #40                 // class java/lang/IllegalArgumentException\n+        11: invokevirtual #42                 // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n         14: aload_1\n-        15: invokedynamic #14,  0             // InvokeDynamic #0:call:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-        20: invokevirtual #15                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-        23: ldc           #16                 // String structuredPrompt cannot be null\n-        25: invokevirtual #17                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessage:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        15: invokedynamic #46,  0             // InvokeDynamic #0:call:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+        20: invokevirtual #50                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        23: ldc           #56                 // String structuredPrompt cannot be null\n+        25: invokevirtual #58                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessage:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n         28: pop\n         29: aload_0\n-        30: ldc           #12                 // class java/lang/IllegalArgumentException\n-        32: invokevirtual #13                 // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+        30: ldc           #40                 // class java/lang/IllegalArgumentException\n+        32: invokevirtual #42                 // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n         35: aload_1\n-        36: invokedynamic #18,  0             // InvokeDynamic #1:call:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-        41: invokevirtual #15                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-        44: ldc           #19                 // String java.lang.Object should be annotated with @StructuredPrompt to be used as a structured prompt\n-        46: invokevirtual #17                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessage:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        36: invokedynamic #64,  0             // InvokeDynamic #1:call:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+        41: invokevirtual #50                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        44: ldc           #65                 // String java.lang.Object should be annotated with @StructuredPrompt to be used as a structured prompt\n+        46: invokevirtual #58                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessage:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n         49: pop\n         50: return\n       LineNumberTable:\n         line 37: 0\n         line 39: 8\n         line 40: 20\n         line 41: 25\n@@ -227,61 +227,61 @@\n         line 45: 46\n         line 48: 50\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      51     0  this   Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest;\n             8      43     1 factory   Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;\n     RuntimeVisibleAnnotations:\n-      0: #43()\n+      0: #86()\n         org.junit.jupiter.api.Test\n \n   public void test_brokenPrompt();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=1\n-         0: new           #2                  // class dev/langchain4j/model/input/structured/DefaultStructuredPromptFactory\n+         0: new           #7                  // class dev/langchain4j/model/input/structured/DefaultStructuredPromptFactory\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/model/input/structured/DefaultStructuredPromptFactory.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/model/input/structured/DefaultStructuredPromptFactory.\"<init>\":()V\n          7: astore_1\n          8: aload_0\n-         9: ldc           #12                 // class java/lang/IllegalArgumentException\n-        11: invokevirtual #13                 // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+         9: ldc           #40                 // class java/lang/IllegalArgumentException\n+        11: invokevirtual #42                 // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n         14: aload_1\n-        15: invokedynamic #20,  0             // InvokeDynamic #2:call:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-        20: invokevirtual #15                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-        23: ldc           #21                 // String Value for the variable \\'broken\\' is missing\n-        25: invokevirtual #17                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessage:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        15: invokedynamic #67,  0             // InvokeDynamic #2:call:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+        20: invokevirtual #50                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        23: ldc           #68                 // String Value for the variable \\'broken\\' is missing\n+        25: invokevirtual #58                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessage:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n         28: pop\n         29: return\n       LineNumberTable:\n         line 52: 0\n         line 53: 8\n         line 54: 20\n         line 55: 25\n         line 56: 29\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      30     0  this   Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest;\n             8      22     1 factory   Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;\n     RuntimeVisibleAnnotations:\n-      0: #43()\n+      0: #86()\n         org.junit.jupiter.api.Test\n \n   private static void lambda$test_brokenPrompt$2(dev.langchain4j.model.input.structured.DefaultStructuredPromptFactory) throws java.lang.Throwable;\n     descriptor: (Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=4, locals=1, args_size=1\n          0: aload_0\n-         1: new           #22                 // class dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$BrokenPrompt\n+         1: new           #70                 // class dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$BrokenPrompt\n          4: dup\n-         5: ldc           #5                  // String Klaus\n-         7: invokespecial #23                 // Method dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$BrokenPrompt.\"<init>\":(Ljava/lang/String;)V\n-        10: invokevirtual #7                  // Method dev/langchain4j/model/input/structured/DefaultStructuredPromptFactory.toPrompt:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n+         5: ldc           #12                 // String Klaus\n+         7: invokespecial #72                 // Method dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$BrokenPrompt.\"<init>\":(Ljava/lang/String;)V\n+        10: invokevirtual #17                 // Method dev/langchain4j/model/input/structured/DefaultStructuredPromptFactory.toPrompt:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n         13: pop\n         14: return\n       LineNumberTable:\n         line 54: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      15     0 factory   Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;\n@@ -290,18 +290,18 @@\n \n   private static void lambda$test_bad_input$1(dev.langchain4j.model.input.structured.DefaultStructuredPromptFactory) throws java.lang.Throwable;\n     descriptor: (Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=3, locals=1, args_size=1\n          0: aload_0\n-         1: new           #24                 // class java/lang/Object\n+         1: new           #2                  // class java/lang/Object\n          4: dup\n          5: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n-         8: invokevirtual #7                  // Method dev/langchain4j/model/input/structured/DefaultStructuredPromptFactory.toPrompt:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n+         8: invokevirtual #17                 // Method dev/langchain4j/model/input/structured/DefaultStructuredPromptFactory.toPrompt:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n         11: pop\n         12: return\n       LineNumberTable:\n         line 44: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      13     0 factory   Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;\n@@ -311,40 +311,40 @@\n   private static void lambda$test_bad_input$0(dev.langchain4j.model.input.structured.DefaultStructuredPromptFactory) throws java.lang.Throwable;\n     descriptor: (Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=2, locals=1, args_size=1\n          0: aload_0\n          1: aconst_null\n-         2: invokevirtual #7                  // Method dev/langchain4j/model/input/structured/DefaultStructuredPromptFactory.toPrompt:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n+         2: invokevirtual #17                 // Method dev/langchain4j/model/input/structured/DefaultStructuredPromptFactory.toPrompt:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n          5: pop\n          6: return\n       LineNumberTable:\n         line 40: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0 factory   Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;\n     Exceptions:\n       throws java.lang.Throwable\n }\n SourceFile: \"DefaultStructuredPromptFactoryTest.java\"\n-InnerClasses:\n-  static #27= #22 of #25;                 // BrokenPrompt=class dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$BrokenPrompt of class dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest\n-  static #29= #4 of #25;                  // Greeting=class dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$Greeting of class dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest\n-  public static #103= #102 of #116;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n-  public static final #123= #122 of #126; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n BootstrapMethods:\n-  0: #69 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  0: #99 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #70 ()V\n-      #71 REF_invokeStatic dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest.lambda$test_bad_input$0:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n-      #70 ()V\n-  1: #69 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #106 ()V\n+      #107 REF_invokeStatic dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest.lambda$test_bad_input$0:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n+      #106 ()V\n+  1: #99 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #70 ()V\n-      #78 REF_invokeStatic dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest.lambda$test_bad_input$1:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n-      #70 ()V\n-  2: #69 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #106 ()V\n+      #110 REF_invokeStatic dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest.lambda$test_bad_input$1:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n+      #106 ()V\n+  2: #99 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #70 ()V\n-      #80 REF_invokeStatic dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest.lambda$test_brokenPrompt$2:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n-      #70 ()V\n+      #106 ()V\n+      #113 REF_invokeStatic dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest.lambda$test_brokenPrompt$2:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n+      #106 ()V\n+InnerClasses:\n+  static #117= #10 of #28;                // Greeting=class dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$Greeting of class dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest\n+  public static #122= #118 of #120;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n+  static #123= #70 of #28;                // BrokenPrompt=class dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$BrokenPrompt of class dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest\n+  public static final #128= #124 of #126; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n"}]}, {"source1": "dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting.class", "source2": "dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,60 +1,60 @@\n-  SHA-256 checksum 3643a8e33f63e6c00f311889a28fff8c362c54917cf9d83dfbc921f7e83af8e2\n+  SHA-256 checksum 71976060565033df1234d607964404baac292e2f907bf2a712e13de24bb379e6\n   Compiled from \"StructuredPromptProcessorTest.java\"\n class dev.langchain4j.model.input.structured.StructuredPromptProcessorTest$Greeting\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #3                          // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting\n-  super_class: #4                         // java/lang/Object\n+  this_class: #2                          // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting\n+  super_class: #8                         // java/lang/Object\n   interfaces: 0, fields: 1, methods: 2, attributes: 3\n Constant pool:\n-   #1 = Fieldref           #3.#26         // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting.name:Ljava/lang/String;\n-   #2 = Methodref          #4.#27         // java/lang/Object.\"<init>\":()V\n-   #3 = Class              #29            // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting\n-   #4 = Class              #30            // java/lang/Object\n+   #1 = Fieldref           #2.#3          // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting.name:Ljava/lang/String;\n+   #2 = Class              #4             // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting\n+   #3 = NameAndType        #5:#6          // name:Ljava/lang/String;\n+   #4 = Utf8               dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting\n    #5 = Utf8               name\n    #6 = Utf8               Ljava/lang/String;\n-   #7 = Utf8               <init>\n-   #8 = Utf8               ()V\n-   #9 = Utf8               Code\n-  #10 = Utf8               LineNumberTable\n-  #11 = Utf8               LocalVariableTable\n-  #12 = Utf8               this\n-  #13 = Utf8               Greeting\n-  #14 = Utf8               InnerClasses\n-  #15 = Utf8               Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting;\n-  #16 = Utf8               access$002\n-  #17 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting;Ljava/lang/String;)Ljava/lang/String;\n-  #18 = Utf8               x0\n-  #19 = Utf8               x1\n-  #20 = Utf8               SourceFile\n-  #21 = Utf8               StructuredPromptProcessorTest.java\n-  #22 = Utf8               RuntimeVisibleAnnotations\n-  #23 = Utf8               Ldev/langchain4j/model/input/structured/StructuredPrompt;\n-  #24 = Utf8               value\n-  #25 = Utf8               Hello, my name is {{name}}\n-  #26 = NameAndType        #5:#6          // name:Ljava/lang/String;\n-  #27 = NameAndType        #7:#8          // \"<init>\":()V\n-  #28 = Class              #31            // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n-  #29 = Utf8               dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting\n-  #30 = Utf8               java/lang/Object\n-  #31 = Utf8               dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n+   #7 = Methodref          #8.#9          // java/lang/Object.\"<init>\":()V\n+   #8 = Class              #10            // java/lang/Object\n+   #9 = NameAndType        #11:#12        // \"<init>\":()V\n+  #10 = Utf8               java/lang/Object\n+  #11 = Utf8               <init>\n+  #12 = Utf8               ()V\n+  #13 = Utf8               Code\n+  #14 = Utf8               LineNumberTable\n+  #15 = Utf8               LocalVariableTable\n+  #16 = Utf8               this\n+  #17 = Utf8               Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting;\n+  #18 = Utf8               access$002\n+  #19 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting;Ljava/lang/String;)Ljava/lang/String;\n+  #20 = Utf8               x0\n+  #21 = Utf8               x1\n+  #22 = Utf8               SourceFile\n+  #23 = Utf8               StructuredPromptProcessorTest.java\n+  #24 = Utf8               RuntimeVisibleAnnotations\n+  #25 = Utf8               Ldev/langchain4j/model/input/structured/StructuredPrompt;\n+  #26 = Utf8               value\n+  #27 = Utf8               Hello, my name is {{name}}\n+  #28 = Utf8               InnerClasses\n+  #29 = Class              #30            // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n+  #30 = Utf8               dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n+  #31 = Utf8               Greeting\n {\n   private java.lang.String name;\n     descriptor: Ljava/lang/String;\n     flags: (0x0002) ACC_PRIVATE\n \n   dev.langchain4j.model.input.structured.StructuredPromptProcessorTest$Greeting();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n-         1: invokespecial #2                  // Method java/lang/Object.\"<init>\":()V\n+         1: invokespecial #7                  // Method java/lang/Object.\"<init>\":()V\n          4: return\n       LineNumberTable:\n         line 14: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       5     0  this   Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting;\n \n@@ -73,13 +73,13 @@\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0    x0   Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting;\n             0       7     1    x1   Ljava/lang/String;\n }\n SourceFile: \"StructuredPromptProcessorTest.java\"\n RuntimeVisibleAnnotations:\n-  0: #23(#24=[s#25])\n+  0: #25(#26=[s#27])\n     dev.langchain4j.model.input.structured.StructuredPrompt(\n       value=[\"Hello, my name is {{name}}\"]\n     )\n InnerClasses:\n-  static #13= #3 of #28;                  // Greeting=class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting of class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n+  static #31= #2 of #29;                  // Greeting=class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting of class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n"}]}, {"source1": "dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes.class", "source2": "dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,84 +1,84 @@\n-  SHA-256 checksum ebb6abd1b5471cec952f4dfe9b03a48ad782174a361ff9e9709c33865cf177a3\n+  SHA-256 checksum cf2b9c2ec3ddaee9e99a00b5fd9d76439dba30567e766a849eb4146cd582e7e8\n   Compiled from \"StructuredPromptProcessorTest.java\"\n class dev.langchain4j.model.input.structured.StructuredPromptProcessorTest$SuggestRecipes\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #5                          // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes\n-  super_class: #6                         // java/lang/Object\n+  this_class: #2                          // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes\n+  super_class: #16                        // java/lang/Object\n   interfaces: 0, fields: 3, methods: 4, attributes: 3\n Constant pool:\n-   #1 = Fieldref           #5.#39         // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes.ingredients:Ljava/util/List;\n-   #2 = Fieldref           #5.#40         // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes.maxPreparationTime:I\n-   #3 = Fieldref           #5.#41         // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes.dish:Ljava/lang/String;\n-   #4 = Methodref          #6.#42         // java/lang/Object.\"<init>\":()V\n-   #5 = Class              #44            // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes\n-   #6 = Class              #45            // java/lang/Object\n-   #7 = Utf8               dish\n-   #8 = Utf8               Ljava/lang/String;\n+   #1 = Fieldref           #2.#3          // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes.ingredients:Ljava/util/List;\n+   #2 = Class              #4             // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes\n+   #3 = NameAndType        #5:#6          // ingredients:Ljava/util/List;\n+   #4 = Utf8               dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes\n+   #5 = Utf8               ingredients\n+   #6 = Utf8               Ljava/util/List;\n+   #7 = Fieldref           #2.#8          // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes.maxPreparationTime:I\n+   #8 = NameAndType        #9:#10         // maxPreparationTime:I\n    #9 = Utf8               maxPreparationTime\n   #10 = Utf8               I\n-  #11 = Utf8               ingredients\n-  #12 = Utf8               Ljava/util/List;\n-  #13 = Utf8               Signature\n-  #14 = Utf8               Ljava/util/List<Ljava/lang/String;>;\n-  #15 = Utf8               <init>\n-  #16 = Utf8               ()V\n-  #17 = Utf8               Code\n-  #18 = Utf8               LineNumberTable\n-  #19 = Utf8               LocalVariableTable\n-  #20 = Utf8               this\n-  #21 = Utf8               SuggestRecipes\n-  #22 = Utf8               InnerClasses\n-  #23 = Utf8               Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;\n-  #24 = Utf8               access$102\n-  #25 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;Ljava/lang/String;)Ljava/lang/String;\n-  #26 = Utf8               x0\n-  #27 = Utf8               x1\n-  #28 = Utf8               access$202\n-  #29 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;I)I\n-  #30 = Utf8               access$302\n-  #31 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;Ljava/util/List;)Ljava/util/List;\n-  #32 = Utf8               SourceFile\n-  #33 = Utf8               StructuredPromptProcessorTest.java\n-  #34 = Utf8               RuntimeVisibleAnnotations\n-  #35 = Utf8               Ldev/langchain4j/model/input/structured/StructuredPrompt;\n-  #36 = Utf8               value\n-  #37 = Utf8               Suggest tasty {{dish}} recipes that can be prepared in {{maxPreparationTime}} minutes.\n-  #38 = Utf8               I have only {{ingredients}} in my fridge.\n-  #39 = NameAndType        #11:#12        // ingredients:Ljava/util/List;\n-  #40 = NameAndType        #9:#10         // maxPreparationTime:I\n-  #41 = NameAndType        #7:#8          // dish:Ljava/lang/String;\n-  #42 = NameAndType        #15:#16        // \"<init>\":()V\n-  #43 = Class              #46            // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n-  #44 = Utf8               dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes\n-  #45 = Utf8               java/lang/Object\n-  #46 = Utf8               dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n+  #11 = Fieldref           #2.#12         // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes.dish:Ljava/lang/String;\n+  #12 = NameAndType        #13:#14        // dish:Ljava/lang/String;\n+  #13 = Utf8               dish\n+  #14 = Utf8               Ljava/lang/String;\n+  #15 = Methodref          #16.#17        // java/lang/Object.\"<init>\":()V\n+  #16 = Class              #18            // java/lang/Object\n+  #17 = NameAndType        #19:#20        // \"<init>\":()V\n+  #18 = Utf8               java/lang/Object\n+  #19 = Utf8               <init>\n+  #20 = Utf8               ()V\n+  #21 = Utf8               Signature\n+  #22 = Utf8               Ljava/util/List<Ljava/lang/String;>;\n+  #23 = Utf8               Code\n+  #24 = Utf8               LineNumberTable\n+  #25 = Utf8               LocalVariableTable\n+  #26 = Utf8               this\n+  #27 = Utf8               Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;\n+  #28 = Utf8               access$102\n+  #29 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;Ljava/lang/String;)Ljava/lang/String;\n+  #30 = Utf8               x0\n+  #31 = Utf8               x1\n+  #32 = Utf8               access$202\n+  #33 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;I)I\n+  #34 = Utf8               access$302\n+  #35 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;Ljava/util/List;)Ljava/util/List;\n+  #36 = Utf8               SourceFile\n+  #37 = Utf8               StructuredPromptProcessorTest.java\n+  #38 = Utf8               RuntimeVisibleAnnotations\n+  #39 = Utf8               Ldev/langchain4j/model/input/structured/StructuredPrompt;\n+  #40 = Utf8               value\n+  #41 = Utf8               Suggest tasty {{dish}} recipes that can be prepared in {{maxPreparationTime}} minutes.\n+  #42 = Utf8               I have only {{ingredients}} in my fridge.\n+  #43 = Utf8               InnerClasses\n+  #44 = Class              #45            // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n+  #45 = Utf8               dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n+  #46 = Utf8               SuggestRecipes\n {\n   private java.lang.String dish;\n     descriptor: Ljava/lang/String;\n     flags: (0x0002) ACC_PRIVATE\n \n   private int maxPreparationTime;\n     descriptor: I\n     flags: (0x0002) ACC_PRIVATE\n \n   private java.util.List<java.lang.String> ingredients;\n     descriptor: Ljava/util/List;\n     flags: (0x0002) ACC_PRIVATE\n-    Signature: #14                          // Ljava/util/List<Ljava/lang/String;>;\n+    Signature: #22                          // Ljava/util/List<Ljava/lang/String;>;\n \n   dev.langchain4j.model.input.structured.StructuredPromptProcessorTest$SuggestRecipes();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n-         1: invokespecial #4                  // Method java/lang/Object.\"<init>\":()V\n+         1: invokespecial #15                 // Method java/lang/Object.\"<init>\":()V\n          4: return\n       LineNumberTable:\n         line 35: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       5     0  this   Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;\n \n@@ -86,15 +86,15 @@\n     descriptor: (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;Ljava/lang/String;)Ljava/lang/String;\n     flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=3, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n          2: dup_x1\n-         3: putfield      #3                  // Field dish:Ljava/lang/String;\n+         3: putfield      #11                 // Field dish:Ljava/lang/String;\n          6: areturn\n       LineNumberTable:\n         line 35: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0    x0   Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;\n             0       7     1    x1   Ljava/lang/String;\n@@ -103,15 +103,15 @@\n     descriptor: (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;I)I\n     flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=3, locals=2, args_size=2\n          0: aload_0\n          1: iload_1\n          2: dup_x1\n-         3: putfield      #2                  // Field maxPreparationTime:I\n+         3: putfield      #7                  // Field maxPreparationTime:I\n          6: ireturn\n       LineNumberTable:\n         line 35: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0    x0   Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;\n             0       7     1    x1   I\n@@ -131,13 +131,13 @@\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0    x0   Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;\n             0       7     1    x1   Ljava/util/List;\n }\n SourceFile: \"StructuredPromptProcessorTest.java\"\n RuntimeVisibleAnnotations:\n-  0: #35(#36=[s#37,s#38])\n+  0: #39(#40=[s#41,s#42])\n     dev.langchain4j.model.input.structured.StructuredPrompt(\n       value=[\"Suggest tasty {{dish}} recipes that can be prepared in {{maxPreparationTime}} minutes.\",\"I have only {{ingredients}} in my fridge.\"]\n     )\n InnerClasses:\n-  static #21= #5 of #43;                  // SuggestRecipes=class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes of class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n+  static #46= #2 of #44;                  // SuggestRecipes=class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes of class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n"}]}, {"source1": "dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.class", "source2": "dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,72 +1,72 @@\n-  SHA-256 checksum 9cf1da148e804c9d6b72d81a2c1807a4e1f40a643f10dddbe5853cdca103366d\n+  SHA-256 checksum db78917af3f10c456e4cfc5939623125736c3d4aac2bf0bb427eb72197d8d83d\n   Compiled from \"StructuredPromptProcessorTest.java\"\n class dev.langchain4j.model.input.structured.StructuredPromptProcessorTest$VariousNumbers\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #7                          // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers\n-  super_class: #8                         // java/lang/Object\n+  this_class: #2                          // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers\n+  super_class: #24                        // java/lang/Object\n   interfaces: 0, fields: 5, methods: 6, attributes: 3\n Constant pool:\n-   #1 = Fieldref           #7.#46         // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.nLong:J\n-   #2 = Fieldref           #7.#47         // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.nShort:S\n-   #3 = Fieldref           #7.#48         // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.nInt:I\n-   #4 = Fieldref           #7.#49         // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.nFloat:F\n-   #5 = Fieldref           #7.#50         // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.nDouble:D\n-   #6 = Methodref          #8.#51         // java/lang/Object.\"<init>\":()V\n-   #7 = Class              #53            // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers\n-   #8 = Class              #54            // java/lang/Object\n-   #9 = Utf8               nDouble\n-  #10 = Utf8               D\n-  #11 = Utf8               nFloat\n-  #12 = Utf8               F\n+   #1 = Fieldref           #2.#3          // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.nLong:J\n+   #2 = Class              #4             // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers\n+   #3 = NameAndType        #5:#6          // nLong:J\n+   #4 = Utf8               dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers\n+   #5 = Utf8               nLong\n+   #6 = Utf8               J\n+   #7 = Fieldref           #2.#8          // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.nShort:S\n+   #8 = NameAndType        #9:#10         // nShort:S\n+   #9 = Utf8               nShort\n+  #10 = Utf8               S\n+  #11 = Fieldref           #2.#12         // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.nInt:I\n+  #12 = NameAndType        #13:#14        // nInt:I\n   #13 = Utf8               nInt\n   #14 = Utf8               I\n-  #15 = Utf8               nShort\n-  #16 = Utf8               S\n-  #17 = Utf8               nLong\n-  #18 = Utf8               J\n-  #19 = Utf8               <init>\n-  #20 = Utf8               ()V\n-  #21 = Utf8               Code\n-  #22 = Utf8               LineNumberTable\n-  #23 = Utf8               LocalVariableTable\n-  #24 = Utf8               this\n-  #25 = Utf8               VariousNumbers\n-  #26 = Utf8               InnerClasses\n-  #27 = Utf8               Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;\n-  #28 = Utf8               access$402\n-  #29 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;D)D\n-  #30 = Utf8               x0\n-  #31 = Utf8               x1\n-  #32 = Utf8               access$502\n-  #33 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;F)F\n-  #34 = Utf8               access$602\n-  #35 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;I)I\n-  #36 = Utf8               access$702\n-  #37 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;S)S\n-  #38 = Utf8               access$802\n-  #39 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;J)J\n-  #40 = Utf8               SourceFile\n-  #41 = Utf8               StructuredPromptProcessorTest.java\n-  #42 = Utf8               RuntimeVisibleAnnotations\n-  #43 = Utf8               Ldev/langchain4j/model/input/structured/StructuredPrompt;\n-  #44 = Utf8               value\n-  #45 = Utf8               Example of numbers with floating point: {{nDouble}}, {{nFloat}} and whole numbers: {{nInt}}, {{nShort}}, {{nLong}}\n-  #46 = NameAndType        #17:#18        // nLong:J\n-  #47 = NameAndType        #15:#16        // nShort:S\n-  #48 = NameAndType        #13:#14        // nInt:I\n-  #49 = NameAndType        #11:#12        // nFloat:F\n-  #50 = NameAndType        #9:#10         // nDouble:D\n-  #51 = NameAndType        #19:#20        // \"<init>\":()V\n-  #52 = Class              #55            // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n-  #53 = Utf8               dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers\n-  #54 = Utf8               java/lang/Object\n-  #55 = Utf8               dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n+  #15 = Fieldref           #2.#16         // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.nFloat:F\n+  #16 = NameAndType        #17:#18        // nFloat:F\n+  #17 = Utf8               nFloat\n+  #18 = Utf8               F\n+  #19 = Fieldref           #2.#20         // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.nDouble:D\n+  #20 = NameAndType        #21:#22        // nDouble:D\n+  #21 = Utf8               nDouble\n+  #22 = Utf8               D\n+  #23 = Methodref          #24.#25        // java/lang/Object.\"<init>\":()V\n+  #24 = Class              #26            // java/lang/Object\n+  #25 = NameAndType        #27:#28        // \"<init>\":()V\n+  #26 = Utf8               java/lang/Object\n+  #27 = Utf8               <init>\n+  #28 = Utf8               ()V\n+  #29 = Utf8               Code\n+  #30 = Utf8               LineNumberTable\n+  #31 = Utf8               LocalVariableTable\n+  #32 = Utf8               this\n+  #33 = Utf8               Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;\n+  #34 = Utf8               access$402\n+  #35 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;D)D\n+  #36 = Utf8               x0\n+  #37 = Utf8               x1\n+  #38 = Utf8               access$502\n+  #39 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;F)F\n+  #40 = Utf8               access$602\n+  #41 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;I)I\n+  #42 = Utf8               access$702\n+  #43 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;S)S\n+  #44 = Utf8               access$802\n+  #45 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;J)J\n+  #46 = Utf8               SourceFile\n+  #47 = Utf8               StructuredPromptProcessorTest.java\n+  #48 = Utf8               RuntimeVisibleAnnotations\n+  #49 = Utf8               Ldev/langchain4j/model/input/structured/StructuredPrompt;\n+  #50 = Utf8               value\n+  #51 = Utf8               Example of numbers with floating point: {{nDouble}}, {{nFloat}} and whole numbers: {{nInt}}, {{nShort}}, {{nLong}}\n+  #52 = Utf8               InnerClasses\n+  #53 = Class              #54            // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n+  #54 = Utf8               dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n+  #55 = Utf8               VariousNumbers\n {\n   private double nDouble;\n     descriptor: D\n     flags: (0x0002) ACC_PRIVATE\n \n   private float nFloat;\n     descriptor: F\n@@ -86,15 +86,15 @@\n \n   dev.langchain4j.model.input.structured.StructuredPromptProcessorTest$VariousNumbers();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n-         1: invokespecial #6                  // Method java/lang/Object.\"<init>\":()V\n+         1: invokespecial #23                 // Method java/lang/Object.\"<init>\":()V\n          4: return\n       LineNumberTable:\n         line 60: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       5     0  this   Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;\n \n@@ -102,15 +102,15 @@\n     descriptor: (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;D)D\n     flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=5, locals=3, args_size=2\n          0: aload_0\n          1: dload_1\n          2: dup2_x1\n-         3: putfield      #5                  // Field nDouble:D\n+         3: putfield      #19                 // Field nDouble:D\n          6: dreturn\n       LineNumberTable:\n         line 60: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0    x0   Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;\n             0       7     1    x1   D\n@@ -119,15 +119,15 @@\n     descriptor: (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;F)F\n     flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=3, locals=2, args_size=2\n          0: aload_0\n          1: fload_1\n          2: dup_x1\n-         3: putfield      #4                  // Field nFloat:F\n+         3: putfield      #15                 // Field nFloat:F\n          6: freturn\n       LineNumberTable:\n         line 60: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0    x0   Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;\n             0       7     1    x1   F\n@@ -136,15 +136,15 @@\n     descriptor: (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;I)I\n     flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=3, locals=2, args_size=2\n          0: aload_0\n          1: iload_1\n          2: dup_x1\n-         3: putfield      #3                  // Field nInt:I\n+         3: putfield      #11                 // Field nInt:I\n          6: ireturn\n       LineNumberTable:\n         line 60: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0    x0   Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;\n             0       7     1    x1   I\n@@ -153,15 +153,15 @@\n     descriptor: (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;S)S\n     flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=3, locals=2, args_size=2\n          0: aload_0\n          1: iload_1\n          2: dup_x1\n-         3: putfield      #2                  // Field nShort:S\n+         3: putfield      #7                  // Field nShort:S\n          6: ireturn\n       LineNumberTable:\n         line 60: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0    x0   Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;\n             0       7     1    x1   S\n@@ -181,13 +181,13 @@\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0    x0   Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;\n             0       7     1    x1   J\n }\n SourceFile: \"StructuredPromptProcessorTest.java\"\n RuntimeVisibleAnnotations:\n-  0: #43(#44=[s#45])\n+  0: #49(#50=[s#51])\n     dev.langchain4j.model.input.structured.StructuredPrompt(\n       value=[\"Example of numbers with floating point: {{nDouble}}, {{nFloat}} and whole numbers: {{nInt}}, {{nShort}}, {{nLong}}\"]\n     )\n InnerClasses:\n-  static #25= #7 of #52;                  // VariousNumbers=class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers of class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n+  static #55= #2 of #53;                  // VariousNumbers=class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers of class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n"}]}, {"source1": "dev/langchain4j/model/input/structured/StructuredPromptProcessorTest.class", "source2": "dev/langchain4j/model/input/structured/StructuredPromptProcessorTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,142 +1,142 @@\n-  SHA-256 checksum d203107563053ca8df7cdb758ae329c038a9c9708cb9c5ebc8fe64a3d5b3780a\n+  SHA-256 checksum 5824c8dc32ebf8f81a68e6000d27358f427d33cabec79db6981b73f873cf056e\n   Compiled from \"StructuredPromptProcessorTest.java\"\n class dev.langchain4j.model.input.structured.StructuredPromptProcessorTest\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #35                         // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n-  super_class: #36                        // java/lang/Object\n+  this_class: #103                        // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 0, methods: 4, attributes: 2\n Constant pool:\n-    #1 = Methodref          #36.#62       // java/lang/Object.\"<init>\":()V\n-    #2 = Class              #63           // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting\n-    #3 = Methodref          #2.#62        // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting.\"<init>\":()V\n-    #4 = String             #64           // Klaus\n-    #5 = Methodref          #2.#65        // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting.access$002:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting;Ljava/lang/String;)Ljava/lang/String;\n-    #6 = Methodref          #66.#67       // dev/langchain4j/model/input/structured/StructuredPromptProcessor.toPrompt:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n-    #7 = Methodref          #68.#69       // dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n-    #8 = Methodref          #70.#71       // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-    #9 = String             #72           // Hello, my name is Klaus\n-   #10 = Methodref          #73.#74       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #11 = Class              #75           // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes\n-   #12 = Methodref          #11.#62       // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes.\"<init>\":()V\n-   #13 = String             #76           // salad\n-   #14 = Methodref          #11.#77       // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes.access$102:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;Ljava/lang/String;)Ljava/lang/String;\n-   #15 = Methodref          #11.#78       // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes.access$202:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;I)I\n-   #16 = Class              #79           // java/lang/String\n-   #17 = String             #80           // Tomato\n-   #18 = String             #81           // Cucumber\n-   #19 = String             #82           // Onion\n-   #20 = Methodref          #83.#84       // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-   #21 = Methodref          #11.#85       // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes.access$302:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;Ljava/util/List;)Ljava/util/List;\n-   #22 = String             #86           // Suggest tasty salad recipes that can be prepared in 5 minutes.\\nI have only [Tomato, Cucumber, Onion] in my fridge.\n-   #23 = Class              #87           // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers\n-   #24 = Methodref          #23.#62       // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.\"<init>\":()V\n-   #25 = Double             17.15d\n-   #27 = Methodref          #23.#88       // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.access$402:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;D)D\n-   #28 = Methodref          #23.#89       // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.access$502:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;F)F\n-   #29 = Methodref          #23.#90       // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.access$602:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;I)I\n-   #30 = Methodref          #23.#91       // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.access$702:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;S)S\n-   #31 = Long               12l\n-   #33 = Methodref          #23.#92       // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.access$802:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;J)J\n-   #34 = String             #93           // Example of numbers with floating point: 17.15, 1.0 and whole numbers: 2, 10, 12\n-   #35 = Class              #94           // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n-   #36 = Class              #95           // java/lang/Object\n-   #37 = Utf8               VariousNumbers\n-   #38 = Utf8               InnerClasses\n-   #39 = Utf8               SuggestRecipes\n-   #40 = Utf8               Greeting\n-   #41 = Utf8               <init>\n-   #42 = Utf8               ()V\n-   #43 = Utf8               Code\n-   #44 = Utf8               LineNumberTable\n-   #45 = Utf8               LocalVariableTable\n-   #46 = Utf8               this\n-   #47 = Utf8               Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest;\n-   #48 = Utf8               test_prompt_with_single_variable\n-   #49 = Utf8               structuredPrompt\n-   #50 = Utf8               Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting;\n-   #51 = Utf8               prompt\n-   #52 = Utf8               Ldev/langchain4j/model/input/Prompt;\n-   #53 = Utf8               RuntimeVisibleAnnotations\n-   #54 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #55 = Utf8               test_prompt_with_multiple_variables\n-   #56 = Utf8               Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;\n-   #57 = Utf8               test_prompt_with_various_number_types\n-   #58 = Utf8               numbers\n-   #59 = Utf8               Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;\n-   #60 = Utf8               SourceFile\n-   #61 = Utf8               StructuredPromptProcessorTest.java\n-   #62 = NameAndType        #41:#42       // \"<init>\":()V\n-   #63 = Utf8               dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting\n-   #64 = Utf8               Klaus\n-   #65 = NameAndType        #96:#97       // access$002:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting;Ljava/lang/String;)Ljava/lang/String;\n-   #66 = Class              #98           // dev/langchain4j/model/input/structured/StructuredPromptProcessor\n-   #67 = NameAndType        #99:#100      // toPrompt:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n-   #68 = Class              #101          // dev/langchain4j/model/input/Prompt\n-   #69 = NameAndType        #102:#103     // text:()Ljava/lang/String;\n-   #70 = Class              #104          // org/assertj/core/api/Assertions\n-   #71 = NameAndType        #105:#106     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #72 = Utf8               Hello, my name is Klaus\n-   #73 = Class              #107          // org/assertj/core/api/AbstractStringAssert\n-   #74 = NameAndType        #108:#106     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #75 = Utf8               dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes\n-   #76 = Utf8               salad\n-   #77 = NameAndType        #109:#110     // access$102:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;Ljava/lang/String;)Ljava/lang/String;\n-   #78 = NameAndType        #111:#112     // access$202:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;I)I\n-   #79 = Utf8               java/lang/String\n-   #80 = Utf8               Tomato\n-   #81 = Utf8               Cucumber\n-   #82 = Utf8               Onion\n-   #83 = Class              #113          // java/util/Arrays\n-   #84 = NameAndType        #114:#115     // asList:([Ljava/lang/Object;)Ljava/util/List;\n-   #85 = NameAndType        #116:#117     // access$302:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;Ljava/util/List;)Ljava/util/List;\n-   #86 = Utf8               Suggest tasty salad recipes that can be prepared in 5 minutes.\\nI have only [Tomato, Cucumber, Onion] in my fridge.\n-   #87 = Utf8               dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers\n-   #88 = NameAndType        #118:#119     // access$402:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;D)D\n-   #89 = NameAndType        #120:#121     // access$502:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;F)F\n-   #90 = NameAndType        #122:#123     // access$602:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;I)I\n-   #91 = NameAndType        #124:#125     // access$702:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;S)S\n-   #92 = NameAndType        #126:#127     // access$802:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;J)J\n-   #93 = Utf8               Example of numbers with floating point: 17.15, 1.0 and whole numbers: 2, 10, 12\n-   #94 = Utf8               dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n-   #95 = Utf8               java/lang/Object\n-   #96 = Utf8               access$002\n-   #97 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting;Ljava/lang/String;)Ljava/lang/String;\n-   #98 = Utf8               dev/langchain4j/model/input/structured/StructuredPromptProcessor\n-   #99 = Utf8               toPrompt\n-  #100 = Utf8               (Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n-  #101 = Utf8               dev/langchain4j/model/input/Prompt\n-  #102 = Utf8               text\n-  #103 = Utf8               ()Ljava/lang/String;\n-  #104 = Utf8               org/assertj/core/api/Assertions\n-  #105 = Utf8               assertThat\n-  #106 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #107 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #108 = Utf8               isEqualTo\n-  #109 = Utf8               access$102\n-  #110 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;Ljava/lang/String;)Ljava/lang/String;\n-  #111 = Utf8               access$202\n-  #112 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;I)I\n-  #113 = Utf8               java/util/Arrays\n-  #114 = Utf8               asList\n-  #115 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n-  #116 = Utf8               access$302\n-  #117 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;Ljava/util/List;)Ljava/util/List;\n-  #118 = Utf8               access$402\n-  #119 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;D)D\n-  #120 = Utf8               access$502\n-  #121 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;F)F\n-  #122 = Utf8               access$602\n-  #123 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;I)I\n-  #124 = Utf8               access$702\n-  #125 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;S)S\n-  #126 = Utf8               access$802\n-  #127 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;J)J\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Class              #8            // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting\n+    #8 = Utf8               dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting\n+    #9 = Methodref          #7.#3         // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting.\"<init>\":()V\n+   #10 = String             #11           // Klaus\n+   #11 = Utf8               Klaus\n+   #12 = Methodref          #7.#13        // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting.access$002:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting;Ljava/lang/String;)Ljava/lang/String;\n+   #13 = NameAndType        #14:#15       // access$002:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting;Ljava/lang/String;)Ljava/lang/String;\n+   #14 = Utf8               access$002\n+   #15 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting;Ljava/lang/String;)Ljava/lang/String;\n+   #16 = Methodref          #17.#18       // dev/langchain4j/model/input/structured/StructuredPromptProcessor.toPrompt:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n+   #17 = Class              #19           // dev/langchain4j/model/input/structured/StructuredPromptProcessor\n+   #18 = NameAndType        #20:#21       // toPrompt:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n+   #19 = Utf8               dev/langchain4j/model/input/structured/StructuredPromptProcessor\n+   #20 = Utf8               toPrompt\n+   #21 = Utf8               (Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n+   #22 = Methodref          #23.#24       // dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n+   #23 = Class              #25           // dev/langchain4j/model/input/Prompt\n+   #24 = NameAndType        #26:#27       // text:()Ljava/lang/String;\n+   #25 = Utf8               dev/langchain4j/model/input/Prompt\n+   #26 = Utf8               text\n+   #27 = Utf8               ()Ljava/lang/String;\n+   #28 = Methodref          #29.#30       // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #29 = Class              #31           // org/assertj/core/api/Assertions\n+   #30 = NameAndType        #32:#33       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #31 = Utf8               org/assertj/core/api/Assertions\n+   #32 = Utf8               assertThat\n+   #33 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #34 = String             #35           // Hello, my name is Klaus\n+   #35 = Utf8               Hello, my name is Klaus\n+   #36 = Methodref          #37.#38       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #37 = Class              #39           // org/assertj/core/api/AbstractStringAssert\n+   #38 = NameAndType        #40:#33       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #39 = Utf8               org/assertj/core/api/AbstractStringAssert\n+   #40 = Utf8               isEqualTo\n+   #41 = Class              #42           // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes\n+   #42 = Utf8               dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes\n+   #43 = Methodref          #41.#3        // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes.\"<init>\":()V\n+   #44 = String             #45           // salad\n+   #45 = Utf8               salad\n+   #46 = Methodref          #41.#47       // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes.access$102:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;Ljava/lang/String;)Ljava/lang/String;\n+   #47 = NameAndType        #48:#49       // access$102:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;Ljava/lang/String;)Ljava/lang/String;\n+   #48 = Utf8               access$102\n+   #49 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;Ljava/lang/String;)Ljava/lang/String;\n+   #50 = Methodref          #41.#51       // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes.access$202:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;I)I\n+   #51 = NameAndType        #52:#53       // access$202:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;I)I\n+   #52 = Utf8               access$202\n+   #53 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;I)I\n+   #54 = Class              #55           // java/lang/String\n+   #55 = Utf8               java/lang/String\n+   #56 = String             #57           // Tomato\n+   #57 = Utf8               Tomato\n+   #58 = String             #59           // Cucumber\n+   #59 = Utf8               Cucumber\n+   #60 = String             #61           // Onion\n+   #61 = Utf8               Onion\n+   #62 = Methodref          #63.#64       // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+   #63 = Class              #65           // java/util/Arrays\n+   #64 = NameAndType        #66:#67       // asList:([Ljava/lang/Object;)Ljava/util/List;\n+   #65 = Utf8               java/util/Arrays\n+   #66 = Utf8               asList\n+   #67 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n+   #68 = Methodref          #41.#69       // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes.access$302:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;Ljava/util/List;)Ljava/util/List;\n+   #69 = NameAndType        #70:#71       // access$302:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;Ljava/util/List;)Ljava/util/List;\n+   #70 = Utf8               access$302\n+   #71 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;Ljava/util/List;)Ljava/util/List;\n+   #72 = String             #73           // Suggest tasty salad recipes that can be prepared in 5 minutes.\\nI have only [Tomato, Cucumber, Onion] in my fridge.\n+   #73 = Utf8               Suggest tasty salad recipes that can be prepared in 5 minutes.\\nI have only [Tomato, Cucumber, Onion] in my fridge.\n+   #74 = Class              #75           // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers\n+   #75 = Utf8               dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers\n+   #76 = Methodref          #74.#3        // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.\"<init>\":()V\n+   #77 = Double             17.15d\n+   #79 = Methodref          #74.#80       // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.access$402:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;D)D\n+   #80 = NameAndType        #81:#82       // access$402:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;D)D\n+   #81 = Utf8               access$402\n+   #82 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;D)D\n+   #83 = Methodref          #74.#84       // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.access$502:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;F)F\n+   #84 = NameAndType        #85:#86       // access$502:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;F)F\n+   #85 = Utf8               access$502\n+   #86 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;F)F\n+   #87 = Methodref          #74.#88       // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.access$602:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;I)I\n+   #88 = NameAndType        #89:#90       // access$602:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;I)I\n+   #89 = Utf8               access$602\n+   #90 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;I)I\n+   #91 = Methodref          #74.#92       // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.access$702:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;S)S\n+   #92 = NameAndType        #93:#94       // access$702:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;S)S\n+   #93 = Utf8               access$702\n+   #94 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;S)S\n+   #95 = Long               12l\n+   #97 = Methodref          #74.#98       // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.access$802:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;J)J\n+   #98 = NameAndType        #99:#100      // access$802:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;J)J\n+   #99 = Utf8               access$802\n+  #100 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;J)J\n+  #101 = String             #102          // Example of numbers with floating point: 17.15, 1.0 and whole numbers: 2, 10, 12\n+  #102 = Utf8               Example of numbers with floating point: 17.15, 1.0 and whole numbers: 2, 10, 12\n+  #103 = Class              #104          // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n+  #104 = Utf8               dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n+  #105 = Utf8               Code\n+  #106 = Utf8               LineNumberTable\n+  #107 = Utf8               LocalVariableTable\n+  #108 = Utf8               this\n+  #109 = Utf8               Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest;\n+  #110 = Utf8               test_prompt_with_single_variable\n+  #111 = Utf8               structuredPrompt\n+  #112 = Utf8               Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting;\n+  #113 = Utf8               prompt\n+  #114 = Utf8               Ldev/langchain4j/model/input/Prompt;\n+  #115 = Utf8               RuntimeVisibleAnnotations\n+  #116 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #117 = Utf8               test_prompt_with_multiple_variables\n+  #118 = Utf8               Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;\n+  #119 = Utf8               test_prompt_with_various_number_types\n+  #120 = Utf8               numbers\n+  #121 = Utf8               Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;\n+  #122 = Utf8               SourceFile\n+  #123 = Utf8               StructuredPromptProcessorTest.java\n+  #124 = Utf8               InnerClasses\n+  #125 = Utf8               Greeting\n+  #126 = Utf8               SuggestRecipes\n+  #127 = Utf8               VariousNumbers\n {\n   dev.langchain4j.model.input.structured.StructuredPromptProcessorTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -149,90 +149,90 @@\n             0       5     0  this   Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest;\n \n   void test_prompt_with_single_variable();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=2, locals=3, args_size=1\n-         0: new           #2                  // class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting\n+         0: new           #7                  // class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting.\"<init>\":()V\n          7: astore_1\n          8: aload_1\n-         9: ldc           #4                  // String Klaus\n-        11: invokestatic  #5                  // Method dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting.access$002:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting;Ljava/lang/String;)Ljava/lang/String;\n+         9: ldc           #10                 // String Klaus\n+        11: invokestatic  #12                 // Method dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting.access$002:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting;Ljava/lang/String;)Ljava/lang/String;\n         14: pop\n         15: aload_1\n-        16: invokestatic  #6                  // Method dev/langchain4j/model/input/structured/StructuredPromptProcessor.toPrompt:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n+        16: invokestatic  #16                 // Method dev/langchain4j/model/input/structured/StructuredPromptProcessor.toPrompt:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n         19: astore_2\n         20: aload_2\n-        21: invokevirtual #7                  // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n-        24: invokestatic  #8                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        27: ldc           #9                  // String Hello, my name is Klaus\n-        29: invokevirtual #10                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        21: invokevirtual #22                 // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n+        24: invokestatic  #28                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        27: ldc           #34                 // String Hello, my name is Klaus\n+        29: invokevirtual #36                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         32: pop\n         33: return\n       LineNumberTable:\n         line 21: 0\n         line 22: 8\n         line 24: 15\n         line 26: 20\n         line 27: 33\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      34     0  this   Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest;\n             8      26     1 structuredPrompt   Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting;\n            20      14     2 prompt   Ldev/langchain4j/model/input/Prompt;\n     RuntimeVisibleAnnotations:\n-      0: #54()\n+      0: #116()\n         org.junit.jupiter.api.Test\n \n   void test_prompt_with_multiple_variables();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=5, locals=3, args_size=1\n-         0: new           #11                 // class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes\n+         0: new           #41                 // class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes\n          3: dup\n-         4: invokespecial #12                 // Method dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes.\"<init>\":()V\n+         4: invokespecial #43                 // Method dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes.\"<init>\":()V\n          7: astore_1\n          8: aload_1\n-         9: ldc           #13                 // String salad\n-        11: invokestatic  #14                 // Method dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes.access$102:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;Ljava/lang/String;)Ljava/lang/String;\n+         9: ldc           #44                 // String salad\n+        11: invokestatic  #46                 // Method dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes.access$102:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;Ljava/lang/String;)Ljava/lang/String;\n         14: pop\n         15: aload_1\n         16: iconst_5\n-        17: invokestatic  #15                 // Method dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes.access$202:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;I)I\n+        17: invokestatic  #50                 // Method dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes.access$202:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;I)I\n         20: pop\n         21: aload_1\n         22: iconst_3\n-        23: anewarray     #16                 // class java/lang/String\n+        23: anewarray     #54                 // class java/lang/String\n         26: dup\n         27: iconst_0\n-        28: ldc           #17                 // String Tomato\n+        28: ldc           #56                 // String Tomato\n         30: aastore\n         31: dup\n         32: iconst_1\n-        33: ldc           #18                 // String Cucumber\n+        33: ldc           #58                 // String Cucumber\n         35: aastore\n         36: dup\n         37: iconst_2\n-        38: ldc           #19                 // String Onion\n+        38: ldc           #60                 // String Onion\n         40: aastore\n-        41: invokestatic  #20                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-        44: invokestatic  #21                 // Method dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes.access$302:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;Ljava/util/List;)Ljava/util/List;\n+        41: invokestatic  #62                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        44: invokestatic  #68                 // Method dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes.access$302:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;Ljava/util/List;)Ljava/util/List;\n         47: pop\n         48: aload_1\n-        49: invokestatic  #6                  // Method dev/langchain4j/model/input/structured/StructuredPromptProcessor.toPrompt:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n+        49: invokestatic  #16                 // Method dev/langchain4j/model/input/structured/StructuredPromptProcessor.toPrompt:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n         52: astore_2\n         53: aload_2\n-        54: invokevirtual #7                  // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n-        57: invokestatic  #8                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        60: ldc           #22                 // String Suggest tasty salad recipes that can be prepared in 5 minutes.\\nI have only [Tomato, Cucumber, Onion] in my fridge.\n-        62: invokevirtual #10                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        54: invokevirtual #22                 // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n+        57: invokestatic  #28                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        60: ldc           #72                 // String Suggest tasty salad recipes that can be prepared in 5 minutes.\\nI have only [Tomato, Cucumber, Onion] in my fridge.\n+        62: invokevirtual #36                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         65: pop\n         66: return\n       LineNumberTable:\n         line 44: 0\n         line 45: 8\n         line 46: 15\n         line 47: 21\n@@ -242,54 +242,54 @@\n         line 55: 66\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      67     0  this   Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest;\n             8      59     1 structuredPrompt   Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;\n            53      14     2 prompt   Ldev/langchain4j/model/input/Prompt;\n     RuntimeVisibleAnnotations:\n-      0: #54()\n+      0: #116()\n         org.junit.jupiter.api.Test\n \n   void test_prompt_with_various_number_types();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=3, locals=3, args_size=1\n-         0: new           #23                 // class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers\n+         0: new           #74                 // class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers\n          3: dup\n-         4: invokespecial #24                 // Method dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.\"<init>\":()V\n+         4: invokespecial #76                 // Method dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.\"<init>\":()V\n          7: astore_1\n          8: aload_1\n-         9: ldc2_w        #25                 // double 17.15d\n-        12: invokestatic  #27                 // Method dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.access$402:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;D)D\n+         9: ldc2_w        #77                 // double 17.15d\n+        12: invokestatic  #79                 // Method dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.access$402:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;D)D\n         15: pop2\n         16: aload_1\n         17: fconst_1\n-        18: invokestatic  #28                 // Method dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.access$502:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;F)F\n+        18: invokestatic  #83                 // Method dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.access$502:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;F)F\n         21: pop\n         22: aload_1\n         23: iconst_2\n-        24: invokestatic  #29                 // Method dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.access$602:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;I)I\n+        24: invokestatic  #87                 // Method dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.access$602:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;I)I\n         27: pop\n         28: aload_1\n         29: bipush        10\n-        31: invokestatic  #30                 // Method dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.access$702:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;S)S\n+        31: invokestatic  #91                 // Method dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.access$702:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;S)S\n         34: pop\n         35: aload_1\n-        36: ldc2_w        #31                 // long 12l\n-        39: invokestatic  #33                 // Method dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.access$802:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;J)J\n+        36: ldc2_w        #95                 // long 12l\n+        39: invokestatic  #97                 // Method dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.access$802:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;J)J\n         42: pop2\n         43: aload_1\n-        44: invokestatic  #6                  // Method dev/langchain4j/model/input/structured/StructuredPromptProcessor.toPrompt:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n+        44: invokestatic  #16                 // Method dev/langchain4j/model/input/structured/StructuredPromptProcessor.toPrompt:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n         47: astore_2\n         48: aload_2\n-        49: invokevirtual #7                  // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n-        52: invokestatic  #8                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        55: ldc           #34                 // String Example of numbers with floating point: 17.15, 1.0 and whole numbers: 2, 10, 12\n-        57: invokevirtual #10                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        49: invokevirtual #22                 // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n+        52: invokestatic  #28                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        55: ldc           #101                // String Example of numbers with floating point: 17.15, 1.0 and whole numbers: 2, 10, 12\n+        57: invokevirtual #36                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         60: pop\n         61: return\n       LineNumberTable:\n         line 71: 0\n         line 72: 8\n         line 73: 16\n         line 74: 22\n@@ -301,15 +301,15 @@\n         line 82: 61\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      62     0  this   Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest;\n             8      54     1 numbers   Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;\n            48      14     2 prompt   Ldev/langchain4j/model/input/Prompt;\n     RuntimeVisibleAnnotations:\n-      0: #54()\n+      0: #116()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"StructuredPromptProcessorTest.java\"\n InnerClasses:\n-  static #37= #23 of #35;                 // VariousNumbers=class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers of class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n-  static #39= #11 of #35;                 // SuggestRecipes=class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes of class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n-  static #40= #2 of #35;                  // Greeting=class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting of class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n+  static #125= #7 of #103;                // Greeting=class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting of class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n+  static #126= #41 of #103;               // SuggestRecipes=class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes of class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n+  static #127= #74 of #103;               // VariousNumbers=class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers of class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n"}]}, {"source1": "dev/langchain4j/model/language/LanguageModelTest$EchoLanguageModel.class", "source2": "dev/langchain4j/model/language/LanguageModelTest$EchoLanguageModel.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,49 +1,49 @@\n-  SHA-256 checksum 6ee09b27db4a82fce39a8bde7cb66f002118c387c80488e597a03304c5c66207\n+  SHA-256 checksum 83f11c2cab4d1bffe8134f7fa4f8fd8a8345b4e3a9a9e7037cf094c29987f4e1\n   Compiled from \"LanguageModelTest.java\"\n public class dev.langchain4j.model.language.LanguageModelTest$EchoLanguageModel implements dev.langchain4j.model.language.LanguageModel\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #4                          // dev/langchain4j/model/language/LanguageModelTest$EchoLanguageModel\n-  super_class: #5                         // java/lang/Object\n+  this_class: #12                         // dev/langchain4j/model/language/LanguageModelTest$EchoLanguageModel\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 2\n Constant pool:\n-   #1 = Methodref          #5.#24         // java/lang/Object.\"<init>\":()V\n-   #2 = Class              #25            // dev/langchain4j/model/output/Response\n-   #3 = Methodref          #2.#26         // dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n-   #4 = Class              #28            // dev/langchain4j/model/language/LanguageModelTest$EchoLanguageModel\n-   #5 = Class              #29            // java/lang/Object\n-   #6 = Class              #30            // dev/langchain4j/model/language/LanguageModel\n-   #7 = Utf8               <init>\n-   #8 = Utf8               ()V\n-   #9 = Utf8               Code\n-  #10 = Utf8               LineNumberTable\n-  #11 = Utf8               LocalVariableTable\n-  #12 = Utf8               this\n-  #13 = Utf8               EchoLanguageModel\n-  #14 = Utf8               InnerClasses\n-  #15 = Utf8               Ldev/langchain4j/model/language/LanguageModelTest$EchoLanguageModel;\n-  #16 = Utf8               generate\n-  #17 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n-  #18 = Utf8               prompt\n-  #19 = Utf8               Ljava/lang/String;\n-  #20 = Utf8               Signature\n-  #21 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/output/Response<Ljava/lang/String;>;\n-  #22 = Utf8               SourceFile\n-  #23 = Utf8               LanguageModelTest.java\n-  #24 = NameAndType        #7:#8          // \"<init>\":()V\n-  #25 = Utf8               dev/langchain4j/model/output/Response\n-  #26 = NameAndType        #7:#31         // \"<init>\":(Ljava/lang/Object;)V\n-  #27 = Class              #32            // dev/langchain4j/model/language/LanguageModelTest\n-  #28 = Utf8               dev/langchain4j/model/language/LanguageModelTest$EchoLanguageModel\n-  #29 = Utf8               java/lang/Object\n-  #30 = Utf8               dev/langchain4j/model/language/LanguageModel\n-  #31 = Utf8               (Ljava/lang/Object;)V\n-  #32 = Utf8               dev/langchain4j/model/language/LanguageModelTest\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Class              #8             // dev/langchain4j/model/output/Response\n+   #8 = Utf8               dev/langchain4j/model/output/Response\n+   #9 = Methodref          #7.#10         // dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n+  #10 = NameAndType        #5:#11         // \"<init>\":(Ljava/lang/Object;)V\n+  #11 = Utf8               (Ljava/lang/Object;)V\n+  #12 = Class              #13            // dev/langchain4j/model/language/LanguageModelTest$EchoLanguageModel\n+  #13 = Utf8               dev/langchain4j/model/language/LanguageModelTest$EchoLanguageModel\n+  #14 = Class              #15            // dev/langchain4j/model/language/LanguageModel\n+  #15 = Utf8               dev/langchain4j/model/language/LanguageModel\n+  #16 = Utf8               Code\n+  #17 = Utf8               LineNumberTable\n+  #18 = Utf8               LocalVariableTable\n+  #19 = Utf8               this\n+  #20 = Utf8               Ldev/langchain4j/model/language/LanguageModelTest$EchoLanguageModel;\n+  #21 = Utf8               generate\n+  #22 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+  #23 = Utf8               prompt\n+  #24 = Utf8               Ljava/lang/String;\n+  #25 = Utf8               Signature\n+  #26 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/output/Response<Ljava/lang/String;>;\n+  #27 = Utf8               SourceFile\n+  #28 = Utf8               LanguageModelTest.java\n+  #29 = Utf8               InnerClasses\n+  #30 = Class              #31            // dev/langchain4j/model/language/LanguageModelTest\n+  #31 = Utf8               dev/langchain4j/model/language/LanguageModelTest\n+  #32 = Utf8               EchoLanguageModel\n {\n   public dev.langchain4j.model.language.LanguageModelTest$EchoLanguageModel();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -56,23 +56,23 @@\n             0       5     0  this   Ldev/langchain4j/model/language/LanguageModelTest$EchoLanguageModel;\n \n   public dev.langchain4j.model.output.Response<java.lang.String> generate(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=2, args_size=2\n-         0: new           #2                  // class dev/langchain4j/model/output/Response\n+         0: new           #7                  // class dev/langchain4j/model/output/Response\n          3: dup\n          4: aload_1\n-         5: invokespecial #3                  // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n+         5: invokespecial #9                  // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n          8: areturn\n       LineNumberTable:\n         line 12: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       9     0  this   Ldev/langchain4j/model/language/LanguageModelTest$EchoLanguageModel;\n             0       9     1 prompt   Ljava/lang/String;\n-    Signature: #21                          // (Ljava/lang/String;)Ldev/langchain4j/model/output/Response<Ljava/lang/String;>;\n+    Signature: #26                          // (Ljava/lang/String;)Ldev/langchain4j/model/output/Response<Ljava/lang/String;>;\n }\n SourceFile: \"LanguageModelTest.java\"\n InnerClasses:\n-  public static #13= #4 of #27;           // EchoLanguageModel=class dev/langchain4j/model/language/LanguageModelTest$EchoLanguageModel of class dev/langchain4j/model/language/LanguageModelTest\n+  public static #32= #12 of #30;          // EchoLanguageModel=class dev/langchain4j/model/language/LanguageModelTest$EchoLanguageModel of class dev/langchain4j/model/language/LanguageModelTest\n"}]}, {"source1": "dev/langchain4j/model/language/LanguageModelTest.class", "source2": "dev/langchain4j/model/language/LanguageModelTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,73 +1,73 @@\n-  SHA-256 checksum 0e042716ae98f91041ed2acbac21f3a8fa0434cbae2c556dcf24d857ff9b5677\n+  SHA-256 checksum e7794ec2cf788d1825b2ec957e5536cd1ab9f37cc5328552ffc48192bdbfbca1\n   Compiled from \"LanguageModelTest.java\"\n class dev.langchain4j.model.language.LanguageModelTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #11                         // dev/langchain4j/model/language/LanguageModelTest\n-  super_class: #12                        // java/lang/Object\n+  this_class: #25                         // dev/langchain4j/model/language/LanguageModelTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 2\n Constant pool:\n-   #1 = Methodref          #12.#30        // java/lang/Object.\"<init>\":()V\n-   #2 = Class              #31            // dev/langchain4j/model/language/LanguageModelTest$EchoLanguageModel\n-   #3 = Methodref          #2.#30         // dev/langchain4j/model/language/LanguageModelTest$EchoLanguageModel.\"<init>\":()V\n-   #4 = String             #32            // text\n-   #5 = Methodref          #33.#34        // dev/langchain4j/model/input/Prompt.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n-   #6 = InterfaceMethodref #35.#36        // dev/langchain4j/model/language/LanguageModel.generate:(Ldev/langchain4j/model/input/Prompt;)Ldev/langchain4j/model/output/Response;\n-   #7 = Methodref          #11.#37        // dev/langchain4j/model/language/LanguageModelTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #8 = Class              #38            // dev/langchain4j/model/output/Response\n-   #9 = Methodref          #8.#39         // dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n-  #10 = Methodref          #40.#41        // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #11 = Class              #42            // dev/langchain4j/model/language/LanguageModelTest\n-  #12 = Class              #43            // java/lang/Object\n-  #13 = Class              #44            // org/assertj/core/api/WithAssertions\n-  #14 = Utf8               EchoLanguageModel\n-  #15 = Utf8               InnerClasses\n-  #16 = Utf8               <init>\n-  #17 = Utf8               ()V\n-  #18 = Utf8               Code\n-  #19 = Utf8               LineNumberTable\n-  #20 = Utf8               LocalVariableTable\n-  #21 = Utf8               this\n-  #22 = Utf8               Ldev/langchain4j/model/language/LanguageModelTest;\n-  #23 = Utf8               test_generate\n-  #24 = Utf8               model\n-  #25 = Utf8               Ldev/langchain4j/model/language/LanguageModel;\n-  #26 = Utf8               RuntimeVisibleAnnotations\n-  #27 = Utf8               Lorg/junit/jupiter/api/Test;\n-  #28 = Utf8               SourceFile\n-  #29 = Utf8               LanguageModelTest.java\n-  #30 = NameAndType        #16:#17        // \"<init>\":()V\n-  #31 = Utf8               dev/langchain4j/model/language/LanguageModelTest$EchoLanguageModel\n-  #32 = Utf8               text\n-  #33 = Class              #45            // dev/langchain4j/model/input/Prompt\n-  #34 = NameAndType        #46:#47        // from:(Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n-  #35 = Class              #48            // dev/langchain4j/model/language/LanguageModel\n-  #36 = NameAndType        #49:#50        // generate:(Ldev/langchain4j/model/input/Prompt;)Ldev/langchain4j/model/output/Response;\n-  #37 = NameAndType        #51:#52        // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #38 = Utf8               dev/langchain4j/model/output/Response\n-  #39 = NameAndType        #16:#53        // \"<init>\":(Ljava/lang/Object;)V\n-  #40 = Class              #54            // org/assertj/core/api/ObjectAssert\n-  #41 = NameAndType        #55:#56        // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #42 = Utf8               dev/langchain4j/model/language/LanguageModelTest\n-  #43 = Utf8               java/lang/Object\n-  #44 = Utf8               org/assertj/core/api/WithAssertions\n-  #45 = Utf8               dev/langchain4j/model/input/Prompt\n-  #46 = Utf8               from\n-  #47 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n-  #48 = Utf8               dev/langchain4j/model/language/LanguageModel\n-  #49 = Utf8               generate\n-  #50 = Utf8               (Ldev/langchain4j/model/input/Prompt;)Ldev/langchain4j/model/output/Response;\n-  #51 = Utf8               assertThat\n-  #52 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #53 = Utf8               (Ljava/lang/Object;)V\n-  #54 = Utf8               org/assertj/core/api/ObjectAssert\n-  #55 = Utf8               isEqualTo\n-  #56 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Class              #8             // dev/langchain4j/model/language/LanguageModelTest$EchoLanguageModel\n+   #8 = Utf8               dev/langchain4j/model/language/LanguageModelTest$EchoLanguageModel\n+   #9 = Methodref          #7.#3          // dev/langchain4j/model/language/LanguageModelTest$EchoLanguageModel.\"<init>\":()V\n+  #10 = String             #11            // text\n+  #11 = Utf8               text\n+  #12 = Methodref          #13.#14        // dev/langchain4j/model/input/Prompt.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n+  #13 = Class              #15            // dev/langchain4j/model/input/Prompt\n+  #14 = NameAndType        #16:#17        // from:(Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n+  #15 = Utf8               dev/langchain4j/model/input/Prompt\n+  #16 = Utf8               from\n+  #17 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n+  #18 = InterfaceMethodref #19.#20        // dev/langchain4j/model/language/LanguageModel.generate:(Ldev/langchain4j/model/input/Prompt;)Ldev/langchain4j/model/output/Response;\n+  #19 = Class              #21            // dev/langchain4j/model/language/LanguageModel\n+  #20 = NameAndType        #22:#23        // generate:(Ldev/langchain4j/model/input/Prompt;)Ldev/langchain4j/model/output/Response;\n+  #21 = Utf8               dev/langchain4j/model/language/LanguageModel\n+  #22 = Utf8               generate\n+  #23 = Utf8               (Ldev/langchain4j/model/input/Prompt;)Ldev/langchain4j/model/output/Response;\n+  #24 = Methodref          #25.#26        // dev/langchain4j/model/language/LanguageModelTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+  #25 = Class              #27            // dev/langchain4j/model/language/LanguageModelTest\n+  #26 = NameAndType        #28:#29        // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+  #27 = Utf8               dev/langchain4j/model/language/LanguageModelTest\n+  #28 = Utf8               assertThat\n+  #29 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+  #30 = Class              #31            // dev/langchain4j/model/output/Response\n+  #31 = Utf8               dev/langchain4j/model/output/Response\n+  #32 = Methodref          #30.#33        // dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n+  #33 = NameAndType        #5:#34         // \"<init>\":(Ljava/lang/Object;)V\n+  #34 = Utf8               (Ljava/lang/Object;)V\n+  #35 = Methodref          #36.#37        // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #36 = Class              #38            // org/assertj/core/api/ObjectAssert\n+  #37 = NameAndType        #39:#40        // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #38 = Utf8               org/assertj/core/api/ObjectAssert\n+  #39 = Utf8               isEqualTo\n+  #40 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #41 = Class              #42            // org/assertj/core/api/WithAssertions\n+  #42 = Utf8               org/assertj/core/api/WithAssertions\n+  #43 = Utf8               Code\n+  #44 = Utf8               LineNumberTable\n+  #45 = Utf8               LocalVariableTable\n+  #46 = Utf8               this\n+  #47 = Utf8               Ldev/langchain4j/model/language/LanguageModelTest;\n+  #48 = Utf8               test_generate\n+  #49 = Utf8               model\n+  #50 = Utf8               Ldev/langchain4j/model/language/LanguageModel;\n+  #51 = Utf8               RuntimeVisibleAnnotations\n+  #52 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #53 = Utf8               SourceFile\n+  #54 = Utf8               LanguageModelTest.java\n+  #55 = Utf8               InnerClasses\n+  #56 = Utf8               EchoLanguageModel\n {\n   dev.langchain4j.model.language.LanguageModelTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -80,40 +80,40 @@\n             0       5     0  this   Ldev/langchain4j/model/language/LanguageModelTest;\n \n   public void test_generate();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=4, locals=2, args_size=1\n-         0: new           #2                  // class dev/langchain4j/model/language/LanguageModelTest$EchoLanguageModel\n+         0: new           #7                  // class dev/langchain4j/model/language/LanguageModelTest$EchoLanguageModel\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/model/language/LanguageModelTest$EchoLanguageModel.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/model/language/LanguageModelTest$EchoLanguageModel.\"<init>\":()V\n          7: astore_1\n          8: aload_0\n          9: aload_1\n-        10: ldc           #4                  // String text\n-        12: invokestatic  #5                  // Method dev/langchain4j/model/input/Prompt.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n-        15: invokeinterface #6,  2            // InterfaceMethod dev/langchain4j/model/language/LanguageModel.generate:(Ldev/langchain4j/model/input/Prompt;)Ldev/langchain4j/model/output/Response;\n-        20: invokevirtual #7                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        23: new           #8                  // class dev/langchain4j/model/output/Response\n+        10: ldc           #10                 // String text\n+        12: invokestatic  #12                 // Method dev/langchain4j/model/input/Prompt.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n+        15: invokeinterface #18,  2           // InterfaceMethod dev/langchain4j/model/language/LanguageModel.generate:(Ldev/langchain4j/model/input/Prompt;)Ldev/langchain4j/model/output/Response;\n+        20: invokevirtual #24                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        23: new           #30                 // class dev/langchain4j/model/output/Response\n         26: dup\n-        27: ldc           #4                  // String text\n-        29: invokespecial #9                  // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n-        32: invokevirtual #10                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        27: ldc           #10                 // String text\n+        29: invokespecial #32                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n+        32: invokevirtual #35                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         35: pop\n         36: return\n       LineNumberTable:\n         line 18: 0\n         line 20: 8\n         line 21: 32\n         line 22: 36\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      37     0  this   Ldev/langchain4j/model/language/LanguageModelTest;\n             8      29     1 model   Ldev/langchain4j/model/language/LanguageModel;\n     RuntimeVisibleAnnotations:\n-      0: #27()\n+      0: #52()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"LanguageModelTest.java\"\n InnerClasses:\n-  public static #14= #2 of #11;           // EchoLanguageModel=class dev/langchain4j/model/language/LanguageModelTest$EchoLanguageModel of class dev/langchain4j/model/language/LanguageModelTest\n+  public static #56= #7 of #25;           // EchoLanguageModel=class dev/langchain4j/model/language/LanguageModelTest$EchoLanguageModel of class dev/langchain4j/model/language/LanguageModelTest\n"}]}, {"source1": "dev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler.class", "source2": "dev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,69 +1,69 @@\n-  SHA-256 checksum 8dd65dabc31f8f05f3c9cfe00419f5961535dc61f79fa740988dd049ff09da1f\n+  SHA-256 checksum 1acc81d570554e65083602d8a60bbf7628543a6afea29feb4c3108cb36b3de5d\n   Compiled from \"StreamingLanguageModelTest.java\"\n public class dev.langchain4j.model.language.StreamingLanguageModelTest$CaptureHandler<T extends java.lang.Object> extends java.lang.Object implements dev.langchain4j.model.StreamingResponseHandler<T>\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #6                          // dev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler\n-  super_class: #7                         // java/lang/Object\n+  this_class: #15                         // dev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 1, methods: 4, attributes: 3\n Constant pool:\n-   #1 = Methodref          #7.#38         // java/lang/Object.\"<init>\":()V\n-   #2 = Class              #39            // java/lang/RuntimeException\n-   #3 = String             #40            // Not implemented\n-   #4 = Methodref          #2.#41         // java/lang/RuntimeException.\"<init>\":(Ljava/lang/String;)V\n-   #5 = Fieldref           #6.#42         // dev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler.response:Ldev/langchain4j/model/output/Response;\n-   #6 = Class              #44            // dev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler\n-   #7 = Class              #45            // java/lang/Object\n-   #8 = Class              #46            // dev/langchain4j/model/StreamingResponseHandler\n-   #9 = Utf8               response\n-  #10 = Utf8               Ldev/langchain4j/model/output/Response;\n-  #11 = Utf8               Signature\n-  #12 = Utf8               Ldev/langchain4j/model/output/Response<TT;>;\n-  #13 = Utf8               <init>\n-  #14 = Utf8               ()V\n-  #15 = Utf8               Code\n-  #16 = Utf8               LineNumberTable\n-  #17 = Utf8               LocalVariableTable\n-  #18 = Utf8               this\n-  #19 = Utf8               CaptureHandler\n-  #20 = Utf8               InnerClasses\n-  #21 = Utf8               Ldev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler;\n-  #22 = Utf8               LocalVariableTypeTable\n-  #23 = Utf8               Ldev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler<TT;>;\n-  #24 = Utf8               onNext\n-  #25 = Utf8               (Ljava/lang/String;)V\n-  #26 = Utf8               token\n-  #27 = Utf8               Ljava/lang/String;\n-  #28 = Utf8               onComplete\n-  #29 = Utf8               (Ldev/langchain4j/model/output/Response;)V\n-  #30 = Utf8               (Ldev/langchain4j/model/output/Response<TT;>;)V\n-  #31 = Utf8               onError\n-  #32 = Utf8               (Ljava/lang/Throwable;)V\n-  #33 = Utf8               error\n-  #34 = Utf8               Ljava/lang/Throwable;\n-  #35 = Utf8               <T:Ljava/lang/Object;>Ljava/lang/Object;Ldev/langchain4j/model/StreamingResponseHandler<TT;>;\n-  #36 = Utf8               SourceFile\n-  #37 = Utf8               StreamingLanguageModelTest.java\n-  #38 = NameAndType        #13:#14        // \"<init>\":()V\n-  #39 = Utf8               java/lang/RuntimeException\n-  #40 = Utf8               Not implemented\n-  #41 = NameAndType        #13:#25        // \"<init>\":(Ljava/lang/String;)V\n-  #42 = NameAndType        #9:#10         // response:Ldev/langchain4j/model/output/Response;\n-  #43 = Class              #47            // dev/langchain4j/model/language/StreamingLanguageModelTest\n-  #44 = Utf8               dev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler\n-  #45 = Utf8               java/lang/Object\n-  #46 = Utf8               dev/langchain4j/model/StreamingResponseHandler\n-  #47 = Utf8               dev/langchain4j/model/language/StreamingLanguageModelTest\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Class              #8             // java/lang/RuntimeException\n+   #8 = Utf8               java/lang/RuntimeException\n+   #9 = String             #10            // Not implemented\n+  #10 = Utf8               Not implemented\n+  #11 = Methodref          #7.#12         // java/lang/RuntimeException.\"<init>\":(Ljava/lang/String;)V\n+  #12 = NameAndType        #5:#13         // \"<init>\":(Ljava/lang/String;)V\n+  #13 = Utf8               (Ljava/lang/String;)V\n+  #14 = Fieldref           #15.#16        // dev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler.response:Ldev/langchain4j/model/output/Response;\n+  #15 = Class              #17            // dev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler\n+  #16 = NameAndType        #18:#19        // response:Ldev/langchain4j/model/output/Response;\n+  #17 = Utf8               dev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler\n+  #18 = Utf8               response\n+  #19 = Utf8               Ldev/langchain4j/model/output/Response;\n+  #20 = Class              #21            // dev/langchain4j/model/StreamingResponseHandler\n+  #21 = Utf8               dev/langchain4j/model/StreamingResponseHandler\n+  #22 = Utf8               Signature\n+  #23 = Utf8               Ldev/langchain4j/model/output/Response<TT;>;\n+  #24 = Utf8               Code\n+  #25 = Utf8               LineNumberTable\n+  #26 = Utf8               LocalVariableTable\n+  #27 = Utf8               this\n+  #28 = Utf8               Ldev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler;\n+  #29 = Utf8               LocalVariableTypeTable\n+  #30 = Utf8               Ldev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler<TT;>;\n+  #31 = Utf8               onNext\n+  #32 = Utf8               token\n+  #33 = Utf8               Ljava/lang/String;\n+  #34 = Utf8               onComplete\n+  #35 = Utf8               (Ldev/langchain4j/model/output/Response;)V\n+  #36 = Utf8               (Ldev/langchain4j/model/output/Response<TT;>;)V\n+  #37 = Utf8               onError\n+  #38 = Utf8               (Ljava/lang/Throwable;)V\n+  #39 = Utf8               error\n+  #40 = Utf8               Ljava/lang/Throwable;\n+  #41 = Utf8               <T:Ljava/lang/Object;>Ljava/lang/Object;Ldev/langchain4j/model/StreamingResponseHandler<TT;>;\n+  #42 = Utf8               SourceFile\n+  #43 = Utf8               StreamingLanguageModelTest.java\n+  #44 = Utf8               InnerClasses\n+  #45 = Class              #46            // dev/langchain4j/model/language/StreamingLanguageModelTest\n+  #46 = Utf8               dev/langchain4j/model/language/StreamingLanguageModelTest\n+  #47 = Utf8               CaptureHandler\n {\n   dev.langchain4j.model.output.Response<T> response;\n     descriptor: Ldev/langchain4j/model/output/Response;\n     flags: (0x0000)\n-    Signature: #12                          // Ldev/langchain4j/model/output/Response<TT;>;\n+    Signature: #23                          // Ldev/langchain4j/model/output/Response<TT;>;\n \n   public dev.langchain4j.model.language.StreamingLanguageModelTest$CaptureHandler();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -79,18 +79,18 @@\n             0       5     0  this   Ldev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler<TT;>;\n \n   public void onNext(java.lang.String);\n     descriptor: (Ljava/lang/String;)V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=2, args_size=2\n-         0: new           #2                  // class java/lang/RuntimeException\n+         0: new           #7                  // class java/lang/RuntimeException\n          3: dup\n-         4: ldc           #3                  // String Not implemented\n-         6: invokespecial #4                  // Method java/lang/RuntimeException.\"<init>\":(Ljava/lang/String;)V\n+         4: ldc           #9                  // String Not implemented\n+         6: invokespecial #11                 // Method java/lang/RuntimeException.\"<init>\":(Ljava/lang/String;)V\n          9: athrow\n       LineNumberTable:\n         line 23: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      10     0  this   Ldev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler;\n             0      10     1 token   Ljava/lang/String;\n@@ -101,46 +101,46 @@\n   public void onComplete(dev.langchain4j.model.output.Response<T>);\n     descriptor: (Ldev/langchain4j/model/output/Response;)V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #5                  // Field response:Ldev/langchain4j/model/output/Response;\n+         2: putfield      #14                 // Field response:Ldev/langchain4j/model/output/Response;\n          5: return\n       LineNumberTable:\n         line 28: 0\n         line 29: 5\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       6     0  this   Ldev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler;\n             0       6     1 response   Ldev/langchain4j/model/output/Response;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0       6     0  this   Ldev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler<TT;>;\n             0       6     1 response   Ldev/langchain4j/model/output/Response<TT;>;\n-    Signature: #30                          // (Ldev/langchain4j/model/output/Response<TT;>;)V\n+    Signature: #36                          // (Ldev/langchain4j/model/output/Response<TT;>;)V\n \n   public void onError(java.lang.Throwable);\n     descriptor: (Ljava/lang/Throwable;)V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=2, args_size=2\n-         0: new           #2                  // class java/lang/RuntimeException\n+         0: new           #7                  // class java/lang/RuntimeException\n          3: dup\n-         4: ldc           #3                  // String Not implemented\n-         6: invokespecial #4                  // Method java/lang/RuntimeException.\"<init>\":(Ljava/lang/String;)V\n+         4: ldc           #9                  // String Not implemented\n+         6: invokespecial #11                 // Method java/lang/RuntimeException.\"<init>\":(Ljava/lang/String;)V\n          9: athrow\n       LineNumberTable:\n         line 33: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      10     0  this   Ldev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler;\n             0      10     1 error   Ljava/lang/Throwable;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0      10     0  this   Ldev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler<TT;>;\n }\n-Signature: #35                          // <T:Ljava/lang/Object;>Ljava/lang/Object;Ldev/langchain4j/model/StreamingResponseHandler<TT;>;\n+Signature: #41                          // <T:Ljava/lang/Object;>Ljava/lang/Object;Ldev/langchain4j/model/StreamingResponseHandler<TT;>;\n SourceFile: \"StreamingLanguageModelTest.java\"\n InnerClasses:\n-  public static #19= #6 of #43;           // CaptureHandler=class dev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler of class dev/langchain4j/model/language/StreamingLanguageModelTest\n+  public static #47= #15 of #45;          // CaptureHandler=class dev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler of class dev/langchain4j/model/language/StreamingLanguageModelTest\n"}]}, {"source1": "dev/langchain4j/model/language/StreamingLanguageModelTest$EchoStreamingLanguageModel.class", "source2": "dev/langchain4j/model/language/StreamingLanguageModelTest$EchoStreamingLanguageModel.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,59 +1,59 @@\n-  SHA-256 checksum 7e0298ba8cd36d87d316a6621a88ab9c13905565c0c8064a9720417b525a636a\n+  SHA-256 checksum 1ae087f952fd500c74372fd717c327519a6bf632810f0e54a8cc52f3ca489045\n   Compiled from \"StreamingLanguageModelTest.java\"\n public class dev.langchain4j.model.language.StreamingLanguageModelTest$EchoStreamingLanguageModel implements dev.langchain4j.model.language.StreamingLanguageModel\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #5                          // dev/langchain4j/model/language/StreamingLanguageModelTest$EchoStreamingLanguageModel\n-  super_class: #6                         // java/lang/Object\n+  this_class: #18                         // dev/langchain4j/model/language/StreamingLanguageModelTest$EchoStreamingLanguageModel\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 2\n Constant pool:\n-   #1 = Methodref          #6.#29         // java/lang/Object.\"<init>\":()V\n-   #2 = Class              #30            // dev/langchain4j/model/output/Response\n-   #3 = Methodref          #2.#31         // dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n-   #4 = InterfaceMethodref #32.#33        // dev/langchain4j/model/StreamingResponseHandler.onComplete:(Ldev/langchain4j/model/output/Response;)V\n-   #5 = Class              #35            // dev/langchain4j/model/language/StreamingLanguageModelTest$EchoStreamingLanguageModel\n-   #6 = Class              #36            // java/lang/Object\n-   #7 = Class              #37            // dev/langchain4j/model/language/StreamingLanguageModel\n-   #8 = Utf8               <init>\n-   #9 = Utf8               ()V\n-  #10 = Utf8               Code\n-  #11 = Utf8               LineNumberTable\n-  #12 = Utf8               LocalVariableTable\n-  #13 = Utf8               this\n-  #14 = Utf8               EchoStreamingLanguageModel\n-  #15 = Utf8               InnerClasses\n-  #16 = Utf8               Ldev/langchain4j/model/language/StreamingLanguageModelTest$EchoStreamingLanguageModel;\n-  #17 = Utf8               generate\n-  #18 = Utf8               (Ljava/lang/String;Ldev/langchain4j/model/StreamingResponseHandler;)V\n-  #19 = Utf8               prompt\n-  #20 = Utf8               Ljava/lang/String;\n-  #21 = Utf8               handler\n-  #22 = Utf8               Ldev/langchain4j/model/StreamingResponseHandler;\n-  #23 = Utf8               LocalVariableTypeTable\n-  #24 = Utf8               Ldev/langchain4j/model/StreamingResponseHandler<Ljava/lang/String;>;\n-  #25 = Utf8               Signature\n-  #26 = Utf8               (Ljava/lang/String;Ldev/langchain4j/model/StreamingResponseHandler<Ljava/lang/String;>;)V\n-  #27 = Utf8               SourceFile\n-  #28 = Utf8               StreamingLanguageModelTest.java\n-  #29 = NameAndType        #8:#9          // \"<init>\":()V\n-  #30 = Utf8               dev/langchain4j/model/output/Response\n-  #31 = NameAndType        #8:#38         // \"<init>\":(Ljava/lang/Object;)V\n-  #32 = Class              #39            // dev/langchain4j/model/StreamingResponseHandler\n-  #33 = NameAndType        #40:#41        // onComplete:(Ldev/langchain4j/model/output/Response;)V\n-  #34 = Class              #42            // dev/langchain4j/model/language/StreamingLanguageModelTest\n-  #35 = Utf8               dev/langchain4j/model/language/StreamingLanguageModelTest$EchoStreamingLanguageModel\n-  #36 = Utf8               java/lang/Object\n-  #37 = Utf8               dev/langchain4j/model/language/StreamingLanguageModel\n-  #38 = Utf8               (Ljava/lang/Object;)V\n-  #39 = Utf8               dev/langchain4j/model/StreamingResponseHandler\n-  #40 = Utf8               onComplete\n-  #41 = Utf8               (Ldev/langchain4j/model/output/Response;)V\n-  #42 = Utf8               dev/langchain4j/model/language/StreamingLanguageModelTest\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Class              #8             // dev/langchain4j/model/output/Response\n+   #8 = Utf8               dev/langchain4j/model/output/Response\n+   #9 = Methodref          #7.#10         // dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n+  #10 = NameAndType        #5:#11         // \"<init>\":(Ljava/lang/Object;)V\n+  #11 = Utf8               (Ljava/lang/Object;)V\n+  #12 = InterfaceMethodref #13.#14        // dev/langchain4j/model/StreamingResponseHandler.onComplete:(Ldev/langchain4j/model/output/Response;)V\n+  #13 = Class              #15            // dev/langchain4j/model/StreamingResponseHandler\n+  #14 = NameAndType        #16:#17        // onComplete:(Ldev/langchain4j/model/output/Response;)V\n+  #15 = Utf8               dev/langchain4j/model/StreamingResponseHandler\n+  #16 = Utf8               onComplete\n+  #17 = Utf8               (Ldev/langchain4j/model/output/Response;)V\n+  #18 = Class              #19            // dev/langchain4j/model/language/StreamingLanguageModelTest$EchoStreamingLanguageModel\n+  #19 = Utf8               dev/langchain4j/model/language/StreamingLanguageModelTest$EchoStreamingLanguageModel\n+  #20 = Class              #21            // dev/langchain4j/model/language/StreamingLanguageModel\n+  #21 = Utf8               dev/langchain4j/model/language/StreamingLanguageModel\n+  #22 = Utf8               Code\n+  #23 = Utf8               LineNumberTable\n+  #24 = Utf8               LocalVariableTable\n+  #25 = Utf8               this\n+  #26 = Utf8               Ldev/langchain4j/model/language/StreamingLanguageModelTest$EchoStreamingLanguageModel;\n+  #27 = Utf8               generate\n+  #28 = Utf8               (Ljava/lang/String;Ldev/langchain4j/model/StreamingResponseHandler;)V\n+  #29 = Utf8               prompt\n+  #30 = Utf8               Ljava/lang/String;\n+  #31 = Utf8               handler\n+  #32 = Utf8               Ldev/langchain4j/model/StreamingResponseHandler;\n+  #33 = Utf8               LocalVariableTypeTable\n+  #34 = Utf8               Ldev/langchain4j/model/StreamingResponseHandler<Ljava/lang/String;>;\n+  #35 = Utf8               Signature\n+  #36 = Utf8               (Ljava/lang/String;Ldev/langchain4j/model/StreamingResponseHandler<Ljava/lang/String;>;)V\n+  #37 = Utf8               SourceFile\n+  #38 = Utf8               StreamingLanguageModelTest.java\n+  #39 = Utf8               InnerClasses\n+  #40 = Class              #41            // dev/langchain4j/model/language/StreamingLanguageModelTest\n+  #41 = Utf8               dev/langchain4j/model/language/StreamingLanguageModelTest\n+  #42 = Utf8               EchoStreamingLanguageModel\n {\n   public dev.langchain4j.model.language.StreamingLanguageModelTest$EchoStreamingLanguageModel();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -67,29 +67,29 @@\n \n   public void generate(java.lang.String, dev.langchain4j.model.StreamingResponseHandler<java.lang.String>);\n     descriptor: (Ljava/lang/String;Ldev/langchain4j/model/StreamingResponseHandler;)V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=4, locals=3, args_size=3\n          0: aload_2\n-         1: new           #2                  // class dev/langchain4j/model/output/Response\n+         1: new           #7                  // class dev/langchain4j/model/output/Response\n          4: dup\n          5: aload_1\n-         6: invokespecial #3                  // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n-         9: invokeinterface #4,  2            // InterfaceMethod dev/langchain4j/model/StreamingResponseHandler.onComplete:(Ldev/langchain4j/model/output/Response;)V\n+         6: invokespecial #9                  // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n+         9: invokeinterface #12,  2           // InterfaceMethod dev/langchain4j/model/StreamingResponseHandler.onComplete:(Ldev/langchain4j/model/output/Response;)V\n         14: return\n       LineNumberTable:\n         line 14: 0\n         line 15: 14\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      15     0  this   Ldev/langchain4j/model/language/StreamingLanguageModelTest$EchoStreamingLanguageModel;\n             0      15     1 prompt   Ljava/lang/String;\n             0      15     2 handler   Ldev/langchain4j/model/StreamingResponseHandler;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0      15     2 handler   Ldev/langchain4j/model/StreamingResponseHandler<Ljava/lang/String;>;\n-    Signature: #26                          // (Ljava/lang/String;Ldev/langchain4j/model/StreamingResponseHandler<Ljava/lang/String;>;)V\n+    Signature: #36                          // (Ljava/lang/String;Ldev/langchain4j/model/StreamingResponseHandler<Ljava/lang/String;>;)V\n }\n SourceFile: \"StreamingLanguageModelTest.java\"\n InnerClasses:\n-  public static #14= #5 of #34;           // EchoStreamingLanguageModel=class dev/langchain4j/model/language/StreamingLanguageModelTest$EchoStreamingLanguageModel of class dev/langchain4j/model/language/StreamingLanguageModelTest\n+  public static #42= #18 of #40;          // EchoStreamingLanguageModel=class dev/langchain4j/model/language/StreamingLanguageModelTest$EchoStreamingLanguageModel of class dev/langchain4j/model/language/StreamingLanguageModelTest\n"}]}, {"source1": "dev/langchain4j/model/language/StreamingLanguageModelTest.class", "source2": "dev/langchain4j/model/language/StreamingLanguageModelTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,84 +1,84 @@\n-  SHA-256 checksum eeede61d3eaec07b56bfda792b19b5a7592302a05f9ad3329d72eb76e78755cf\n+  SHA-256 checksum 6c194b0d0a470608371130817019979051e7fa22377f7caa9beb5b2b4840ab31\n   Compiled from \"StreamingLanguageModelTest.java\"\n class dev.langchain4j.model.language.StreamingLanguageModelTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #15                         // dev/langchain4j/model/language/StreamingLanguageModelTest\n-  super_class: #16                        // java/lang/Object\n+  this_class: #31                         // dev/langchain4j/model/language/StreamingLanguageModelTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 2\n Constant pool:\n-   #1 = Methodref          #16.#39        // java/lang/Object.\"<init>\":()V\n-   #2 = Class              #40            // dev/langchain4j/model/language/StreamingLanguageModelTest$EchoStreamingLanguageModel\n-   #3 = Methodref          #2.#39         // dev/langchain4j/model/language/StreamingLanguageModelTest$EchoStreamingLanguageModel.\"<init>\":()V\n-   #4 = Class              #41            // dev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler\n-   #5 = Methodref          #4.#39         // dev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler.\"<init>\":()V\n-   #6 = Class              #42            // dev/langchain4j/model/input/Prompt\n-   #7 = String             #43            // text\n-   #8 = Methodref          #6.#44         // dev/langchain4j/model/input/Prompt.\"<init>\":(Ljava/lang/String;)V\n-   #9 = InterfaceMethodref #45.#46        // dev/langchain4j/model/language/StreamingLanguageModel.generate:(Ldev/langchain4j/model/input/Prompt;Ldev/langchain4j/model/StreamingResponseHandler;)V\n-  #10 = Fieldref           #4.#47         // dev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler.response:Ldev/langchain4j/model/output/Response;\n-  #11 = Methodref          #15.#48        // dev/langchain4j/model/language/StreamingLanguageModelTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #12 = Class              #49            // dev/langchain4j/model/output/Response\n-  #13 = Methodref          #12.#50        // dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n-  #14 = Methodref          #51.#52        // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #15 = Class              #53            // dev/langchain4j/model/language/StreamingLanguageModelTest\n-  #16 = Class              #54            // java/lang/Object\n-  #17 = Class              #55            // org/assertj/core/api/WithAssertions\n-  #18 = Utf8               CaptureHandler\n-  #19 = Utf8               InnerClasses\n-  #20 = Utf8               EchoStreamingLanguageModel\n-  #21 = Utf8               <init>\n-  #22 = Utf8               ()V\n-  #23 = Utf8               Code\n-  #24 = Utf8               LineNumberTable\n-  #25 = Utf8               LocalVariableTable\n-  #26 = Utf8               this\n-  #27 = Utf8               Ldev/langchain4j/model/language/StreamingLanguageModelTest;\n-  #28 = Utf8               test_generate\n-  #29 = Utf8               model\n-  #30 = Utf8               Ldev/langchain4j/model/language/StreamingLanguageModel;\n-  #31 = Utf8               handler\n-  #32 = Utf8               Ldev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler;\n-  #33 = Utf8               LocalVariableTypeTable\n-  #34 = Utf8               Ldev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler<Ljava/lang/String;>;\n-  #35 = Utf8               RuntimeVisibleAnnotations\n-  #36 = Utf8               Lorg/junit/jupiter/api/Test;\n-  #37 = Utf8               SourceFile\n-  #38 = Utf8               StreamingLanguageModelTest.java\n-  #39 = NameAndType        #21:#22        // \"<init>\":()V\n-  #40 = Utf8               dev/langchain4j/model/language/StreamingLanguageModelTest$EchoStreamingLanguageModel\n-  #41 = Utf8               dev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler\n-  #42 = Utf8               dev/langchain4j/model/input/Prompt\n-  #43 = Utf8               text\n-  #44 = NameAndType        #21:#56        // \"<init>\":(Ljava/lang/String;)V\n-  #45 = Class              #57            // dev/langchain4j/model/language/StreamingLanguageModel\n-  #46 = NameAndType        #58:#59        // generate:(Ldev/langchain4j/model/input/Prompt;Ldev/langchain4j/model/StreamingResponseHandler;)V\n-  #47 = NameAndType        #60:#61        // response:Ldev/langchain4j/model/output/Response;\n-  #48 = NameAndType        #62:#63        // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #49 = Utf8               dev/langchain4j/model/output/Response\n-  #50 = NameAndType        #21:#64        // \"<init>\":(Ljava/lang/Object;)V\n-  #51 = Class              #65            // org/assertj/core/api/ObjectAssert\n-  #52 = NameAndType        #66:#67        // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #53 = Utf8               dev/langchain4j/model/language/StreamingLanguageModelTest\n-  #54 = Utf8               java/lang/Object\n-  #55 = Utf8               org/assertj/core/api/WithAssertions\n-  #56 = Utf8               (Ljava/lang/String;)V\n-  #57 = Utf8               dev/langchain4j/model/language/StreamingLanguageModel\n-  #58 = Utf8               generate\n-  #59 = Utf8               (Ldev/langchain4j/model/input/Prompt;Ldev/langchain4j/model/StreamingResponseHandler;)V\n-  #60 = Utf8               response\n-  #61 = Utf8               Ldev/langchain4j/model/output/Response;\n-  #62 = Utf8               assertThat\n-  #63 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #64 = Utf8               (Ljava/lang/Object;)V\n-  #65 = Utf8               org/assertj/core/api/ObjectAssert\n-  #66 = Utf8               isEqualTo\n-  #67 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Class              #8             // dev/langchain4j/model/language/StreamingLanguageModelTest$EchoStreamingLanguageModel\n+   #8 = Utf8               dev/langchain4j/model/language/StreamingLanguageModelTest$EchoStreamingLanguageModel\n+   #9 = Methodref          #7.#3          // dev/langchain4j/model/language/StreamingLanguageModelTest$EchoStreamingLanguageModel.\"<init>\":()V\n+  #10 = Class              #11            // dev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler\n+  #11 = Utf8               dev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler\n+  #12 = Methodref          #10.#3         // dev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler.\"<init>\":()V\n+  #13 = Class              #14            // dev/langchain4j/model/input/Prompt\n+  #14 = Utf8               dev/langchain4j/model/input/Prompt\n+  #15 = String             #16            // text\n+  #16 = Utf8               text\n+  #17 = Methodref          #13.#18        // dev/langchain4j/model/input/Prompt.\"<init>\":(Ljava/lang/String;)V\n+  #18 = NameAndType        #5:#19         // \"<init>\":(Ljava/lang/String;)V\n+  #19 = Utf8               (Ljava/lang/String;)V\n+  #20 = InterfaceMethodref #21.#22        // dev/langchain4j/model/language/StreamingLanguageModel.generate:(Ldev/langchain4j/model/input/Prompt;Ldev/langchain4j/model/StreamingResponseHandler;)V\n+  #21 = Class              #23            // dev/langchain4j/model/language/StreamingLanguageModel\n+  #22 = NameAndType        #24:#25        // generate:(Ldev/langchain4j/model/input/Prompt;Ldev/langchain4j/model/StreamingResponseHandler;)V\n+  #23 = Utf8               dev/langchain4j/model/language/StreamingLanguageModel\n+  #24 = Utf8               generate\n+  #25 = Utf8               (Ldev/langchain4j/model/input/Prompt;Ldev/langchain4j/model/StreamingResponseHandler;)V\n+  #26 = Fieldref           #10.#27        // dev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler.response:Ldev/langchain4j/model/output/Response;\n+  #27 = NameAndType        #28:#29        // response:Ldev/langchain4j/model/output/Response;\n+  #28 = Utf8               response\n+  #29 = Utf8               Ldev/langchain4j/model/output/Response;\n+  #30 = Methodref          #31.#32        // dev/langchain4j/model/language/StreamingLanguageModelTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+  #31 = Class              #33            // dev/langchain4j/model/language/StreamingLanguageModelTest\n+  #32 = NameAndType        #34:#35        // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+  #33 = Utf8               dev/langchain4j/model/language/StreamingLanguageModelTest\n+  #34 = Utf8               assertThat\n+  #35 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+  #36 = Class              #37            // dev/langchain4j/model/output/Response\n+  #37 = Utf8               dev/langchain4j/model/output/Response\n+  #38 = Methodref          #36.#39        // dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n+  #39 = NameAndType        #5:#40         // \"<init>\":(Ljava/lang/Object;)V\n+  #40 = Utf8               (Ljava/lang/Object;)V\n+  #41 = Methodref          #42.#43        // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #42 = Class              #44            // org/assertj/core/api/ObjectAssert\n+  #43 = NameAndType        #45:#46        // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #44 = Utf8               org/assertj/core/api/ObjectAssert\n+  #45 = Utf8               isEqualTo\n+  #46 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #47 = Class              #48            // org/assertj/core/api/WithAssertions\n+  #48 = Utf8               org/assertj/core/api/WithAssertions\n+  #49 = Utf8               Code\n+  #50 = Utf8               LineNumberTable\n+  #51 = Utf8               LocalVariableTable\n+  #52 = Utf8               this\n+  #53 = Utf8               Ldev/langchain4j/model/language/StreamingLanguageModelTest;\n+  #54 = Utf8               test_generate\n+  #55 = Utf8               model\n+  #56 = Utf8               Ldev/langchain4j/model/language/StreamingLanguageModel;\n+  #57 = Utf8               handler\n+  #58 = Utf8               Ldev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler;\n+  #59 = Utf8               LocalVariableTypeTable\n+  #60 = Utf8               Ldev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler<Ljava/lang/String;>;\n+  #61 = Utf8               RuntimeVisibleAnnotations\n+  #62 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #63 = Utf8               SourceFile\n+  #64 = Utf8               StreamingLanguageModelTest.java\n+  #65 = Utf8               InnerClasses\n+  #66 = Utf8               EchoStreamingLanguageModel\n+  #67 = Utf8               CaptureHandler\n {\n   dev.langchain4j.model.language.StreamingLanguageModelTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -91,38 +91,38 @@\n             0       5     0  this   Ldev/langchain4j/model/language/StreamingLanguageModelTest;\n \n   public void test_generate();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=4, locals=3, args_size=1\n-         0: new           #2                  // class dev/langchain4j/model/language/StreamingLanguageModelTest$EchoStreamingLanguageModel\n+         0: new           #7                  // class dev/langchain4j/model/language/StreamingLanguageModelTest$EchoStreamingLanguageModel\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/model/language/StreamingLanguageModelTest$EchoStreamingLanguageModel.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/model/language/StreamingLanguageModelTest$EchoStreamingLanguageModel.\"<init>\":()V\n          7: astore_1\n-         8: new           #4                  // class dev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler\n+         8: new           #10                 // class dev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler\n         11: dup\n-        12: invokespecial #5                  // Method dev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler.\"<init>\":()V\n+        12: invokespecial #12                 // Method dev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler.\"<init>\":()V\n         15: astore_2\n         16: aload_1\n-        17: new           #6                  // class dev/langchain4j/model/input/Prompt\n+        17: new           #13                 // class dev/langchain4j/model/input/Prompt\n         20: dup\n-        21: ldc           #7                  // String text\n-        23: invokespecial #8                  // Method dev/langchain4j/model/input/Prompt.\"<init>\":(Ljava/lang/String;)V\n+        21: ldc           #15                 // String text\n+        23: invokespecial #17                 // Method dev/langchain4j/model/input/Prompt.\"<init>\":(Ljava/lang/String;)V\n         26: aload_2\n-        27: invokeinterface #9,  3            // InterfaceMethod dev/langchain4j/model/language/StreamingLanguageModel.generate:(Ldev/langchain4j/model/input/Prompt;Ldev/langchain4j/model/StreamingResponseHandler;)V\n+        27: invokeinterface #20,  3           // InterfaceMethod dev/langchain4j/model/language/StreamingLanguageModel.generate:(Ldev/langchain4j/model/input/Prompt;Ldev/langchain4j/model/StreamingResponseHandler;)V\n         32: aload_0\n         33: aload_2\n-        34: getfield      #10                 // Field dev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler.response:Ldev/langchain4j/model/output/Response;\n-        37: invokevirtual #11                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        40: new           #12                 // class dev/langchain4j/model/output/Response\n+        34: getfield      #26                 // Field dev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler.response:Ldev/langchain4j/model/output/Response;\n+        37: invokevirtual #30                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        40: new           #36                 // class dev/langchain4j/model/output/Response\n         43: dup\n-        44: ldc           #7                  // String text\n-        46: invokespecial #13                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n-        49: invokevirtual #14                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        44: ldc           #15                 // String text\n+        46: invokespecial #38                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n+        49: invokevirtual #41                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         52: pop\n         53: return\n       LineNumberTable:\n         line 39: 0\n         line 41: 8\n         line 42: 16\n         line 44: 32\n@@ -133,14 +133,14 @@\n             0      54     0  this   Ldev/langchain4j/model/language/StreamingLanguageModelTest;\n             8      46     1 model   Ldev/langchain4j/model/language/StreamingLanguageModel;\n            16      38     2 handler   Ldev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            16      38     2 handler   Ldev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler<Ljava/lang/String;>;\n     RuntimeVisibleAnnotations:\n-      0: #36()\n+      0: #62()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"StreamingLanguageModelTest.java\"\n InnerClasses:\n-  public static #18= #4 of #15;           // CaptureHandler=class dev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler of class dev/langchain4j/model/language/StreamingLanguageModelTest\n-  public static #20= #2 of #15;           // EchoStreamingLanguageModel=class dev/langchain4j/model/language/StreamingLanguageModelTest$EchoStreamingLanguageModel of class dev/langchain4j/model/language/StreamingLanguageModelTest\n+  public static #66= #7 of #31;           // EchoStreamingLanguageModel=class dev/langchain4j/model/language/StreamingLanguageModelTest$EchoStreamingLanguageModel of class dev/langchain4j/model/language/StreamingLanguageModelTest\n+  public static #67= #10 of #31;          // CaptureHandler=class dev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler of class dev/langchain4j/model/language/StreamingLanguageModelTest\n"}]}, {"source1": "dev/langchain4j/model/language/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator.class", "source2": "dev/langchain4j/model/language/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,50 +1,50 @@\n-  SHA-256 checksum 57e320e8eab881049ad2b57c314044b66332317f8370ef27c5ff27300a43fa60\n+  SHA-256 checksum b301d95d555d2b98933898394dc4bcb2e0cd0e0544a95772914b65fe6bd43a86\n   Compiled from \"TokenCountEstimatorTest.java\"\n public class dev.langchain4j.model.language.TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator implements dev.langchain4j.model.language.TokenCountEstimator\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #4                          // dev/langchain4j/model/language/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n-  super_class: #5                         // java/lang/Object\n+  this_class: #15                         // dev/langchain4j/model/language/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 2\n Constant pool:\n-   #1 = Methodref          #5.#22         // java/lang/Object.\"<init>\":()V\n-   #2 = String             #23            // \\\\s+\n-   #3 = Methodref          #24.#25        // java/lang/String.split:(Ljava/lang/String;)[Ljava/lang/String;\n-   #4 = Class              #27            // dev/langchain4j/model/language/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n-   #5 = Class              #28            // java/lang/Object\n-   #6 = Class              #29            // dev/langchain4j/model/language/TokenCountEstimator\n-   #7 = Utf8               <init>\n-   #8 = Utf8               ()V\n-   #9 = Utf8               Code\n-  #10 = Utf8               LineNumberTable\n-  #11 = Utf8               LocalVariableTable\n-  #12 = Utf8               this\n-  #13 = Utf8               WhitespaceSplitTokenCountEstimator\n-  #14 = Utf8               InnerClasses\n-  #15 = Utf8               Ldev/langchain4j/model/language/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator;\n-  #16 = Utf8               estimateTokenCount\n-  #17 = Utf8               (Ljava/lang/String;)I\n-  #18 = Utf8               text\n-  #19 = Utf8               Ljava/lang/String;\n-  #20 = Utf8               SourceFile\n-  #21 = Utf8               TokenCountEstimatorTest.java\n-  #22 = NameAndType        #7:#8          // \"<init>\":()V\n-  #23 = Utf8               \\\\s+\n-  #24 = Class              #30            // java/lang/String\n-  #25 = NameAndType        #31:#32        // split:(Ljava/lang/String;)[Ljava/lang/String;\n-  #26 = Class              #33            // dev/langchain4j/model/language/TokenCountEstimatorTest\n-  #27 = Utf8               dev/langchain4j/model/language/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n-  #28 = Utf8               java/lang/Object\n-  #29 = Utf8               dev/langchain4j/model/language/TokenCountEstimator\n-  #30 = Utf8               java/lang/String\n-  #31 = Utf8               split\n-  #32 = Utf8               (Ljava/lang/String;)[Ljava/lang/String;\n-  #33 = Utf8               dev/langchain4j/model/language/TokenCountEstimatorTest\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = String             #8             // \\\\s+\n+   #8 = Utf8               \\\\s+\n+   #9 = Methodref          #10.#11        // java/lang/String.split:(Ljava/lang/String;)[Ljava/lang/String;\n+  #10 = Class              #12            // java/lang/String\n+  #11 = NameAndType        #13:#14        // split:(Ljava/lang/String;)[Ljava/lang/String;\n+  #12 = Utf8               java/lang/String\n+  #13 = Utf8               split\n+  #14 = Utf8               (Ljava/lang/String;)[Ljava/lang/String;\n+  #15 = Class              #16            // dev/langchain4j/model/language/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n+  #16 = Utf8               dev/langchain4j/model/language/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n+  #17 = Class              #18            // dev/langchain4j/model/language/TokenCountEstimator\n+  #18 = Utf8               dev/langchain4j/model/language/TokenCountEstimator\n+  #19 = Utf8               Code\n+  #20 = Utf8               LineNumberTable\n+  #21 = Utf8               LocalVariableTable\n+  #22 = Utf8               this\n+  #23 = Utf8               Ldev/langchain4j/model/language/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator;\n+  #24 = Utf8               estimateTokenCount\n+  #25 = Utf8               (Ljava/lang/String;)I\n+  #26 = Utf8               text\n+  #27 = Utf8               Ljava/lang/String;\n+  #28 = Utf8               SourceFile\n+  #29 = Utf8               TokenCountEstimatorTest.java\n+  #30 = Utf8               InnerClasses\n+  #31 = Class              #32            // dev/langchain4j/model/language/TokenCountEstimatorTest\n+  #32 = Utf8               dev/langchain4j/model/language/TokenCountEstimatorTest\n+  #33 = Utf8               WhitespaceSplitTokenCountEstimator\n {\n   public dev.langchain4j.model.language.TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -58,21 +58,21 @@\n \n   public int estimateTokenCount(java.lang.String);\n     descriptor: (Ljava/lang/String;)I\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_1\n-         1: ldc           #2                  // String \\\\s+\n-         3: invokevirtual #3                  // Method java/lang/String.split:(Ljava/lang/String;)[Ljava/lang/String;\n+         1: ldc           #7                  // String \\\\s+\n+         3: invokevirtual #9                  // Method java/lang/String.split:(Ljava/lang/String;)[Ljava/lang/String;\n          6: arraylength\n          7: ireturn\n       LineNumberTable:\n         line 12: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       8     0  this   Ldev/langchain4j/model/language/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator;\n             0       8     1  text   Ljava/lang/String;\n }\n SourceFile: \"TokenCountEstimatorTest.java\"\n InnerClasses:\n-  public static #13= #4 of #26;           // WhitespaceSplitTokenCountEstimator=class dev/langchain4j/model/language/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator of class dev/langchain4j/model/language/TokenCountEstimatorTest\n+  public static #33= #15 of #31;          // WhitespaceSplitTokenCountEstimator=class dev/langchain4j/model/language/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator of class dev/langchain4j/model/language/TokenCountEstimatorTest\n"}]}, {"source1": "dev/langchain4j/model/language/TokenCountEstimatorTest.class", "source2": "dev/langchain4j/model/language/TokenCountEstimatorTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,78 +1,78 @@\n-  SHA-256 checksum aac54c29893de452b32af9232a4997e4d1b7f401bb17f656f0e257883afcd932\n+  SHA-256 checksum c9ac7e824cbd90925a99512e40329a8f703caa11e0ae25ad10643bf2ff6343b3\n   Compiled from \"TokenCountEstimatorTest.java\"\n class dev.langchain4j.model.language.TokenCountEstimatorTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #13                         // dev/langchain4j/model/language/TokenCountEstimatorTest\n-  super_class: #14                        // java/lang/Object\n+  this_class: #19                         // dev/langchain4j/model/language/TokenCountEstimatorTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 2\n Constant pool:\n-   #1 = Methodref          #14.#32        // java/lang/Object.\"<init>\":()V\n-   #2 = Class              #33            // dev/langchain4j/model/language/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n-   #3 = Methodref          #2.#32         // dev/langchain4j/model/language/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator.\"<init>\":()V\n-   #4 = String             #34            // foo bar, baz\n-   #5 = InterfaceMethodref #35.#36        // dev/langchain4j/model/language/TokenCountEstimator.estimateTokenCount:(Ljava/lang/String;)I\n-   #6 = Methodref          #13.#37        // dev/langchain4j/model/language/TokenCountEstimatorTest.assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n-   #7 = Methodref          #38.#39        // org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n-   #8 = Class              #40            // dev/langchain4j/model/input/Prompt\n-   #9 = Methodref          #8.#41         // dev/langchain4j/model/input/Prompt.\"<init>\":(Ljava/lang/String;)V\n-  #10 = InterfaceMethodref #35.#42        // dev/langchain4j/model/language/TokenCountEstimator.estimateTokenCount:(Ldev/langchain4j/model/input/Prompt;)I\n-  #11 = Methodref          #43.#44        // dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #12 = InterfaceMethodref #35.#45        // dev/langchain4j/model/language/TokenCountEstimator.estimateTokenCount:(Ldev/langchain4j/data/segment/TextSegment;)I\n-  #13 = Class              #46            // dev/langchain4j/model/language/TokenCountEstimatorTest\n-  #14 = Class              #47            // java/lang/Object\n-  #15 = Class              #48            // org/assertj/core/api/WithAssertions\n-  #16 = Utf8               WhitespaceSplitTokenCountEstimator\n-  #17 = Utf8               InnerClasses\n-  #18 = Utf8               <init>\n-  #19 = Utf8               ()V\n-  #20 = Utf8               Code\n-  #21 = Utf8               LineNumberTable\n-  #22 = Utf8               LocalVariableTable\n-  #23 = Utf8               this\n-  #24 = Utf8               Ldev/langchain4j/model/language/TokenCountEstimatorTest;\n-  #25 = Utf8               test\n-  #26 = Utf8               estimator\n-  #27 = Utf8               Ldev/langchain4j/model/language/TokenCountEstimator;\n-  #28 = Utf8               RuntimeVisibleAnnotations\n-  #29 = Utf8               Lorg/junit/jupiter/api/Test;\n-  #30 = Utf8               SourceFile\n-  #31 = Utf8               TokenCountEstimatorTest.java\n-  #32 = NameAndType        #18:#19        // \"<init>\":()V\n-  #33 = Utf8               dev/langchain4j/model/language/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n-  #34 = Utf8               foo bar, baz\n-  #35 = Class              #49            // dev/langchain4j/model/language/TokenCountEstimator\n-  #36 = NameAndType        #50:#51        // estimateTokenCount:(Ljava/lang/String;)I\n-  #37 = NameAndType        #52:#53        // assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n-  #38 = Class              #54            // org/assertj/core/api/AbstractIntegerAssert\n-  #39 = NameAndType        #55:#53        // isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n-  #40 = Utf8               dev/langchain4j/model/input/Prompt\n-  #41 = NameAndType        #18:#56        // \"<init>\":(Ljava/lang/String;)V\n-  #42 = NameAndType        #50:#57        // estimateTokenCount:(Ldev/langchain4j/model/input/Prompt;)I\n-  #43 = Class              #58            // dev/langchain4j/data/segment/TextSegment\n-  #44 = NameAndType        #59:#60        // from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #45 = NameAndType        #50:#61        // estimateTokenCount:(Ldev/langchain4j/data/segment/TextSegment;)I\n-  #46 = Utf8               dev/langchain4j/model/language/TokenCountEstimatorTest\n-  #47 = Utf8               java/lang/Object\n-  #48 = Utf8               org/assertj/core/api/WithAssertions\n-  #49 = Utf8               dev/langchain4j/model/language/TokenCountEstimator\n-  #50 = Utf8               estimateTokenCount\n-  #51 = Utf8               (Ljava/lang/String;)I\n-  #52 = Utf8               assertThat\n-  #53 = Utf8               (I)Lorg/assertj/core/api/AbstractIntegerAssert;\n-  #54 = Utf8               org/assertj/core/api/AbstractIntegerAssert\n-  #55 = Utf8               isEqualTo\n-  #56 = Utf8               (Ljava/lang/String;)V\n-  #57 = Utf8               (Ldev/langchain4j/model/input/Prompt;)I\n-  #58 = Utf8               dev/langchain4j/data/segment/TextSegment\n-  #59 = Utf8               from\n-  #60 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #61 = Utf8               (Ldev/langchain4j/data/segment/TextSegment;)I\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Class              #8             // dev/langchain4j/model/language/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n+   #8 = Utf8               dev/langchain4j/model/language/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n+   #9 = Methodref          #7.#3          // dev/langchain4j/model/language/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator.\"<init>\":()V\n+  #10 = String             #11            // foo bar, baz\n+  #11 = Utf8               foo bar, baz\n+  #12 = InterfaceMethodref #13.#14        // dev/langchain4j/model/language/TokenCountEstimator.estimateTokenCount:(Ljava/lang/String;)I\n+  #13 = Class              #15            // dev/langchain4j/model/language/TokenCountEstimator\n+  #14 = NameAndType        #16:#17        // estimateTokenCount:(Ljava/lang/String;)I\n+  #15 = Utf8               dev/langchain4j/model/language/TokenCountEstimator\n+  #16 = Utf8               estimateTokenCount\n+  #17 = Utf8               (Ljava/lang/String;)I\n+  #18 = Methodref          #19.#20        // dev/langchain4j/model/language/TokenCountEstimatorTest.assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+  #19 = Class              #21            // dev/langchain4j/model/language/TokenCountEstimatorTest\n+  #20 = NameAndType        #22:#23        // assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+  #21 = Utf8               dev/langchain4j/model/language/TokenCountEstimatorTest\n+  #22 = Utf8               assertThat\n+  #23 = Utf8               (I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+  #24 = Methodref          #25.#26        // org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+  #25 = Class              #27            // org/assertj/core/api/AbstractIntegerAssert\n+  #26 = NameAndType        #28:#23        // isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+  #27 = Utf8               org/assertj/core/api/AbstractIntegerAssert\n+  #28 = Utf8               isEqualTo\n+  #29 = Class              #30            // dev/langchain4j/model/input/Prompt\n+  #30 = Utf8               dev/langchain4j/model/input/Prompt\n+  #31 = Methodref          #29.#32        // dev/langchain4j/model/input/Prompt.\"<init>\":(Ljava/lang/String;)V\n+  #32 = NameAndType        #5:#33         // \"<init>\":(Ljava/lang/String;)V\n+  #33 = Utf8               (Ljava/lang/String;)V\n+  #34 = InterfaceMethodref #13.#35        // dev/langchain4j/model/language/TokenCountEstimator.estimateTokenCount:(Ldev/langchain4j/model/input/Prompt;)I\n+  #35 = NameAndType        #16:#36        // estimateTokenCount:(Ldev/langchain4j/model/input/Prompt;)I\n+  #36 = Utf8               (Ldev/langchain4j/model/input/Prompt;)I\n+  #37 = Methodref          #38.#39        // dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #38 = Class              #40            // dev/langchain4j/data/segment/TextSegment\n+  #39 = NameAndType        #41:#42        // from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #40 = Utf8               dev/langchain4j/data/segment/TextSegment\n+  #41 = Utf8               from\n+  #42 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #43 = InterfaceMethodref #13.#44        // dev/langchain4j/model/language/TokenCountEstimator.estimateTokenCount:(Ldev/langchain4j/data/segment/TextSegment;)I\n+  #44 = NameAndType        #16:#45        // estimateTokenCount:(Ldev/langchain4j/data/segment/TextSegment;)I\n+  #45 = Utf8               (Ldev/langchain4j/data/segment/TextSegment;)I\n+  #46 = Class              #47            // org/assertj/core/api/WithAssertions\n+  #47 = Utf8               org/assertj/core/api/WithAssertions\n+  #48 = Utf8               Code\n+  #49 = Utf8               LineNumberTable\n+  #50 = Utf8               LocalVariableTable\n+  #51 = Utf8               this\n+  #52 = Utf8               Ldev/langchain4j/model/language/TokenCountEstimatorTest;\n+  #53 = Utf8               test\n+  #54 = Utf8               estimator\n+  #55 = Utf8               Ldev/langchain4j/model/language/TokenCountEstimator;\n+  #56 = Utf8               RuntimeVisibleAnnotations\n+  #57 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #58 = Utf8               SourceFile\n+  #59 = Utf8               TokenCountEstimatorTest.java\n+  #60 = Utf8               InnerClasses\n+  #61 = Utf8               WhitespaceSplitTokenCountEstimator\n {\n   dev.langchain4j.model.language.TokenCountEstimatorTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -85,57 +85,57 @@\n             0       5     0  this   Ldev/langchain4j/model/language/TokenCountEstimatorTest;\n \n   public void test();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=5, locals=2, args_size=1\n-         0: new           #2                  // class dev/langchain4j/model/language/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n+         0: new           #7                  // class dev/langchain4j/model/language/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/model/language/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/model/language/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator.\"<init>\":()V\n          7: astore_1\n          8: aload_0\n          9: aload_1\n-        10: ldc           #4                  // String foo bar, baz\n-        12: invokeinterface #5,  2            // InterfaceMethod dev/langchain4j/model/language/TokenCountEstimator.estimateTokenCount:(Ljava/lang/String;)I\n-        17: invokevirtual #6                  // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        10: ldc           #10                 // String foo bar, baz\n+        12: invokeinterface #12,  2           // InterfaceMethod dev/langchain4j/model/language/TokenCountEstimator.estimateTokenCount:(Ljava/lang/String;)I\n+        17: invokevirtual #18                 // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         20: iconst_3\n-        21: invokevirtual #7                  // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        21: invokevirtual #24                 // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         24: pop\n         25: aload_0\n         26: aload_1\n-        27: new           #8                  // class dev/langchain4j/model/input/Prompt\n+        27: new           #29                 // class dev/langchain4j/model/input/Prompt\n         30: dup\n-        31: ldc           #4                  // String foo bar, baz\n-        33: invokespecial #9                  // Method dev/langchain4j/model/input/Prompt.\"<init>\":(Ljava/lang/String;)V\n-        36: invokeinterface #10,  2           // InterfaceMethod dev/langchain4j/model/language/TokenCountEstimator.estimateTokenCount:(Ldev/langchain4j/model/input/Prompt;)I\n-        41: invokevirtual #6                  // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        31: ldc           #10                 // String foo bar, baz\n+        33: invokespecial #31                 // Method dev/langchain4j/model/input/Prompt.\"<init>\":(Ljava/lang/String;)V\n+        36: invokeinterface #34,  2           // InterfaceMethod dev/langchain4j/model/language/TokenCountEstimator.estimateTokenCount:(Ldev/langchain4j/model/input/Prompt;)I\n+        41: invokevirtual #18                 // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         44: iconst_3\n-        45: invokevirtual #7                  // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        45: invokevirtual #24                 // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         48: pop\n         49: aload_0\n         50: aload_1\n-        51: ldc           #4                  // String foo bar, baz\n-        53: invokestatic  #11                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-        56: invokeinterface #12,  2           // InterfaceMethod dev/langchain4j/model/language/TokenCountEstimator.estimateTokenCount:(Ldev/langchain4j/data/segment/TextSegment;)I\n-        61: invokevirtual #6                  // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        51: ldc           #10                 // String foo bar, baz\n+        53: invokestatic  #37                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+        56: invokeinterface #43,  2           // InterfaceMethod dev/langchain4j/model/language/TokenCountEstimator.estimateTokenCount:(Ldev/langchain4j/data/segment/TextSegment;)I\n+        61: invokevirtual #18                 // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         64: iconst_3\n-        65: invokevirtual #7                  // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        65: invokevirtual #24                 // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         68: pop\n         69: return\n       LineNumberTable:\n         line 18: 0\n         line 20: 8\n         line 21: 25\n         line 22: 49\n         line 23: 69\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      70     0  this   Ldev/langchain4j/model/language/TokenCountEstimatorTest;\n             8      62     1 estimator   Ldev/langchain4j/model/language/TokenCountEstimator;\n     RuntimeVisibleAnnotations:\n-      0: #29()\n+      0: #57()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"TokenCountEstimatorTest.java\"\n InnerClasses:\n-  public static #16= #2 of #13;           // WhitespaceSplitTokenCountEstimator=class dev/langchain4j/model/language/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator of class dev/langchain4j/model/language/TokenCountEstimatorTest\n+  public static #61= #7 of #19;           // WhitespaceSplitTokenCountEstimator=class dev/langchain4j/model/language/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator of class dev/langchain4j/model/language/TokenCountEstimatorTest\n"}]}, {"source1": "dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel.class", "source2": "dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,73 +1,73 @@\n-  SHA-256 checksum cf3b1a3ff9fa09079ce5f5e48d3ac4cabd44c8562f642d55aca67cfb206ab2a5\n+  SHA-256 checksum 27821536da941f75be6d8c480b6f4bf5f64b75c3282649c78df18fbd1609bd29\n   Compiled from \"ModerationModelTest.java\"\n public class dev.langchain4j.model.moderation.ModerationModelTest$FlagEverythingModel implements dev.langchain4j.model.moderation.ModerationModel\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #7                          // dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel\n-  super_class: #8                         // java/lang/Object\n+  this_class: #31                         // dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 3, attributes: 2\n Constant pool:\n-   #1 = Methodref          #8.#33         // java/lang/Object.\"<init>\":()V\n-   #2 = Methodref          #34.#35        // dev/langchain4j/model/moderation/Moderation.flagged:(Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n-   #3 = Methodref          #36.#37        // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-   #4 = InterfaceMethodref #38.#39        // java/util/List.get:(I)Ljava/lang/Object;\n-   #5 = Class              #40            // dev/langchain4j/data/message/ChatMessage\n-   #6 = InterfaceMethodref #5.#41         // dev/langchain4j/data/message/ChatMessage.text:()Ljava/lang/String;\n-   #7 = Class              #43            // dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel\n-   #8 = Class              #44            // java/lang/Object\n-   #9 = Class              #45            // dev/langchain4j/model/moderation/ModerationModel\n-  #10 = Utf8               <init>\n-  #11 = Utf8               ()V\n-  #12 = Utf8               Code\n-  #13 = Utf8               LineNumberTable\n-  #14 = Utf8               LocalVariableTable\n-  #15 = Utf8               this\n-  #16 = Utf8               FlagEverythingModel\n-  #17 = Utf8               InnerClasses\n-  #18 = Utf8               Ldev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel;\n-  #19 = Utf8               moderate\n-  #20 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n-  #21 = Utf8               text\n-  #22 = Utf8               Ljava/lang/String;\n-  #23 = Utf8               Signature\n-  #24 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/model/moderation/Moderation;>;\n-  #25 = Utf8               (Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n-  #26 = Utf8               messages\n-  #27 = Utf8               Ljava/util/List;\n-  #28 = Utf8               LocalVariableTypeTable\n-  #29 = Utf8               Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n-  #30 = Utf8               (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/model/moderation/Moderation;>;\n-  #31 = Utf8               SourceFile\n-  #32 = Utf8               ModerationModelTest.java\n-  #33 = NameAndType        #10:#11        // \"<init>\":()V\n-  #34 = Class              #46            // dev/langchain4j/model/moderation/Moderation\n-  #35 = NameAndType        #47:#48        // flagged:(Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n-  #36 = Class              #49            // dev/langchain4j/model/output/Response\n-  #37 = NameAndType        #50:#51        // from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-  #38 = Class              #52            // java/util/List\n-  #39 = NameAndType        #53:#54        // get:(I)Ljava/lang/Object;\n-  #40 = Utf8               dev/langchain4j/data/message/ChatMessage\n-  #41 = NameAndType        #21:#55        // text:()Ljava/lang/String;\n-  #42 = Class              #56            // dev/langchain4j/model/moderation/ModerationModelTest\n-  #43 = Utf8               dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel\n-  #44 = Utf8               java/lang/Object\n-  #45 = Utf8               dev/langchain4j/model/moderation/ModerationModel\n-  #46 = Utf8               dev/langchain4j/model/moderation/Moderation\n-  #47 = Utf8               flagged\n-  #48 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n-  #49 = Utf8               dev/langchain4j/model/output/Response\n-  #50 = Utf8               from\n-  #51 = Utf8               (Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-  #52 = Utf8               java/util/List\n-  #53 = Utf8               get\n-  #54 = Utf8               (I)Ljava/lang/Object;\n-  #55 = Utf8               ()Ljava/lang/String;\n-  #56 = Utf8               dev/langchain4j/model/moderation/ModerationModelTest\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Methodref          #8.#9          // dev/langchain4j/model/moderation/Moderation.flagged:(Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n+   #8 = Class              #10            // dev/langchain4j/model/moderation/Moderation\n+   #9 = NameAndType        #11:#12        // flagged:(Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n+  #10 = Utf8               dev/langchain4j/model/moderation/Moderation\n+  #11 = Utf8               flagged\n+  #12 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n+  #13 = Methodref          #14.#15        // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+  #14 = Class              #16            // dev/langchain4j/model/output/Response\n+  #15 = NameAndType        #17:#18        // from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+  #16 = Utf8               dev/langchain4j/model/output/Response\n+  #17 = Utf8               from\n+  #18 = Utf8               (Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+  #19 = InterfaceMethodref #20.#21        // java/util/List.get:(I)Ljava/lang/Object;\n+  #20 = Class              #22            // java/util/List\n+  #21 = NameAndType        #23:#24        // get:(I)Ljava/lang/Object;\n+  #22 = Utf8               java/util/List\n+  #23 = Utf8               get\n+  #24 = Utf8               (I)Ljava/lang/Object;\n+  #25 = Class              #26            // dev/langchain4j/data/message/ChatMessage\n+  #26 = Utf8               dev/langchain4j/data/message/ChatMessage\n+  #27 = InterfaceMethodref #25.#28        // dev/langchain4j/data/message/ChatMessage.text:()Ljava/lang/String;\n+  #28 = NameAndType        #29:#30        // text:()Ljava/lang/String;\n+  #29 = Utf8               text\n+  #30 = Utf8               ()Ljava/lang/String;\n+  #31 = Class              #32            // dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel\n+  #32 = Utf8               dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel\n+  #33 = Class              #34            // dev/langchain4j/model/moderation/ModerationModel\n+  #34 = Utf8               dev/langchain4j/model/moderation/ModerationModel\n+  #35 = Utf8               Code\n+  #36 = Utf8               LineNumberTable\n+  #37 = Utf8               LocalVariableTable\n+  #38 = Utf8               this\n+  #39 = Utf8               Ldev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel;\n+  #40 = Utf8               moderate\n+  #41 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+  #42 = Utf8               Ljava/lang/String;\n+  #43 = Utf8               Signature\n+  #44 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/model/moderation/Moderation;>;\n+  #45 = Utf8               (Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+  #46 = Utf8               messages\n+  #47 = Utf8               Ljava/util/List;\n+  #48 = Utf8               LocalVariableTypeTable\n+  #49 = Utf8               Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n+  #50 = Utf8               (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/model/moderation/Moderation;>;\n+  #51 = Utf8               SourceFile\n+  #52 = Utf8               ModerationModelTest.java\n+  #53 = Utf8               InnerClasses\n+  #54 = Class              #55            // dev/langchain4j/model/moderation/ModerationModelTest\n+  #55 = Utf8               dev/langchain4j/model/moderation/ModerationModelTest\n+  #56 = Utf8               FlagEverythingModel\n {\n   public dev.langchain4j.model.moderation.ModerationModelTest$FlagEverythingModel();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -81,45 +81,45 @@\n \n   public dev.langchain4j.model.output.Response<dev.langchain4j.model.moderation.Moderation> moderate(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=2, args_size=2\n          0: aload_1\n-         1: invokestatic  #2                  // Method dev/langchain4j/model/moderation/Moderation.flagged:(Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n-         4: invokestatic  #3                  // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+         1: invokestatic  #7                  // Method dev/langchain4j/model/moderation/Moderation.flagged:(Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n+         4: invokestatic  #13                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n          7: areturn\n       LineNumberTable:\n         line 18: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       8     0  this   Ldev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel;\n             0       8     1  text   Ljava/lang/String;\n-    Signature: #24                          // (Ljava/lang/String;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/model/moderation/Moderation;>;\n+    Signature: #44                          // (Ljava/lang/String;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/model/moderation/Moderation;>;\n \n   public dev.langchain4j.model.output.Response<dev.langchain4j.model.moderation.Moderation> moderate(java.util.List<dev.langchain4j.data.message.ChatMessage>);\n     descriptor: (Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_1\n          1: iconst_0\n-         2: invokeinterface #4,  2            // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;\n-         7: checkcast     #5                  // class dev/langchain4j/data/message/ChatMessage\n-        10: invokeinterface #6,  1            // InterfaceMethod dev/langchain4j/data/message/ChatMessage.text:()Ljava/lang/String;\n-        15: invokestatic  #2                  // Method dev/langchain4j/model/moderation/Moderation.flagged:(Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n-        18: invokestatic  #3                  // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+         2: invokeinterface #19,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;\n+         7: checkcast     #25                 // class dev/langchain4j/data/message/ChatMessage\n+        10: invokeinterface #27,  1           // InterfaceMethod dev/langchain4j/data/message/ChatMessage.text:()Ljava/lang/String;\n+        15: invokestatic  #7                  // Method dev/langchain4j/model/moderation/Moderation.flagged:(Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n+        18: invokestatic  #13                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n         21: areturn\n       LineNumberTable:\n         line 23: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      22     0  this   Ldev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel;\n             0      22     1 messages   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0      22     1 messages   Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n-    Signature: #30                          // (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/model/moderation/Moderation;>;\n+    Signature: #50                          // (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/model/moderation/Moderation;>;\n }\n SourceFile: \"ModerationModelTest.java\"\n InnerClasses:\n-  public static #16= #7 of #42;           // FlagEverythingModel=class dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel of class dev/langchain4j/model/moderation/ModerationModelTest\n+  public static #56= #31 of #54;          // FlagEverythingModel=class dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel of class dev/langchain4j/model/moderation/ModerationModelTest\n"}]}, {"source1": "dev/langchain4j/model/moderation/ModerationModelTest.class", "source2": "dev/langchain4j/model/moderation/ModerationModelTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,101 +1,101 @@\n-  SHA-256 checksum ff3454b98b678dc1d7544ea84604213c18457caf8e14e7a668ed05a59f4a583b\n+  SHA-256 checksum 2c64ff573c0c9230cad21c3b35d0ec5d180b1457ef591a8eeb9c0f61b840e6d5\n   Compiled from \"ModerationModelTest.java\"\n class dev.langchain4j.model.moderation.ModerationModelTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #15                         // dev/langchain4j/model/moderation/ModerationModelTest\n-  super_class: #16                        // java/lang/Object\n+  this_class: #25                         // dev/langchain4j/model/moderation/ModerationModelTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 4, attributes: 2\n Constant pool:\n-   #1 = Methodref          #16.#40        // java/lang/Object.\"<init>\":()V\n-   #2 = Class              #41            // dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel\n-   #3 = Methodref          #2.#40         // dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel.\"<init>\":()V\n-   #4 = String             #42            // Hello, world!\n-   #5 = Methodref          #43.#44        // dev/langchain4j/model/input/Prompt.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n-   #6 = InterfaceMethodref #45.#46        // dev/langchain4j/model/moderation/ModerationModel.moderate:(Ldev/langchain4j/model/input/Prompt;)Ldev/langchain4j/model/output/Response;\n-   #7 = Methodref          #15.#47        // dev/langchain4j/model/moderation/ModerationModelTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #8 = Methodref          #48.#49        // dev/langchain4j/model/moderation/Moderation.flagged:(Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n-   #9 = Methodref          #50.#51        // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-  #10 = Methodref          #52.#53        // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #11 = Methodref          #54.#55        // dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-  #12 = InterfaceMethodref #45.#56        // dev/langchain4j/model/moderation/ModerationModel.moderate:(Ldev/langchain4j/data/message/ChatMessage;)Ldev/langchain4j/model/output/Response;\n-  #13 = Methodref          #57.#58        // dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #14 = InterfaceMethodref #45.#59        // dev/langchain4j/model/moderation/ModerationModel.moderate:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/model/output/Response;\n-  #15 = Class              #60            // dev/langchain4j/model/moderation/ModerationModelTest\n-  #16 = Class              #61            // java/lang/Object\n-  #17 = Class              #62            // org/assertj/core/api/WithAssertions\n-  #18 = Utf8               FlagEverythingModel\n-  #19 = Utf8               InnerClasses\n-  #20 = Utf8               <init>\n-  #21 = Utf8               ()V\n-  #22 = Utf8               Code\n-  #23 = Utf8               LineNumberTable\n-  #24 = Utf8               LocalVariableTable\n-  #25 = Utf8               this\n-  #26 = Utf8               Ldev/langchain4j/model/moderation/ModerationModelTest;\n-  #27 = Utf8               test_moderate_prompt\n-  #28 = Utf8               model\n-  #29 = Utf8               Ldev/langchain4j/model/moderation/ModerationModel;\n-  #30 = Utf8               response\n-  #31 = Utf8               Ldev/langchain4j/model/output/Response;\n-  #32 = Utf8               LocalVariableTypeTable\n-  #33 = Utf8               Ldev/langchain4j/model/output/Response<Ldev/langchain4j/model/moderation/Moderation;>;\n-  #34 = Utf8               RuntimeVisibleAnnotations\n-  #35 = Utf8               Lorg/junit/jupiter/api/Test;\n-  #36 = Utf8               test_moderate_chat_message\n-  #37 = Utf8               test_moderate_TextSegment\n-  #38 = Utf8               SourceFile\n-  #39 = Utf8               ModerationModelTest.java\n-  #40 = NameAndType        #20:#21        // \"<init>\":()V\n-  #41 = Utf8               dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel\n-  #42 = Utf8               Hello, world!\n-  #43 = Class              #63            // dev/langchain4j/model/input/Prompt\n-  #44 = NameAndType        #64:#65        // from:(Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n-  #45 = Class              #66            // dev/langchain4j/model/moderation/ModerationModel\n-  #46 = NameAndType        #67:#68        // moderate:(Ldev/langchain4j/model/input/Prompt;)Ldev/langchain4j/model/output/Response;\n-  #47 = NameAndType        #69:#70        // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #48 = Class              #71            // dev/langchain4j/model/moderation/Moderation\n-  #49 = NameAndType        #72:#73        // flagged:(Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n-  #50 = Class              #74            // dev/langchain4j/model/output/Response\n-  #51 = NameAndType        #64:#75        // from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-  #52 = Class              #76            // org/assertj/core/api/ObjectAssert\n-  #53 = NameAndType        #77:#78        // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #54 = Class              #79            // dev/langchain4j/data/message/UserMessage\n-  #55 = NameAndType        #64:#80        // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-  #56 = NameAndType        #67:#81        // moderate:(Ldev/langchain4j/data/message/ChatMessage;)Ldev/langchain4j/model/output/Response;\n-  #57 = Class              #82            // dev/langchain4j/data/segment/TextSegment\n-  #58 = NameAndType        #64:#83        // from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #59 = NameAndType        #67:#84        // moderate:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/model/output/Response;\n-  #60 = Utf8               dev/langchain4j/model/moderation/ModerationModelTest\n-  #61 = Utf8               java/lang/Object\n-  #62 = Utf8               org/assertj/core/api/WithAssertions\n-  #63 = Utf8               dev/langchain4j/model/input/Prompt\n-  #64 = Utf8               from\n-  #65 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n-  #66 = Utf8               dev/langchain4j/model/moderation/ModerationModel\n-  #67 = Utf8               moderate\n-  #68 = Utf8               (Ldev/langchain4j/model/input/Prompt;)Ldev/langchain4j/model/output/Response;\n-  #69 = Utf8               assertThat\n-  #70 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #71 = Utf8               dev/langchain4j/model/moderation/Moderation\n-  #72 = Utf8               flagged\n-  #73 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n-  #74 = Utf8               dev/langchain4j/model/output/Response\n-  #75 = Utf8               (Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-  #76 = Utf8               org/assertj/core/api/ObjectAssert\n-  #77 = Utf8               isEqualTo\n-  #78 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #79 = Utf8               dev/langchain4j/data/message/UserMessage\n-  #80 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-  #81 = Utf8               (Ldev/langchain4j/data/message/ChatMessage;)Ldev/langchain4j/model/output/Response;\n-  #82 = Utf8               dev/langchain4j/data/segment/TextSegment\n-  #83 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #84 = Utf8               (Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/model/output/Response;\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Class              #8             // dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel\n+   #8 = Utf8               dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel\n+   #9 = Methodref          #7.#3          // dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel.\"<init>\":()V\n+  #10 = String             #11            // Hello, world!\n+  #11 = Utf8               Hello, world!\n+  #12 = Methodref          #13.#14        // dev/langchain4j/model/input/Prompt.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n+  #13 = Class              #15            // dev/langchain4j/model/input/Prompt\n+  #14 = NameAndType        #16:#17        // from:(Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n+  #15 = Utf8               dev/langchain4j/model/input/Prompt\n+  #16 = Utf8               from\n+  #17 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n+  #18 = InterfaceMethodref #19.#20        // dev/langchain4j/model/moderation/ModerationModel.moderate:(Ldev/langchain4j/model/input/Prompt;)Ldev/langchain4j/model/output/Response;\n+  #19 = Class              #21            // dev/langchain4j/model/moderation/ModerationModel\n+  #20 = NameAndType        #22:#23        // moderate:(Ldev/langchain4j/model/input/Prompt;)Ldev/langchain4j/model/output/Response;\n+  #21 = Utf8               dev/langchain4j/model/moderation/ModerationModel\n+  #22 = Utf8               moderate\n+  #23 = Utf8               (Ldev/langchain4j/model/input/Prompt;)Ldev/langchain4j/model/output/Response;\n+  #24 = Methodref          #25.#26        // dev/langchain4j/model/moderation/ModerationModelTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+  #25 = Class              #27            // dev/langchain4j/model/moderation/ModerationModelTest\n+  #26 = NameAndType        #28:#29        // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+  #27 = Utf8               dev/langchain4j/model/moderation/ModerationModelTest\n+  #28 = Utf8               assertThat\n+  #29 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+  #30 = Methodref          #31.#32        // dev/langchain4j/model/moderation/Moderation.flagged:(Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n+  #31 = Class              #33            // dev/langchain4j/model/moderation/Moderation\n+  #32 = NameAndType        #34:#35        // flagged:(Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n+  #33 = Utf8               dev/langchain4j/model/moderation/Moderation\n+  #34 = Utf8               flagged\n+  #35 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n+  #36 = Methodref          #37.#38        // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+  #37 = Class              #39            // dev/langchain4j/model/output/Response\n+  #38 = NameAndType        #16:#40        // from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+  #39 = Utf8               dev/langchain4j/model/output/Response\n+  #40 = Utf8               (Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+  #41 = Methodref          #42.#43        // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #42 = Class              #44            // org/assertj/core/api/ObjectAssert\n+  #43 = NameAndType        #45:#46        // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #44 = Utf8               org/assertj/core/api/ObjectAssert\n+  #45 = Utf8               isEqualTo\n+  #46 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #47 = Methodref          #48.#49        // dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+  #48 = Class              #50            // dev/langchain4j/data/message/UserMessage\n+  #49 = NameAndType        #16:#51        // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+  #50 = Utf8               dev/langchain4j/data/message/UserMessage\n+  #51 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+  #52 = InterfaceMethodref #19.#53        // dev/langchain4j/model/moderation/ModerationModel.moderate:(Ldev/langchain4j/data/message/ChatMessage;)Ldev/langchain4j/model/output/Response;\n+  #53 = NameAndType        #22:#54        // moderate:(Ldev/langchain4j/data/message/ChatMessage;)Ldev/langchain4j/model/output/Response;\n+  #54 = Utf8               (Ldev/langchain4j/data/message/ChatMessage;)Ldev/langchain4j/model/output/Response;\n+  #55 = Methodref          #56.#57        // dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #56 = Class              #58            // dev/langchain4j/data/segment/TextSegment\n+  #57 = NameAndType        #16:#59        // from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #58 = Utf8               dev/langchain4j/data/segment/TextSegment\n+  #59 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #60 = InterfaceMethodref #19.#61        // dev/langchain4j/model/moderation/ModerationModel.moderate:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/model/output/Response;\n+  #61 = NameAndType        #22:#62        // moderate:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/model/output/Response;\n+  #62 = Utf8               (Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/model/output/Response;\n+  #63 = Class              #64            // org/assertj/core/api/WithAssertions\n+  #64 = Utf8               org/assertj/core/api/WithAssertions\n+  #65 = Utf8               Code\n+  #66 = Utf8               LineNumberTable\n+  #67 = Utf8               LocalVariableTable\n+  #68 = Utf8               this\n+  #69 = Utf8               Ldev/langchain4j/model/moderation/ModerationModelTest;\n+  #70 = Utf8               test_moderate_prompt\n+  #71 = Utf8               model\n+  #72 = Utf8               Ldev/langchain4j/model/moderation/ModerationModel;\n+  #73 = Utf8               response\n+  #74 = Utf8               Ldev/langchain4j/model/output/Response;\n+  #75 = Utf8               LocalVariableTypeTable\n+  #76 = Utf8               Ldev/langchain4j/model/output/Response<Ldev/langchain4j/model/moderation/Moderation;>;\n+  #77 = Utf8               RuntimeVisibleAnnotations\n+  #78 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #79 = Utf8               test_moderate_chat_message\n+  #80 = Utf8               test_moderate_TextSegment\n+  #81 = Utf8               SourceFile\n+  #82 = Utf8               ModerationModelTest.java\n+  #83 = Utf8               InnerClasses\n+  #84 = Utf8               FlagEverythingModel\n {\n   dev.langchain4j.model.moderation.ModerationModelTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -108,30 +108,30 @@\n             0       5     0  this   Ldev/langchain4j/model/moderation/ModerationModelTest;\n \n   public void test_moderate_prompt();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=3, args_size=1\n-         0: new           #2                  // class dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel\n+         0: new           #7                  // class dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel.\"<init>\":()V\n          7: astore_1\n          8: aload_1\n-         9: ldc           #4                  // String Hello, world!\n-        11: invokestatic  #5                  // Method dev/langchain4j/model/input/Prompt.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n-        14: invokeinterface #6,  2            // InterfaceMethod dev/langchain4j/model/moderation/ModerationModel.moderate:(Ldev/langchain4j/model/input/Prompt;)Ldev/langchain4j/model/output/Response;\n+         9: ldc           #10                 // String Hello, world!\n+        11: invokestatic  #12                 // Method dev/langchain4j/model/input/Prompt.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n+        14: invokeinterface #18,  2           // InterfaceMethod dev/langchain4j/model/moderation/ModerationModel.moderate:(Ldev/langchain4j/model/input/Prompt;)Ldev/langchain4j/model/output/Response;\n         19: astore_2\n         20: aload_0\n         21: aload_2\n-        22: invokevirtual #7                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        25: ldc           #4                  // String Hello, world!\n-        27: invokestatic  #8                  // Method dev/langchain4j/model/moderation/Moderation.flagged:(Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n-        30: invokestatic  #9                  // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-        33: invokevirtual #10                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        22: invokevirtual #24                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        25: ldc           #10                 // String Hello, world!\n+        27: invokestatic  #30                 // Method dev/langchain4j/model/moderation/Moderation.flagged:(Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n+        30: invokestatic  #36                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+        33: invokevirtual #41                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         36: pop\n         37: return\n       LineNumberTable:\n         line 29: 0\n         line 30: 8\n         line 31: 20\n         line 32: 37\n@@ -140,38 +140,38 @@\n             0      38     0  this   Ldev/langchain4j/model/moderation/ModerationModelTest;\n             8      30     1 model   Ldev/langchain4j/model/moderation/ModerationModel;\n            20      18     2 response   Ldev/langchain4j/model/output/Response;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            20      18     2 response   Ldev/langchain4j/model/output/Response<Ldev/langchain4j/model/moderation/Moderation;>;\n     RuntimeVisibleAnnotations:\n-      0: #35()\n+      0: #78()\n         org.junit.jupiter.api.Test\n \n   public void test_moderate_chat_message();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=3, args_size=1\n-         0: new           #2                  // class dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel\n+         0: new           #7                  // class dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel.\"<init>\":()V\n          7: astore_1\n          8: aload_1\n-         9: ldc           #4                  // String Hello, world!\n-        11: invokestatic  #11                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-        14: invokeinterface #12,  2           // InterfaceMethod dev/langchain4j/model/moderation/ModerationModel.moderate:(Ldev/langchain4j/data/message/ChatMessage;)Ldev/langchain4j/model/output/Response;\n+         9: ldc           #10                 // String Hello, world!\n+        11: invokestatic  #47                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+        14: invokeinterface #52,  2           // InterfaceMethod dev/langchain4j/model/moderation/ModerationModel.moderate:(Ldev/langchain4j/data/message/ChatMessage;)Ldev/langchain4j/model/output/Response;\n         19: astore_2\n         20: aload_0\n         21: aload_2\n-        22: invokevirtual #7                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        25: ldc           #4                  // String Hello, world!\n-        27: invokestatic  #8                  // Method dev/langchain4j/model/moderation/Moderation.flagged:(Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n-        30: invokestatic  #9                  // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-        33: invokevirtual #10                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        22: invokevirtual #24                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        25: ldc           #10                 // String Hello, world!\n+        27: invokestatic  #30                 // Method dev/langchain4j/model/moderation/Moderation.flagged:(Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n+        30: invokestatic  #36                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+        33: invokevirtual #41                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         36: pop\n         37: return\n       LineNumberTable:\n         line 36: 0\n         line 37: 8\n         line 38: 11\n         line 37: 14\n@@ -182,38 +182,38 @@\n             0      38     0  this   Ldev/langchain4j/model/moderation/ModerationModelTest;\n             8      30     1 model   Ldev/langchain4j/model/moderation/ModerationModel;\n            20      18     2 response   Ldev/langchain4j/model/output/Response;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            20      18     2 response   Ldev/langchain4j/model/output/Response<Ldev/langchain4j/model/moderation/Moderation;>;\n     RuntimeVisibleAnnotations:\n-      0: #35()\n+      0: #78()\n         org.junit.jupiter.api.Test\n \n   public void test_moderate_TextSegment();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=3, args_size=1\n-         0: new           #2                  // class dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel\n+         0: new           #7                  // class dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel.\"<init>\":()V\n          7: astore_1\n          8: aload_1\n-         9: ldc           #4                  // String Hello, world!\n-        11: invokestatic  #13                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-        14: invokeinterface #14,  2           // InterfaceMethod dev/langchain4j/model/moderation/ModerationModel.moderate:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/model/output/Response;\n+         9: ldc           #10                 // String Hello, world!\n+        11: invokestatic  #55                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+        14: invokeinterface #60,  2           // InterfaceMethod dev/langchain4j/model/moderation/ModerationModel.moderate:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/model/output/Response;\n         19: astore_2\n         20: aload_0\n         21: aload_2\n-        22: invokevirtual #7                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        25: ldc           #4                  // String Hello, world!\n-        27: invokestatic  #8                  // Method dev/langchain4j/model/moderation/Moderation.flagged:(Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n-        30: invokestatic  #9                  // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-        33: invokevirtual #10                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        22: invokevirtual #24                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        25: ldc           #10                 // String Hello, world!\n+        27: invokestatic  #30                 // Method dev/langchain4j/model/moderation/Moderation.flagged:(Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n+        30: invokestatic  #36                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+        33: invokevirtual #41                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         36: pop\n         37: return\n       LineNumberTable:\n         line 44: 0\n         line 45: 8\n         line 46: 11\n         line 45: 14\n@@ -224,13 +224,13 @@\n             0      38     0  this   Ldev/langchain4j/model/moderation/ModerationModelTest;\n             8      30     1 model   Ldev/langchain4j/model/moderation/ModerationModel;\n            20      18     2 response   Ldev/langchain4j/model/output/Response;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            20      18     2 response   Ldev/langchain4j/model/output/Response<Ldev/langchain4j/model/moderation/Moderation;>;\n     RuntimeVisibleAnnotations:\n-      0: #35()\n+      0: #78()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"ModerationModelTest.java\"\n InnerClasses:\n-  public static #18= #2 of #15;           // FlagEverythingModel=class dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel of class dev/langchain4j/model/moderation/ModerationModelTest\n+  public static #84= #7 of #25;           // FlagEverythingModel=class dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel of class dev/langchain4j/model/moderation/ModerationModelTest\n"}]}, {"source1": "dev/langchain4j/model/moderation/ModerationTest.class", "source2": "dev/langchain4j/model/moderation/ModerationTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,120 +1,120 @@\n-  SHA-256 checksum 9253515e3405cb0ca4e6fec169a76ba50105cdd386f8e24fded58584b69b4621\n+  SHA-256 checksum 67b264bcc84002573edea2d135a3a8633b90c8cc0365f3f63ce99ab39c5c1b49\n   Compiled from \"ModerationTest.java\"\n class dev.langchain4j.model.moderation.ModerationTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #27                         // dev/langchain4j/model/moderation/ModerationTest\n-  super_class: #22                        // java/lang/Object\n+  this_class: #15                         // dev/langchain4j/model/moderation/ModerationTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 4, attributes: 1\n Constant pool:\n-    #1 = Methodref          #22.#51       // java/lang/Object.\"<init>\":()V\n-    #2 = Class              #52           // dev/langchain4j/model/moderation/Moderation\n-    #3 = Methodref          #2.#51        // dev/langchain4j/model/moderation/Moderation.\"<init>\":()V\n-    #4 = Methodref          #2.#53        // dev/langchain4j/model/moderation/Moderation.flagged:()Z\n-    #5 = Methodref          #27.#54       // dev/langchain4j/model/moderation/ModerationTest.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-    #6 = Methodref          #55.#56       // org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n-    #7 = Methodref          #2.#57        // dev/langchain4j/model/moderation/Moderation.flaggedText:()Ljava/lang/String;\n-    #8 = Methodref          #27.#58       // dev/langchain4j/model/moderation/ModerationTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-    #9 = Methodref          #59.#60       // org/assertj/core/api/AbstractStringAssert.isNull:()V\n-   #10 = Methodref          #27.#61       // dev/langchain4j/model/moderation/ModerationTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #11 = String             #62           // Moderation { flagged = false, flaggedText = null }\n-   #12 = Methodref          #20.#63       // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-   #13 = String             #64           // flaggedText\n-   #14 = Methodref          #2.#65        // dev/langchain4j/model/moderation/Moderation.\"<init>\":(Ljava/lang/String;)V\n-   #15 = Methodref          #55.#66       // org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n-   #16 = Methodref          #59.#67       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #17 = String             #68           // Moderation { flagged = true, flaggedText = \\\"flaggedText\\\" }\n-   #18 = String             #69           // other text\n-   #19 = Methodref          #20.#70       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #20 = Class              #71           // org/assertj/core/api/ObjectAssert\n-   #21 = Methodref          #20.#72       // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #22 = Class              #73           // java/lang/Object\n-   #23 = Methodref          #20.#74       // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #24 = Methodref          #20.#75       // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #25 = Methodref          #2.#76        // dev/langchain4j/model/moderation/Moderation.flagged:(Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n-   #26 = Methodref          #2.#77        // dev/langchain4j/model/moderation/Moderation.notFlagged:()Ldev/langchain4j/model/moderation/Moderation;\n-   #27 = Class              #78           // dev/langchain4j/model/moderation/ModerationTest\n-   #28 = Class              #79           // org/assertj/core/api/WithAssertions\n-   #29 = Utf8               <init>\n-   #30 = Utf8               ()V\n-   #31 = Utf8               Code\n-   #32 = Utf8               LineNumberTable\n-   #33 = Utf8               LocalVariableTable\n-   #34 = Utf8               this\n-   #35 = Utf8               Ldev/langchain4j/model/moderation/ModerationTest;\n-   #36 = Utf8               test_methods\n-   #37 = Utf8               moderation\n-   #38 = Utf8               Ldev/langchain4j/model/moderation/Moderation;\n-   #39 = Utf8               RuntimeVisibleAnnotations\n-   #40 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #41 = Utf8               test_equals_hashCode\n-   #42 = Utf8               flagged1\n-   #43 = Utf8               flagged2\n-   #44 = Utf8               unflagged1\n-   #45 = Utf8               unflagged2\n-   #46 = Utf8               flagged3\n-   #47 = Utf8               flagged4\n-   #48 = Utf8               test_builders\n-   #49 = Utf8               SourceFile\n-   #50 = Utf8               ModerationTest.java\n-   #51 = NameAndType        #29:#30       // \"<init>\":()V\n-   #52 = Utf8               dev/langchain4j/model/moderation/Moderation\n-   #53 = NameAndType        #80:#81       // flagged:()Z\n-   #54 = NameAndType        #82:#83       // assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-   #55 = Class              #84           // org/assertj/core/api/AbstractBooleanAssert\n-   #56 = NameAndType        #85:#86       // isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n-   #57 = NameAndType        #64:#87       // flaggedText:()Ljava/lang/String;\n-   #58 = NameAndType        #82:#88       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #59 = Class              #89           // org/assertj/core/api/AbstractStringAssert\n-   #60 = NameAndType        #90:#30       // isNull:()V\n-   #61 = NameAndType        #82:#91       // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #62 = Utf8               Moderation { flagged = false, flaggedText = null }\n-   #63 = NameAndType        #92:#93       // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-   #64 = Utf8               flaggedText\n-   #65 = NameAndType        #29:#94       // \"<init>\":(Ljava/lang/String;)V\n-   #66 = NameAndType        #95:#86       // isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n-   #67 = NameAndType        #96:#88       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #68 = Utf8               Moderation { flagged = true, flaggedText = \\\"flaggedText\\\" }\n-   #69 = Utf8               other text\n-   #70 = NameAndType        #96:#97       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #71 = Utf8               org/assertj/core/api/ObjectAssert\n-   #72 = NameAndType        #98:#97       // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #73 = Utf8               java/lang/Object\n-   #74 = NameAndType        #99:#97       // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #75 = NameAndType        #100:#97      // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #76 = NameAndType        #80:#101      // flagged:(Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n-   #77 = NameAndType        #102:#103     // notFlagged:()Ldev/langchain4j/model/moderation/Moderation;\n-   #78 = Utf8               dev/langchain4j/model/moderation/ModerationTest\n-   #79 = Utf8               org/assertj/core/api/WithAssertions\n-   #80 = Utf8               flagged\n-   #81 = Utf8               ()Z\n-   #82 = Utf8               assertThat\n-   #83 = Utf8               (Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-   #84 = Utf8               org/assertj/core/api/AbstractBooleanAssert\n-   #85 = Utf8               isFalse\n-   #86 = Utf8               ()Lorg/assertj/core/api/AbstractBooleanAssert;\n-   #87 = Utf8               ()Ljava/lang/String;\n-   #88 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #89 = Utf8               org/assertj/core/api/AbstractStringAssert\n-   #90 = Utf8               isNull\n-   #91 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #92 = Utf8               hasToString\n-   #93 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-   #94 = Utf8               (Ljava/lang/String;)V\n-   #95 = Utf8               isTrue\n-   #96 = Utf8               isEqualTo\n-   #97 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #98 = Utf8               isNotEqualTo\n-   #99 = Utf8               hasSameHashCodeAs\n-  #100 = Utf8               doesNotHaveSameHashCodeAs\n-  #101 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n-  #102 = Utf8               notFlagged\n-  #103 = Utf8               ()Ldev/langchain4j/model/moderation/Moderation;\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Class              #8            // dev/langchain4j/model/moderation/Moderation\n+    #8 = Utf8               dev/langchain4j/model/moderation/Moderation\n+    #9 = Methodref          #7.#3         // dev/langchain4j/model/moderation/Moderation.\"<init>\":()V\n+   #10 = Methodref          #7.#11        // dev/langchain4j/model/moderation/Moderation.flagged:()Z\n+   #11 = NameAndType        #12:#13       // flagged:()Z\n+   #12 = Utf8               flagged\n+   #13 = Utf8               ()Z\n+   #14 = Methodref          #15.#16       // dev/langchain4j/model/moderation/ModerationTest.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+   #15 = Class              #17           // dev/langchain4j/model/moderation/ModerationTest\n+   #16 = NameAndType        #18:#19       // assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+   #17 = Utf8               dev/langchain4j/model/moderation/ModerationTest\n+   #18 = Utf8               assertThat\n+   #19 = Utf8               (Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+   #20 = Methodref          #21.#22       // org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+   #21 = Class              #23           // org/assertj/core/api/AbstractBooleanAssert\n+   #22 = NameAndType        #24:#25       // isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+   #23 = Utf8               org/assertj/core/api/AbstractBooleanAssert\n+   #24 = Utf8               isFalse\n+   #25 = Utf8               ()Lorg/assertj/core/api/AbstractBooleanAssert;\n+   #26 = Methodref          #7.#27        // dev/langchain4j/model/moderation/Moderation.flaggedText:()Ljava/lang/String;\n+   #27 = NameAndType        #28:#29       // flaggedText:()Ljava/lang/String;\n+   #28 = Utf8               flaggedText\n+   #29 = Utf8               ()Ljava/lang/String;\n+   #30 = Methodref          #15.#31       // dev/langchain4j/model/moderation/ModerationTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #31 = NameAndType        #18:#32       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #32 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #33 = Methodref          #34.#35       // org/assertj/core/api/AbstractStringAssert.isNull:()V\n+   #34 = Class              #36           // org/assertj/core/api/AbstractStringAssert\n+   #35 = NameAndType        #37:#6        // isNull:()V\n+   #36 = Utf8               org/assertj/core/api/AbstractStringAssert\n+   #37 = Utf8               isNull\n+   #38 = Methodref          #15.#39       // dev/langchain4j/model/moderation/ModerationTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #39 = NameAndType        #18:#40       // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #40 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #41 = String             #42           // Moderation { flagged = false, flaggedText = null }\n+   #42 = Utf8               Moderation { flagged = false, flaggedText = null }\n+   #43 = Methodref          #44.#45       // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #44 = Class              #46           // org/assertj/core/api/ObjectAssert\n+   #45 = NameAndType        #47:#48       // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #46 = Utf8               org/assertj/core/api/ObjectAssert\n+   #47 = Utf8               hasToString\n+   #48 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #49 = String             #28           // flaggedText\n+   #50 = Methodref          #7.#51        // dev/langchain4j/model/moderation/Moderation.\"<init>\":(Ljava/lang/String;)V\n+   #51 = NameAndType        #5:#52        // \"<init>\":(Ljava/lang/String;)V\n+   #52 = Utf8               (Ljava/lang/String;)V\n+   #53 = Methodref          #21.#54       // org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+   #54 = NameAndType        #55:#25       // isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+   #55 = Utf8               isTrue\n+   #56 = Methodref          #34.#57       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #57 = NameAndType        #58:#32       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #58 = Utf8               isEqualTo\n+   #59 = String             #60           // Moderation { flagged = true, flaggedText = \\\"flaggedText\\\" }\n+   #60 = Utf8               Moderation { flagged = true, flaggedText = \\\"flaggedText\\\" }\n+   #61 = String             #62           // other text\n+   #62 = Utf8               other text\n+   #63 = Methodref          #44.#64       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #64 = NameAndType        #58:#65       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #65 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #66 = Methodref          #44.#67       // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #67 = NameAndType        #68:#65       // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #68 = Utf8               isNotEqualTo\n+   #69 = Methodref          #44.#70       // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #70 = NameAndType        #71:#65       // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #71 = Utf8               hasSameHashCodeAs\n+   #72 = Methodref          #44.#73       // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #73 = NameAndType        #74:#65       // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #74 = Utf8               doesNotHaveSameHashCodeAs\n+   #75 = Methodref          #7.#76        // dev/langchain4j/model/moderation/Moderation.flagged:(Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n+   #76 = NameAndType        #12:#77       // flagged:(Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n+   #77 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n+   #78 = Methodref          #7.#79        // dev/langchain4j/model/moderation/Moderation.notFlagged:()Ldev/langchain4j/model/moderation/Moderation;\n+   #79 = NameAndType        #80:#81       // notFlagged:()Ldev/langchain4j/model/moderation/Moderation;\n+   #80 = Utf8               notFlagged\n+   #81 = Utf8               ()Ldev/langchain4j/model/moderation/Moderation;\n+   #82 = Class              #83           // org/assertj/core/api/WithAssertions\n+   #83 = Utf8               org/assertj/core/api/WithAssertions\n+   #84 = Utf8               Code\n+   #85 = Utf8               LineNumberTable\n+   #86 = Utf8               LocalVariableTable\n+   #87 = Utf8               this\n+   #88 = Utf8               Ldev/langchain4j/model/moderation/ModerationTest;\n+   #89 = Utf8               test_methods\n+   #90 = Utf8               moderation\n+   #91 = Utf8               Ldev/langchain4j/model/moderation/Moderation;\n+   #92 = Utf8               RuntimeVisibleAnnotations\n+   #93 = Utf8               Lorg/junit/jupiter/api/Test;\n+   #94 = Utf8               test_equals_hashCode\n+   #95 = Utf8               flagged1\n+   #96 = Utf8               flagged2\n+   #97 = Utf8               unflagged1\n+   #98 = Utf8               unflagged2\n+   #99 = Utf8               flagged3\n+  #100 = Utf8               flagged4\n+  #101 = Utf8               test_builders\n+  #102 = Utf8               SourceFile\n+  #103 = Utf8               ModerationTest.java\n {\n   dev.langchain4j.model.moderation.ModerationTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -127,58 +127,58 @@\n             0       5     0  this   Ldev/langchain4j/model/moderation/ModerationTest;\n \n   public void test_methods();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=2, args_size=1\n-         0: new           #2                  // class dev/langchain4j/model/moderation/Moderation\n+         0: new           #7                  // class dev/langchain4j/model/moderation/Moderation\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/model/moderation/Moderation.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/model/moderation/Moderation.\"<init>\":()V\n          7: astore_1\n          8: aload_0\n          9: aload_1\n-        10: invokevirtual #4                  // Method dev/langchain4j/model/moderation/Moderation.flagged:()Z\n-        13: invokevirtual #5                  // Method assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-        16: invokevirtual #6                  // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+        10: invokevirtual #10                 // Method dev/langchain4j/model/moderation/Moderation.flagged:()Z\n+        13: invokevirtual #14                 // Method assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+        16: invokevirtual #20                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n         19: pop\n         20: aload_0\n         21: aload_1\n-        22: invokevirtual #7                  // Method dev/langchain4j/model/moderation/Moderation.flaggedText:()Ljava/lang/String;\n-        25: invokevirtual #8                  // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        28: invokevirtual #9                  // Method org/assertj/core/api/AbstractStringAssert.isNull:()V\n+        22: invokevirtual #26                 // Method dev/langchain4j/model/moderation/Moderation.flaggedText:()Ljava/lang/String;\n+        25: invokevirtual #30                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        28: invokevirtual #33                 // Method org/assertj/core/api/AbstractStringAssert.isNull:()V\n         31: aload_0\n         32: aload_1\n-        33: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        36: ldc           #11                 // String Moderation { flagged = false, flaggedText = null }\n-        38: invokevirtual #12                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+        33: invokevirtual #38                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        36: ldc           #41                 // String Moderation { flagged = false, flaggedText = null }\n+        38: invokevirtual #43                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n         41: pop\n-        42: new           #2                  // class dev/langchain4j/model/moderation/Moderation\n+        42: new           #7                  // class dev/langchain4j/model/moderation/Moderation\n         45: dup\n-        46: ldc           #13                 // String flaggedText\n-        48: invokespecial #14                 // Method dev/langchain4j/model/moderation/Moderation.\"<init>\":(Ljava/lang/String;)V\n+        46: ldc           #49                 // String flaggedText\n+        48: invokespecial #50                 // Method dev/langchain4j/model/moderation/Moderation.\"<init>\":(Ljava/lang/String;)V\n         51: astore_1\n         52: aload_0\n         53: aload_1\n-        54: invokevirtual #4                  // Method dev/langchain4j/model/moderation/Moderation.flagged:()Z\n-        57: invokevirtual #5                  // Method assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-        60: invokevirtual #15                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+        54: invokevirtual #10                 // Method dev/langchain4j/model/moderation/Moderation.flagged:()Z\n+        57: invokevirtual #14                 // Method assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+        60: invokevirtual #53                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n         63: pop\n         64: aload_0\n         65: aload_1\n-        66: invokevirtual #7                  // Method dev/langchain4j/model/moderation/Moderation.flaggedText:()Ljava/lang/String;\n-        69: invokevirtual #8                  // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        72: ldc           #13                 // String flaggedText\n-        74: invokevirtual #16                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        66: invokevirtual #26                 // Method dev/langchain4j/model/moderation/Moderation.flaggedText:()Ljava/lang/String;\n+        69: invokevirtual #30                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        72: ldc           #49                 // String flaggedText\n+        74: invokevirtual #56                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         77: pop\n         78: aload_0\n         79: aload_1\n-        80: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        83: ldc           #17                 // String Moderation { flagged = true, flaggedText = \\\"flaggedText\\\" }\n-        85: invokevirtual #12                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+        80: invokevirtual #38                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        83: ldc           #59                 // String Moderation { flagged = true, flaggedText = \\\"flaggedText\\\" }\n+        85: invokevirtual #43                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n         88: pop\n         89: return\n       LineNumberTable:\n         line 11: 0\n         line 12: 8\n         line 13: 20\n         line 14: 31\n@@ -191,131 +191,131 @@\n         line 24: 89\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             8      34     1 moderation   Ldev/langchain4j/model/moderation/Moderation;\n            52      37     1 moderation   Ldev/langchain4j/model/moderation/Moderation;\n             0      90     0  this   Ldev/langchain4j/model/moderation/ModerationTest;\n     RuntimeVisibleAnnotations:\n-      0: #40()\n+      0: #93()\n         org.junit.jupiter.api.Test\n \n   public void test_equals_hashCode();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=7, args_size=1\n-         0: new           #2                  // class dev/langchain4j/model/moderation/Moderation\n+         0: new           #7                  // class dev/langchain4j/model/moderation/Moderation\n          3: dup\n-         4: ldc           #13                 // String flaggedText\n-         6: invokespecial #14                 // Method dev/langchain4j/model/moderation/Moderation.\"<init>\":(Ljava/lang/String;)V\n+         4: ldc           #49                 // String flaggedText\n+         6: invokespecial #50                 // Method dev/langchain4j/model/moderation/Moderation.\"<init>\":(Ljava/lang/String;)V\n          9: astore_1\n-        10: new           #2                  // class dev/langchain4j/model/moderation/Moderation\n+        10: new           #7                  // class dev/langchain4j/model/moderation/Moderation\n         13: dup\n-        14: ldc           #13                 // String flaggedText\n-        16: invokespecial #14                 // Method dev/langchain4j/model/moderation/Moderation.\"<init>\":(Ljava/lang/String;)V\n+        14: ldc           #49                 // String flaggedText\n+        16: invokespecial #50                 // Method dev/langchain4j/model/moderation/Moderation.\"<init>\":(Ljava/lang/String;)V\n         19: astore_2\n-        20: new           #2                  // class dev/langchain4j/model/moderation/Moderation\n+        20: new           #7                  // class dev/langchain4j/model/moderation/Moderation\n         23: dup\n-        24: invokespecial #3                  // Method dev/langchain4j/model/moderation/Moderation.\"<init>\":()V\n+        24: invokespecial #9                  // Method dev/langchain4j/model/moderation/Moderation.\"<init>\":()V\n         27: astore_3\n-        28: new           #2                  // class dev/langchain4j/model/moderation/Moderation\n+        28: new           #7                  // class dev/langchain4j/model/moderation/Moderation\n         31: dup\n-        32: invokespecial #3                  // Method dev/langchain4j/model/moderation/Moderation.\"<init>\":()V\n+        32: invokespecial #9                  // Method dev/langchain4j/model/moderation/Moderation.\"<init>\":()V\n         35: astore        4\n-        37: new           #2                  // class dev/langchain4j/model/moderation/Moderation\n+        37: new           #7                  // class dev/langchain4j/model/moderation/Moderation\n         40: dup\n-        41: ldc           #18                 // String other text\n-        43: invokespecial #14                 // Method dev/langchain4j/model/moderation/Moderation.\"<init>\":(Ljava/lang/String;)V\n+        41: ldc           #61                 // String other text\n+        43: invokespecial #50                 // Method dev/langchain4j/model/moderation/Moderation.\"<init>\":(Ljava/lang/String;)V\n         46: astore        5\n-        48: new           #2                  // class dev/langchain4j/model/moderation/Moderation\n+        48: new           #7                  // class dev/langchain4j/model/moderation/Moderation\n         51: dup\n-        52: ldc           #18                 // String other text\n-        54: invokespecial #14                 // Method dev/langchain4j/model/moderation/Moderation.\"<init>\":(Ljava/lang/String;)V\n+        52: ldc           #61                 // String other text\n+        54: invokespecial #50                 // Method dev/langchain4j/model/moderation/Moderation.\"<init>\":(Ljava/lang/String;)V\n         57: astore        6\n         59: aload_0\n         60: aload_3\n-        61: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        61: invokevirtual #38                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         64: aload_3\n-        65: invokevirtual #19                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        68: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n+        65: invokevirtual #63                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        68: checkcast     #44                 // class org/assertj/core/api/ObjectAssert\n         71: aconst_null\n-        72: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        75: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n-        78: new           #22                 // class java/lang/Object\n+        72: invokevirtual #66                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        75: checkcast     #44                 // class org/assertj/core/api/ObjectAssert\n+        78: new           #2                  // class java/lang/Object\n         81: dup\n         82: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n-        85: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        88: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n+        85: invokevirtual #66                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        88: checkcast     #44                 // class org/assertj/core/api/ObjectAssert\n         91: aload         4\n-        93: invokevirtual #19                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        96: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n+        93: invokevirtual #63                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        96: checkcast     #44                 // class org/assertj/core/api/ObjectAssert\n         99: aload         4\n-       101: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       104: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n+       101: invokevirtual #69                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       104: checkcast     #44                 // class org/assertj/core/api/ObjectAssert\n        107: aload_1\n-       108: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       111: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n+       108: invokevirtual #66                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       111: checkcast     #44                 // class org/assertj/core/api/ObjectAssert\n        114: aload_1\n-       115: invokevirtual #24                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       118: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n+       115: invokevirtual #72                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       118: checkcast     #44                 // class org/assertj/core/api/ObjectAssert\n        121: aload_2\n-       122: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       125: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n+       122: invokevirtual #66                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       125: checkcast     #44                 // class org/assertj/core/api/ObjectAssert\n        128: aload_2\n-       129: invokevirtual #24                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       129: invokevirtual #72                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        132: pop\n        133: aload_0\n        134: aload_1\n-       135: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       135: invokevirtual #38                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        138: aload_1\n-       139: invokevirtual #19                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       142: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n+       139: invokevirtual #63                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       142: checkcast     #44                 // class org/assertj/core/api/ObjectAssert\n        145: aconst_null\n-       146: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       149: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n-       152: new           #22                 // class java/lang/Object\n+       146: invokevirtual #66                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       149: checkcast     #44                 // class org/assertj/core/api/ObjectAssert\n+       152: new           #2                  // class java/lang/Object\n        155: dup\n        156: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n-       159: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       162: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n+       159: invokevirtual #66                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       162: checkcast     #44                 // class org/assertj/core/api/ObjectAssert\n        165: aload_2\n-       166: invokevirtual #19                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       169: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n+       166: invokevirtual #63                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       169: checkcast     #44                 // class org/assertj/core/api/ObjectAssert\n        172: aload_2\n-       173: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       176: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n+       173: invokevirtual #69                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       176: checkcast     #44                 // class org/assertj/core/api/ObjectAssert\n        179: aload_3\n-       180: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       183: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n+       180: invokevirtual #66                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       183: checkcast     #44                 // class org/assertj/core/api/ObjectAssert\n        186: aload_3\n-       187: invokevirtual #24                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       190: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n+       187: invokevirtual #72                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       190: checkcast     #44                 // class org/assertj/core/api/ObjectAssert\n        193: aload         4\n-       195: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       198: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n+       195: invokevirtual #66                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       198: checkcast     #44                 // class org/assertj/core/api/ObjectAssert\n        201: aload         4\n-       203: invokevirtual #24                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       206: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n+       203: invokevirtual #72                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       206: checkcast     #44                 // class org/assertj/core/api/ObjectAssert\n        209: aload         5\n-       211: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       214: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n+       211: invokevirtual #66                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       214: checkcast     #44                 // class org/assertj/core/api/ObjectAssert\n        217: aload         5\n-       219: invokevirtual #24                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       219: invokevirtual #72                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        222: pop\n        223: aload_0\n        224: aload         5\n-       226: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       226: invokevirtual #38                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        229: aload         5\n-       231: invokevirtual #19                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       234: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n+       231: invokevirtual #63                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       234: checkcast     #44                 // class org/assertj/core/api/ObjectAssert\n        237: aload         6\n-       239: invokevirtual #19                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       242: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n+       239: invokevirtual #63                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       242: checkcast     #44                 // class org/assertj/core/api/ObjectAssert\n        245: aload         6\n-       247: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       247: invokevirtual #69                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        250: pop\n        251: return\n       LineNumberTable:\n         line 28: 0\n         line 29: 10\n         line 31: 20\n         line 32: 28\n@@ -354,48 +354,48 @@\n            10     242     1 flagged1   Ldev/langchain4j/model/moderation/Moderation;\n            20     232     2 flagged2   Ldev/langchain4j/model/moderation/Moderation;\n            28     224     3 unflagged1   Ldev/langchain4j/model/moderation/Moderation;\n            37     215     4 unflagged2   Ldev/langchain4j/model/moderation/Moderation;\n            48     204     5 flagged3   Ldev/langchain4j/model/moderation/Moderation;\n            59     193     6 flagged4   Ldev/langchain4j/model/moderation/Moderation;\n     RuntimeVisibleAnnotations:\n-      0: #40()\n+      0: #93()\n         org.junit.jupiter.api.Test\n \n   public void test_builders();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=4, locals=1, args_size=1\n          0: aload_0\n-         1: new           #2                  // class dev/langchain4j/model/moderation/Moderation\n+         1: new           #7                  // class dev/langchain4j/model/moderation/Moderation\n          4: dup\n-         5: ldc           #13                 // String flaggedText\n-         7: invokespecial #14                 // Method dev/langchain4j/model/moderation/Moderation.\"<init>\":(Ljava/lang/String;)V\n-        10: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        13: ldc           #13                 // String flaggedText\n-        15: invokestatic  #25                 // Method dev/langchain4j/model/moderation/Moderation.flagged:(Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n-        18: invokevirtual #19                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+         5: ldc           #49                 // String flaggedText\n+         7: invokespecial #50                 // Method dev/langchain4j/model/moderation/Moderation.\"<init>\":(Ljava/lang/String;)V\n+        10: invokevirtual #38                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        13: ldc           #49                 // String flaggedText\n+        15: invokestatic  #75                 // Method dev/langchain4j/model/moderation/Moderation.flagged:(Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n+        18: invokevirtual #63                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         21: pop\n         22: aload_0\n-        23: new           #2                  // class dev/langchain4j/model/moderation/Moderation\n+        23: new           #7                  // class dev/langchain4j/model/moderation/Moderation\n         26: dup\n-        27: invokespecial #3                  // Method dev/langchain4j/model/moderation/Moderation.\"<init>\":()V\n-        30: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        33: invokestatic  #26                 // Method dev/langchain4j/model/moderation/Moderation.notFlagged:()Ldev/langchain4j/model/moderation/Moderation;\n-        36: invokevirtual #19                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        27: invokespecial #9                  // Method dev/langchain4j/model/moderation/Moderation.\"<init>\":()V\n+        30: invokevirtual #38                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        33: invokestatic  #78                 // Method dev/langchain4j/model/moderation/Moderation.notFlagged:()Ldev/langchain4j/model/moderation/Moderation;\n+        36: invokevirtual #63                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         39: pop\n         40: return\n       LineNumberTable:\n         line 69: 0\n         line 70: 15\n         line 72: 22\n         line 73: 33\n         line 74: 40\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      41     0  this   Ldev/langchain4j/model/moderation/ModerationTest;\n     RuntimeVisibleAnnotations:\n-      0: #40()\n+      0: #93()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"ModerationTest.java\"\n"}]}, {"source1": "dev/langchain4j/model/output/ResponseTest.class", "source2": "dev/langchain4j/model/output/ResponseTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,150 +1,150 @@\n-  SHA-256 checksum 911433d16210ecfc0b1bacec81f3c747aef535a063488b1d194f570374273191\n+  SHA-256 checksum 5b4c273863b0f5ddc6f0be7a53ca7060b61b715e4c598d827f8bd9d79c5e3f33\n   Compiled from \"ResponseTest.java\"\n class dev.langchain4j.model.output.ResponseTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #36                         // dev/langchain4j/model/output/ResponseTest\n-  super_class: #30                        // java/lang/Object\n+  this_class: #20                         // dev/langchain4j/model/output/ResponseTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 4, attributes: 1\n Constant pool:\n-    #1 = Methodref          #30.#63       // java/lang/Object.\"<init>\":()V\n-    #2 = Class              #64           // dev/langchain4j/model/output/Response\n-    #3 = String             #65           // content\n-    #4 = Methodref          #2.#66        // dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n-    #5 = Methodref          #2.#67        // dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n-    #6 = Class              #68           // java/lang/String\n-    #7 = Methodref          #36.#69       // dev/langchain4j/model/output/ResponseTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-    #8 = Methodref          #70.#71       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-    #9 = Methodref          #2.#72        // dev/langchain4j/model/output/Response.tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n-   #10 = Methodref          #36.#73       // dev/langchain4j/model/output/ResponseTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #11 = Methodref          #27.#74       // org/assertj/core/api/ObjectAssert.isNull:()V\n-   #12 = Methodref          #2.#75        // dev/langchain4j/model/output/Response.finishReason:()Ldev/langchain4j/model/output/FinishReason;\n-   #13 = Methodref          #36.#76       // dev/langchain4j/model/output/ResponseTest.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-   #14 = Methodref          #77.#74       // org/assertj/core/api/AbstractComparableAssert.isNull:()V\n-   #15 = String             #78           // Response { content = content, tokenUsage = null, finishReason = null }\n-   #16 = Methodref          #27.#79       // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-   #17 = Class              #80           // dev/langchain4j/model/output/TokenUsage\n-   #18 = Methodref          #81.#82       // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-   #19 = Methodref          #17.#83       // dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-   #20 = Methodref          #2.#84        // dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n-   #21 = Methodref          #27.#85       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #22 = String             #86           // Response { content = content, tokenUsage = TokenUsage { inputTokenCount = 1, outputTokenCount = 2, totalTokenCount = 3 }, finishReason = null }\n-   #23 = Fieldref           #87.#88       // dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n-   #24 = Methodref          #77.#85       // org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #25 = String             #89           // Response { content = content, tokenUsage = TokenUsage { inputTokenCount = 1, outputTokenCount = 2, totalTokenCount = 3 }, finishReason = LENGTH }\n-   #26 = String             #90           // changed\n-   #27 = Class              #91           // org/assertj/core/api/ObjectAssert\n-   #28 = Methodref          #27.#92       // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #29 = Methodref          #27.#93       // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #30 = Class              #94           // java/lang/Object\n-   #31 = Methodref          #27.#95       // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #32 = Fieldref           #87.#96       // dev/langchain4j/model/output/FinishReason.STOP:Ldev/langchain4j/model/output/FinishReason;\n-   #33 = Methodref          #2.#97        // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-   #34 = Methodref          #2.#98        // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;)Ldev/langchain4j/model/output/Response;\n-   #35 = Methodref          #2.#99        // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n-   #36 = Class              #100          // dev/langchain4j/model/output/ResponseTest\n-   #37 = Class              #101          // org/assertj/core/api/WithAssertions\n-   #38 = Utf8               <init>\n-   #39 = Utf8               ()V\n-   #40 = Utf8               Code\n-   #41 = Utf8               LineNumberTable\n-   #42 = Utf8               LocalVariableTable\n-   #43 = Utf8               this\n-   #44 = Utf8               Ldev/langchain4j/model/output/ResponseTest;\n-   #45 = Utf8               test_methods\n-   #46 = Utf8               response\n-   #47 = Utf8               Ldev/langchain4j/model/output/Response;\n-   #48 = Utf8               tokenUsage\n-   #49 = Utf8               Ldev/langchain4j/model/output/TokenUsage;\n-   #50 = Utf8               LocalVariableTypeTable\n-   #51 = Utf8               Ldev/langchain4j/model/output/Response<Ljava/lang/String;>;\n-   #52 = Utf8               RuntimeVisibleAnnotations\n-   #53 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #54 = Utf8               test_equals_hashCode\n-   #55 = Utf8               content1\n-   #56 = Utf8               Ljava/lang/String;\n-   #57 = Utf8               content2\n-   #58 = Utf8               tokenUsage1\n-   #59 = Utf8               tokenUsage2\n-   #60 = Utf8               test_builders\n-   #61 = Utf8               SourceFile\n-   #62 = Utf8               ResponseTest.java\n-   #63 = NameAndType        #38:#39       // \"<init>\":()V\n-   #64 = Utf8               dev/langchain4j/model/output/Response\n-   #65 = Utf8               content\n-   #66 = NameAndType        #38:#102      // \"<init>\":(Ljava/lang/Object;)V\n-   #67 = NameAndType        #65:#103      // content:()Ljava/lang/Object;\n-   #68 = Utf8               java/lang/String\n-   #69 = NameAndType        #104:#105     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #70 = Class              #106          // org/assertj/core/api/AbstractStringAssert\n-   #71 = NameAndType        #107:#105     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #72 = NameAndType        #48:#108      // tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n-   #73 = NameAndType        #104:#109     // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #74 = NameAndType        #110:#39      // isNull:()V\n-   #75 = NameAndType        #111:#112     // finishReason:()Ldev/langchain4j/model/output/FinishReason;\n-   #76 = NameAndType        #104:#113     // assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-   #77 = Class              #114          // org/assertj/core/api/AbstractComparableAssert\n-   #78 = Utf8               Response { content = content, tokenUsage = null, finishReason = null }\n-   #79 = NameAndType        #115:#116     // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-   #80 = Utf8               dev/langchain4j/model/output/TokenUsage\n-   #81 = Class              #117          // java/lang/Integer\n-   #82 = NameAndType        #118:#119     // valueOf:(I)Ljava/lang/Integer;\n-   #83 = NameAndType        #38:#120      // \"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-   #84 = NameAndType        #38:#121      // \"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n-   #85 = NameAndType        #107:#122     // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #86 = Utf8               Response { content = content, tokenUsage = TokenUsage { inputTokenCount = 1, outputTokenCount = 2, totalTokenCount = 3 }, finishReason = null }\n-   #87 = Class              #123          // dev/langchain4j/model/output/FinishReason\n-   #88 = NameAndType        #124:#125     // LENGTH:Ldev/langchain4j/model/output/FinishReason;\n-   #89 = Utf8               Response { content = content, tokenUsage = TokenUsage { inputTokenCount = 1, outputTokenCount = 2, totalTokenCount = 3 }, finishReason = LENGTH }\n-   #90 = Utf8               changed\n-   #91 = Utf8               org/assertj/core/api/ObjectAssert\n-   #92 = NameAndType        #126:#122     // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #93 = NameAndType        #127:#122     // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #94 = Utf8               java/lang/Object\n-   #95 = NameAndType        #128:#122     // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #96 = NameAndType        #129:#125     // STOP:Ldev/langchain4j/model/output/FinishReason;\n-   #97 = NameAndType        #130:#131     // from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-   #98 = NameAndType        #130:#132     // from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;)Ldev/langchain4j/model/output/Response;\n-   #99 = NameAndType        #130:#133     // from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n-  #100 = Utf8               dev/langchain4j/model/output/ResponseTest\n-  #101 = Utf8               org/assertj/core/api/WithAssertions\n-  #102 = Utf8               (Ljava/lang/Object;)V\n-  #103 = Utf8               ()Ljava/lang/Object;\n-  #104 = Utf8               assertThat\n-  #105 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #106 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #107 = Utf8               isEqualTo\n-  #108 = Utf8               ()Ldev/langchain4j/model/output/TokenUsage;\n-  #109 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #110 = Utf8               isNull\n-  #111 = Utf8               finishReason\n-  #112 = Utf8               ()Ldev/langchain4j/model/output/FinishReason;\n-  #113 = Utf8               (Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-  #114 = Utf8               org/assertj/core/api/AbstractComparableAssert\n-  #115 = Utf8               hasToString\n-  #116 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-  #117 = Utf8               java/lang/Integer\n-  #118 = Utf8               valueOf\n-  #119 = Utf8               (I)Ljava/lang/Integer;\n-  #120 = Utf8               (Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-  #121 = Utf8               (Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n-  #122 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #123 = Utf8               dev/langchain4j/model/output/FinishReason\n-  #124 = Utf8               LENGTH\n-  #125 = Utf8               Ldev/langchain4j/model/output/FinishReason;\n-  #126 = Utf8               hasSameHashCodeAs\n-  #127 = Utf8               isNotEqualTo\n-  #128 = Utf8               doesNotHaveSameHashCodeAs\n-  #129 = Utf8               STOP\n-  #130 = Utf8               from\n-  #131 = Utf8               (Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-  #132 = Utf8               (Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;)Ldev/langchain4j/model/output/Response;\n-  #133 = Utf8               (Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Class              #8            // dev/langchain4j/model/output/Response\n+    #8 = Utf8               dev/langchain4j/model/output/Response\n+    #9 = String             #10           // content\n+   #10 = Utf8               content\n+   #11 = Methodref          #7.#12        // dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n+   #12 = NameAndType        #5:#13        // \"<init>\":(Ljava/lang/Object;)V\n+   #13 = Utf8               (Ljava/lang/Object;)V\n+   #14 = Methodref          #7.#15        // dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n+   #15 = NameAndType        #10:#16       // content:()Ljava/lang/Object;\n+   #16 = Utf8               ()Ljava/lang/Object;\n+   #17 = Class              #18           // java/lang/String\n+   #18 = Utf8               java/lang/String\n+   #19 = Methodref          #20.#21       // dev/langchain4j/model/output/ResponseTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #20 = Class              #22           // dev/langchain4j/model/output/ResponseTest\n+   #21 = NameAndType        #23:#24       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #22 = Utf8               dev/langchain4j/model/output/ResponseTest\n+   #23 = Utf8               assertThat\n+   #24 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #25 = Methodref          #26.#27       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #26 = Class              #28           // org/assertj/core/api/AbstractStringAssert\n+   #27 = NameAndType        #29:#24       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #28 = Utf8               org/assertj/core/api/AbstractStringAssert\n+   #29 = Utf8               isEqualTo\n+   #30 = Methodref          #7.#31        // dev/langchain4j/model/output/Response.tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n+   #31 = NameAndType        #32:#33       // tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n+   #32 = Utf8               tokenUsage\n+   #33 = Utf8               ()Ldev/langchain4j/model/output/TokenUsage;\n+   #34 = Methodref          #20.#35       // dev/langchain4j/model/output/ResponseTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #35 = NameAndType        #23:#36       // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #36 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #37 = Methodref          #38.#39       // org/assertj/core/api/ObjectAssert.isNull:()V\n+   #38 = Class              #40           // org/assertj/core/api/ObjectAssert\n+   #39 = NameAndType        #41:#6        // isNull:()V\n+   #40 = Utf8               org/assertj/core/api/ObjectAssert\n+   #41 = Utf8               isNull\n+   #42 = Methodref          #7.#43        // dev/langchain4j/model/output/Response.finishReason:()Ldev/langchain4j/model/output/FinishReason;\n+   #43 = NameAndType        #44:#45       // finishReason:()Ldev/langchain4j/model/output/FinishReason;\n+   #44 = Utf8               finishReason\n+   #45 = Utf8               ()Ldev/langchain4j/model/output/FinishReason;\n+   #46 = Methodref          #20.#47       // dev/langchain4j/model/output/ResponseTest.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+   #47 = NameAndType        #23:#48       // assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+   #48 = Utf8               (Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+   #49 = Methodref          #50.#39       // org/assertj/core/api/AbstractComparableAssert.isNull:()V\n+   #50 = Class              #51           // org/assertj/core/api/AbstractComparableAssert\n+   #51 = Utf8               org/assertj/core/api/AbstractComparableAssert\n+   #52 = String             #53           // Response { content = content, tokenUsage = null, finishReason = null }\n+   #53 = Utf8               Response { content = content, tokenUsage = null, finishReason = null }\n+   #54 = Methodref          #38.#55       // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #55 = NameAndType        #56:#57       // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #56 = Utf8               hasToString\n+   #57 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #58 = Class              #59           // dev/langchain4j/model/output/TokenUsage\n+   #59 = Utf8               dev/langchain4j/model/output/TokenUsage\n+   #60 = Methodref          #61.#62       // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+   #61 = Class              #63           // java/lang/Integer\n+   #62 = NameAndType        #64:#65       // valueOf:(I)Ljava/lang/Integer;\n+   #63 = Utf8               java/lang/Integer\n+   #64 = Utf8               valueOf\n+   #65 = Utf8               (I)Ljava/lang/Integer;\n+   #66 = Methodref          #58.#67       // dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+   #67 = NameAndType        #5:#68        // \"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+   #68 = Utf8               (Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+   #69 = Methodref          #7.#70        // dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n+   #70 = NameAndType        #5:#71        // \"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n+   #71 = Utf8               (Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n+   #72 = Methodref          #38.#73       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #73 = NameAndType        #29:#74       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #74 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #75 = String             #76           // Response { content = content, tokenUsage = TokenUsage { inputTokenCount = 1, outputTokenCount = 2, totalTokenCount = 3 }, finishReason = null }\n+   #76 = Utf8               Response { content = content, tokenUsage = TokenUsage { inputTokenCount = 1, outputTokenCount = 2, totalTokenCount = 3 }, finishReason = null }\n+   #77 = Fieldref           #78.#79       // dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n+   #78 = Class              #80           // dev/langchain4j/model/output/FinishReason\n+   #79 = NameAndType        #81:#82       // LENGTH:Ldev/langchain4j/model/output/FinishReason;\n+   #80 = Utf8               dev/langchain4j/model/output/FinishReason\n+   #81 = Utf8               LENGTH\n+   #82 = Utf8               Ldev/langchain4j/model/output/FinishReason;\n+   #83 = Methodref          #50.#73       // org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #84 = String             #85           // Response { content = content, tokenUsage = TokenUsage { inputTokenCount = 1, outputTokenCount = 2, totalTokenCount = 3 }, finishReason = LENGTH }\n+   #85 = Utf8               Response { content = content, tokenUsage = TokenUsage { inputTokenCount = 1, outputTokenCount = 2, totalTokenCount = 3 }, finishReason = LENGTH }\n+   #86 = String             #87           // changed\n+   #87 = Utf8               changed\n+   #88 = Methodref          #38.#89       // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #89 = NameAndType        #90:#74       // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #90 = Utf8               hasSameHashCodeAs\n+   #91 = Methodref          #38.#92       // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #92 = NameAndType        #93:#74       // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #93 = Utf8               isNotEqualTo\n+   #94 = Methodref          #38.#95       // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #95 = NameAndType        #96:#74       // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #96 = Utf8               doesNotHaveSameHashCodeAs\n+   #97 = Fieldref           #78.#98       // dev/langchain4j/model/output/FinishReason.STOP:Ldev/langchain4j/model/output/FinishReason;\n+   #98 = NameAndType        #99:#82       // STOP:Ldev/langchain4j/model/output/FinishReason;\n+   #99 = Utf8               STOP\n+  #100 = Methodref          #7.#101       // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+  #101 = NameAndType        #102:#103     // from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+  #102 = Utf8               from\n+  #103 = Utf8               (Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+  #104 = Methodref          #7.#105       // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;)Ldev/langchain4j/model/output/Response;\n+  #105 = NameAndType        #102:#106     // from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;)Ldev/langchain4j/model/output/Response;\n+  #106 = Utf8               (Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;)Ldev/langchain4j/model/output/Response;\n+  #107 = Methodref          #7.#108       // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n+  #108 = NameAndType        #102:#109     // from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n+  #109 = Utf8               (Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n+  #110 = Class              #111          // org/assertj/core/api/WithAssertions\n+  #111 = Utf8               org/assertj/core/api/WithAssertions\n+  #112 = Utf8               Code\n+  #113 = Utf8               LineNumberTable\n+  #114 = Utf8               LocalVariableTable\n+  #115 = Utf8               this\n+  #116 = Utf8               Ldev/langchain4j/model/output/ResponseTest;\n+  #117 = Utf8               test_methods\n+  #118 = Utf8               response\n+  #119 = Utf8               Ldev/langchain4j/model/output/Response;\n+  #120 = Utf8               Ldev/langchain4j/model/output/TokenUsage;\n+  #121 = Utf8               LocalVariableTypeTable\n+  #122 = Utf8               Ldev/langchain4j/model/output/Response<Ljava/lang/String;>;\n+  #123 = Utf8               RuntimeVisibleAnnotations\n+  #124 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #125 = Utf8               test_equals_hashCode\n+  #126 = Utf8               content1\n+  #127 = Utf8               Ljava/lang/String;\n+  #128 = Utf8               content2\n+  #129 = Utf8               tokenUsage1\n+  #130 = Utf8               tokenUsage2\n+  #131 = Utf8               test_builders\n+  #132 = Utf8               SourceFile\n+  #133 = Utf8               ResponseTest.java\n {\n   dev.langchain4j.model.output.ResponseTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -157,130 +157,130 @@\n             0       5     0  this   Ldev/langchain4j/model/output/ResponseTest;\n \n   public void test_methods();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=5, locals=3, args_size=1\n-         0: new           #2                  // class dev/langchain4j/model/output/Response\n+         0: new           #7                  // class dev/langchain4j/model/output/Response\n          3: dup\n-         4: ldc           #3                  // String content\n-         6: invokespecial #4                  // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n+         4: ldc           #9                  // String content\n+         6: invokespecial #11                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n          9: astore_1\n         10: aload_0\n         11: aload_1\n-        12: invokevirtual #5                  // Method dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n-        15: checkcast     #6                  // class java/lang/String\n-        18: invokevirtual #7                  // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        21: ldc           #3                  // String content\n-        23: invokevirtual #8                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        12: invokevirtual #14                 // Method dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n+        15: checkcast     #17                 // class java/lang/String\n+        18: invokevirtual #19                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        21: ldc           #9                  // String content\n+        23: invokevirtual #25                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         26: pop\n         27: aload_0\n         28: aload_1\n-        29: invokevirtual #9                  // Method dev/langchain4j/model/output/Response.tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n-        32: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        35: invokevirtual #11                 // Method org/assertj/core/api/ObjectAssert.isNull:()V\n+        29: invokevirtual #30                 // Method dev/langchain4j/model/output/Response.tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n+        32: invokevirtual #34                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        35: invokevirtual #37                 // Method org/assertj/core/api/ObjectAssert.isNull:()V\n         38: aload_0\n         39: aload_1\n-        40: invokevirtual #12                 // Method dev/langchain4j/model/output/Response.finishReason:()Ldev/langchain4j/model/output/FinishReason;\n-        43: invokevirtual #13                 // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-        46: invokevirtual #14                 // Method org/assertj/core/api/AbstractComparableAssert.isNull:()V\n+        40: invokevirtual #42                 // Method dev/langchain4j/model/output/Response.finishReason:()Ldev/langchain4j/model/output/FinishReason;\n+        43: invokevirtual #46                 // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+        46: invokevirtual #49                 // Method org/assertj/core/api/AbstractComparableAssert.isNull:()V\n         49: aload_0\n         50: aload_1\n-        51: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        54: ldc           #15                 // String Response { content = content, tokenUsage = null, finishReason = null }\n-        56: invokevirtual #16                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+        51: invokevirtual #34                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        54: ldc           #52                 // String Response { content = content, tokenUsage = null, finishReason = null }\n+        56: invokevirtual #54                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n         59: pop\n-        60: new           #17                 // class dev/langchain4j/model/output/TokenUsage\n+        60: new           #58                 // class dev/langchain4j/model/output/TokenUsage\n         63: dup\n         64: iconst_1\n-        65: invokestatic  #18                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        65: invokestatic  #60                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         68: iconst_2\n-        69: invokestatic  #18                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        69: invokestatic  #60                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         72: iconst_3\n-        73: invokestatic  #18                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-        76: invokespecial #19                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+        73: invokestatic  #60                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        76: invokespecial #66                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n         79: astore_1\n-        80: new           #2                  // class dev/langchain4j/model/output/Response\n+        80: new           #7                  // class dev/langchain4j/model/output/Response\n         83: dup\n-        84: ldc           #3                  // String content\n+        84: ldc           #9                  // String content\n         86: aload_1\n         87: aconst_null\n-        88: invokespecial #20                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n+        88: invokespecial #69                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n         91: astore_2\n         92: aload_0\n         93: aload_2\n-        94: invokevirtual #5                  // Method dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n-        97: checkcast     #6                  // class java/lang/String\n-       100: invokevirtual #7                  // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       103: ldc           #3                  // String content\n-       105: invokevirtual #8                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        94: invokevirtual #14                 // Method dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n+        97: checkcast     #17                 // class java/lang/String\n+       100: invokevirtual #19                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       103: ldc           #9                  // String content\n+       105: invokevirtual #25                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n        108: pop\n        109: aload_0\n        110: aload_2\n-       111: invokevirtual #9                  // Method dev/langchain4j/model/output/Response.tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n-       114: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       111: invokevirtual #30                 // Method dev/langchain4j/model/output/Response.tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n+       114: invokevirtual #34                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        117: aload_1\n-       118: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       118: invokevirtual #72                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        121: pop\n        122: aload_0\n        123: aload_2\n-       124: invokevirtual #12                 // Method dev/langchain4j/model/output/Response.finishReason:()Ldev/langchain4j/model/output/FinishReason;\n-       127: invokevirtual #13                 // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-       130: invokevirtual #14                 // Method org/assertj/core/api/AbstractComparableAssert.isNull:()V\n+       124: invokevirtual #42                 // Method dev/langchain4j/model/output/Response.finishReason:()Ldev/langchain4j/model/output/FinishReason;\n+       127: invokevirtual #46                 // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+       130: invokevirtual #49                 // Method org/assertj/core/api/AbstractComparableAssert.isNull:()V\n        133: aload_0\n        134: aload_2\n-       135: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-       138: ldc           #22                 // String Response { content = content, tokenUsage = TokenUsage { inputTokenCount = 1, outputTokenCount = 2, totalTokenCount = 3 }, finishReason = null }\n-       140: invokevirtual #16                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+       135: invokevirtual #34                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       138: ldc           #75                 // String Response { content = content, tokenUsage = TokenUsage { inputTokenCount = 1, outputTokenCount = 2, totalTokenCount = 3 }, finishReason = null }\n+       140: invokevirtual #54                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n        143: pop\n-       144: new           #17                 // class dev/langchain4j/model/output/TokenUsage\n+       144: new           #58                 // class dev/langchain4j/model/output/TokenUsage\n        147: dup\n        148: iconst_1\n-       149: invokestatic  #18                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       149: invokestatic  #60                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n        152: iconst_2\n-       153: invokestatic  #18                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       153: invokestatic  #60                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n        156: iconst_3\n-       157: invokestatic  #18                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-       160: invokespecial #19                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+       157: invokestatic  #60                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       160: invokespecial #66                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n        163: astore_1\n-       164: new           #2                  // class dev/langchain4j/model/output/Response\n+       164: new           #7                  // class dev/langchain4j/model/output/Response\n        167: dup\n-       168: ldc           #3                  // String content\n+       168: ldc           #9                  // String content\n        170: aload_1\n-       171: getstatic     #23                 // Field dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n-       174: invokespecial #20                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n+       171: getstatic     #77                 // Field dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n+       174: invokespecial #69                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n        177: astore_2\n        178: aload_0\n        179: aload_2\n-       180: invokevirtual #5                  // Method dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n-       183: checkcast     #6                  // class java/lang/String\n-       186: invokevirtual #7                  // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       189: ldc           #3                  // String content\n-       191: invokevirtual #8                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       180: invokevirtual #14                 // Method dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n+       183: checkcast     #17                 // class java/lang/String\n+       186: invokevirtual #19                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       189: ldc           #9                  // String content\n+       191: invokevirtual #25                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n        194: pop\n        195: aload_0\n        196: aload_2\n-       197: invokevirtual #9                  // Method dev/langchain4j/model/output/Response.tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n-       200: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       197: invokevirtual #30                 // Method dev/langchain4j/model/output/Response.tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n+       200: invokevirtual #34                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        203: aload_1\n-       204: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       204: invokevirtual #72                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        207: pop\n        208: aload_0\n        209: aload_2\n-       210: invokevirtual #12                 // Method dev/langchain4j/model/output/Response.finishReason:()Ldev/langchain4j/model/output/FinishReason;\n-       213: invokevirtual #13                 // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-       216: getstatic     #23                 // Field dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n-       219: invokevirtual #24                 // Method org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       210: invokevirtual #42                 // Method dev/langchain4j/model/output/Response.finishReason:()Ldev/langchain4j/model/output/FinishReason;\n+       213: invokevirtual #46                 // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+       216: getstatic     #77                 // Field dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n+       219: invokevirtual #83                 // Method org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        222: pop\n        223: aload_0\n        224: aload_2\n-       225: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-       228: ldc           #25                 // String Response { content = content, tokenUsage = TokenUsage { inputTokenCount = 1, outputTokenCount = 2, totalTokenCount = 3 }, finishReason = LENGTH }\n-       230: invokevirtual #16                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+       225: invokevirtual #34                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       228: ldc           #84                 // String Response { content = content, tokenUsage = TokenUsage { inputTokenCount = 1, outputTokenCount = 2, totalTokenCount = 3 }, finishReason = LENGTH }\n+       230: invokevirtual #54                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n        233: pop\n        234: return\n       LineNumberTable:\n         line 10: 0\n         line 11: 10\n         line 12: 27\n         line 13: 38\n@@ -310,189 +310,189 @@\n             0     235     0  this   Ldev/langchain4j/model/output/ResponseTest;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            10      50     1 response   Ldev/langchain4j/model/output/Response<Ljava/lang/String;>;\n            92      52     2 response   Ldev/langchain4j/model/output/Response<Ljava/lang/String;>;\n           178      56     2 response   Ldev/langchain4j/model/output/Response<Ljava/lang/String;>;\n     RuntimeVisibleAnnotations:\n-      0: #53()\n+      0: #124()\n         org.junit.jupiter.api.Test\n \n   public void test_equals_hashCode();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=6, locals=5, args_size=1\n-         0: ldc           #3                  // String content\n+         0: ldc           #9                  // String content\n          2: astore_1\n-         3: ldc           #26                 // String changed\n+         3: ldc           #86                 // String changed\n          5: astore_2\n-         6: new           #17                 // class dev/langchain4j/model/output/TokenUsage\n+         6: new           #58                 // class dev/langchain4j/model/output/TokenUsage\n          9: dup\n         10: iconst_1\n-        11: invokestatic  #18                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        11: invokestatic  #60                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         14: iconst_2\n-        15: invokestatic  #18                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        15: invokestatic  #60                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         18: iconst_3\n-        19: invokestatic  #18                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-        22: invokespecial #19                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+        19: invokestatic  #60                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        22: invokespecial #66                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n         25: astore_3\n-        26: new           #17                 // class dev/langchain4j/model/output/TokenUsage\n+        26: new           #58                 // class dev/langchain4j/model/output/TokenUsage\n         29: dup\n         30: bipush        10\n-        32: invokestatic  #18                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        32: invokestatic  #60                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         35: iconst_2\n-        36: invokestatic  #18                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        36: invokestatic  #60                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         39: iconst_3\n-        40: invokestatic  #18                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-        43: invokespecial #19                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+        40: invokestatic  #60                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        43: invokespecial #66                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n         46: astore        4\n         48: aload_0\n-        49: new           #2                  // class dev/langchain4j/model/output/Response\n+        49: new           #7                  // class dev/langchain4j/model/output/Response\n         52: dup\n         53: aload_1\n         54: aconst_null\n         55: aconst_null\n-        56: invokespecial #20                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n-        59: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        62: new           #2                  // class dev/langchain4j/model/output/Response\n+        56: invokespecial #69                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n+        59: invokevirtual #34                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        62: new           #7                  // class dev/langchain4j/model/output/Response\n         65: dup\n         66: aload_1\n         67: aconst_null\n         68: aconst_null\n-        69: invokespecial #20                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n-        72: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        75: checkcast     #27                 // class org/assertj/core/api/ObjectAssert\n-        78: new           #2                  // class dev/langchain4j/model/output/Response\n+        69: invokespecial #69                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n+        72: invokevirtual #72                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        75: checkcast     #38                 // class org/assertj/core/api/ObjectAssert\n+        78: new           #7                  // class dev/langchain4j/model/output/Response\n         81: dup\n         82: aload_1\n         83: aconst_null\n         84: aconst_null\n-        85: invokespecial #20                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n-        88: invokevirtual #28                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        91: checkcast     #27                 // class org/assertj/core/api/ObjectAssert\n+        85: invokespecial #69                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n+        88: invokevirtual #88                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        91: checkcast     #38                 // class org/assertj/core/api/ObjectAssert\n         94: aconst_null\n-        95: invokevirtual #29                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        98: checkcast     #27                 // class org/assertj/core/api/ObjectAssert\n-       101: new           #30                 // class java/lang/Object\n+        95: invokevirtual #91                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        98: checkcast     #38                 // class org/assertj/core/api/ObjectAssert\n+       101: new           #2                  // class java/lang/Object\n        104: dup\n        105: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n-       108: invokevirtual #29                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       111: checkcast     #27                 // class org/assertj/core/api/ObjectAssert\n-       114: new           #2                  // class dev/langchain4j/model/output/Response\n+       108: invokevirtual #91                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       111: checkcast     #38                 // class org/assertj/core/api/ObjectAssert\n+       114: new           #7                  // class dev/langchain4j/model/output/Response\n        117: dup\n        118: aload_2\n        119: aconst_null\n        120: aconst_null\n-       121: invokespecial #20                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n-       124: invokevirtual #29                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       127: checkcast     #27                 // class org/assertj/core/api/ObjectAssert\n-       130: new           #2                  // class dev/langchain4j/model/output/Response\n+       121: invokespecial #69                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n+       124: invokevirtual #91                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       127: checkcast     #38                 // class org/assertj/core/api/ObjectAssert\n+       130: new           #7                  // class dev/langchain4j/model/output/Response\n        133: dup\n        134: aload_2\n        135: aconst_null\n        136: aconst_null\n-       137: invokespecial #20                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n-       140: invokevirtual #31                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       143: checkcast     #27                 // class org/assertj/core/api/ObjectAssert\n-       146: new           #2                  // class dev/langchain4j/model/output/Response\n+       137: invokespecial #69                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n+       140: invokevirtual #94                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       143: checkcast     #38                 // class org/assertj/core/api/ObjectAssert\n+       146: new           #7                  // class dev/langchain4j/model/output/Response\n        149: dup\n        150: aload_1\n        151: aload_3\n        152: aconst_null\n-       153: invokespecial #20                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n-       156: invokevirtual #29                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       159: checkcast     #27                 // class org/assertj/core/api/ObjectAssert\n-       162: new           #2                  // class dev/langchain4j/model/output/Response\n+       153: invokespecial #69                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n+       156: invokevirtual #91                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       159: checkcast     #38                 // class org/assertj/core/api/ObjectAssert\n+       162: new           #7                  // class dev/langchain4j/model/output/Response\n        165: dup\n        166: aload_1\n        167: aload_3\n        168: aconst_null\n-       169: invokespecial #20                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n-       172: invokevirtual #31                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       175: checkcast     #27                 // class org/assertj/core/api/ObjectAssert\n-       178: new           #2                  // class dev/langchain4j/model/output/Response\n+       169: invokespecial #69                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n+       172: invokevirtual #94                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       175: checkcast     #38                 // class org/assertj/core/api/ObjectAssert\n+       178: new           #7                  // class dev/langchain4j/model/output/Response\n        181: dup\n        182: aload_1\n        183: aconst_null\n-       184: getstatic     #23                 // Field dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n-       187: invokespecial #20                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n-       190: invokevirtual #29                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       193: checkcast     #27                 // class org/assertj/core/api/ObjectAssert\n-       196: new           #2                  // class dev/langchain4j/model/output/Response\n+       184: getstatic     #77                 // Field dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n+       187: invokespecial #69                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n+       190: invokevirtual #91                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       193: checkcast     #38                 // class org/assertj/core/api/ObjectAssert\n+       196: new           #7                  // class dev/langchain4j/model/output/Response\n        199: dup\n        200: aload_1\n        201: aconst_null\n-       202: getstatic     #23                 // Field dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n-       205: invokespecial #20                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n-       208: invokevirtual #31                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       211: checkcast     #27                 // class org/assertj/core/api/ObjectAssert\n-       214: new           #2                  // class dev/langchain4j/model/output/Response\n+       202: getstatic     #77                 // Field dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n+       205: invokespecial #69                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n+       208: invokevirtual #94                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       211: checkcast     #38                 // class org/assertj/core/api/ObjectAssert\n+       214: new           #7                  // class dev/langchain4j/model/output/Response\n        217: dup\n        218: aload_1\n        219: aload_3\n-       220: getstatic     #23                 // Field dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n-       223: invokespecial #20                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n-       226: invokevirtual #29                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       229: checkcast     #27                 // class org/assertj/core/api/ObjectAssert\n-       232: new           #2                  // class dev/langchain4j/model/output/Response\n+       220: getstatic     #77                 // Field dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n+       223: invokespecial #69                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n+       226: invokevirtual #91                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       229: checkcast     #38                 // class org/assertj/core/api/ObjectAssert\n+       232: new           #7                  // class dev/langchain4j/model/output/Response\n        235: dup\n        236: aload_1\n        237: aload_3\n-       238: getstatic     #23                 // Field dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n-       241: invokespecial #20                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n-       244: invokevirtual #31                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       238: getstatic     #77                 // Field dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n+       241: invokespecial #69                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n+       244: invokevirtual #94                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        247: pop\n        248: aload_0\n-       249: new           #2                  // class dev/langchain4j/model/output/Response\n+       249: new           #7                  // class dev/langchain4j/model/output/Response\n        252: dup\n        253: aload_1\n        254: aload_3\n-       255: getstatic     #23                 // Field dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n-       258: invokespecial #20                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n-       261: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-       264: new           #2                  // class dev/langchain4j/model/output/Response\n+       255: getstatic     #77                 // Field dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n+       258: invokespecial #69                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n+       261: invokevirtual #34                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       264: new           #7                  // class dev/langchain4j/model/output/Response\n        267: dup\n        268: aload_1\n        269: aload_3\n-       270: getstatic     #23                 // Field dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n-       273: invokespecial #20                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n-       276: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       279: checkcast     #27                 // class org/assertj/core/api/ObjectAssert\n-       282: new           #2                  // class dev/langchain4j/model/output/Response\n+       270: getstatic     #77                 // Field dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n+       273: invokespecial #69                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n+       276: invokevirtual #72                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       279: checkcast     #38                 // class org/assertj/core/api/ObjectAssert\n+       282: new           #7                  // class dev/langchain4j/model/output/Response\n        285: dup\n        286: aload_1\n        287: aload_3\n-       288: getstatic     #23                 // Field dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n-       291: invokespecial #20                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n-       294: invokevirtual #28                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       297: checkcast     #27                 // class org/assertj/core/api/ObjectAssert\n-       300: new           #2                  // class dev/langchain4j/model/output/Response\n+       288: getstatic     #77                 // Field dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n+       291: invokespecial #69                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n+       294: invokevirtual #88                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       297: checkcast     #38                 // class org/assertj/core/api/ObjectAssert\n+       300: new           #7                  // class dev/langchain4j/model/output/Response\n        303: dup\n        304: aload_2\n        305: aload_3\n-       306: getstatic     #23                 // Field dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n-       309: invokespecial #20                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n-       312: invokevirtual #29                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       315: checkcast     #27                 // class org/assertj/core/api/ObjectAssert\n-       318: new           #2                  // class dev/langchain4j/model/output/Response\n+       306: getstatic     #77                 // Field dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n+       309: invokespecial #69                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n+       312: invokevirtual #91                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       315: checkcast     #38                 // class org/assertj/core/api/ObjectAssert\n+       318: new           #7                  // class dev/langchain4j/model/output/Response\n        321: dup\n        322: aload_1\n        323: aload         4\n-       325: getstatic     #23                 // Field dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n-       328: invokespecial #20                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n-       331: invokevirtual #29                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       334: checkcast     #27                 // class org/assertj/core/api/ObjectAssert\n-       337: new           #2                  // class dev/langchain4j/model/output/Response\n+       325: getstatic     #77                 // Field dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n+       328: invokespecial #69                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n+       331: invokevirtual #91                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       334: checkcast     #38                 // class org/assertj/core/api/ObjectAssert\n+       337: new           #7                  // class dev/langchain4j/model/output/Response\n        340: dup\n        341: aload_1\n        342: aload_3\n-       343: getstatic     #32                 // Field dev/langchain4j/model/output/FinishReason.STOP:Ldev/langchain4j/model/output/FinishReason;\n-       346: invokespecial #20                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n-       349: invokevirtual #29                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       343: getstatic     #97                 // Field dev/langchain4j/model/output/FinishReason.STOP:Ldev/langchain4j/model/output/FinishReason;\n+       346: invokespecial #69                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n+       349: invokevirtual #91                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        352: pop\n        353: return\n       LineNumberTable:\n         line 46: 0\n         line 47: 3\n         line 48: 6\n         line 49: 26\n@@ -520,74 +520,74 @@\n         Start  Length  Slot  Name   Signature\n             0     354     0  this   Ldev/langchain4j/model/output/ResponseTest;\n             3     351     1 content1   Ljava/lang/String;\n             6     348     2 content2   Ljava/lang/String;\n            26     328     3 tokenUsage1   Ldev/langchain4j/model/output/TokenUsage;\n            48     306     4 tokenUsage2   Ldev/langchain4j/model/output/TokenUsage;\n     RuntimeVisibleAnnotations:\n-      0: #53()\n+      0: #124()\n         org.junit.jupiter.api.Test\n \n   public void test_builders();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=6, locals=2, args_size=1\n          0: aload_0\n-         1: new           #2                  // class dev/langchain4j/model/output/Response\n+         1: new           #7                  // class dev/langchain4j/model/output/Response\n          4: dup\n-         5: ldc           #3                  // String content\n-         7: invokespecial #4                  // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n-        10: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        13: ldc           #3                  // String content\n-        15: invokestatic  #33                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-        18: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+         5: ldc           #9                  // String content\n+         7: invokespecial #11                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n+        10: invokevirtual #34                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        13: ldc           #9                  // String content\n+        15: invokestatic  #100                // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+        18: invokevirtual #72                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         21: pop\n-        22: new           #17                 // class dev/langchain4j/model/output/TokenUsage\n+        22: new           #58                 // class dev/langchain4j/model/output/TokenUsage\n         25: dup\n         26: iconst_1\n-        27: invokestatic  #18                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        27: invokestatic  #60                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         30: iconst_2\n-        31: invokestatic  #18                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        31: invokestatic  #60                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         34: iconst_3\n-        35: invokestatic  #18                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-        38: invokespecial #19                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+        35: invokestatic  #60                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        38: invokespecial #66                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n         41: astore_1\n         42: aload_0\n-        43: new           #2                  // class dev/langchain4j/model/output/Response\n+        43: new           #7                  // class dev/langchain4j/model/output/Response\n         46: dup\n-        47: ldc           #3                  // String content\n+        47: ldc           #9                  // String content\n         49: aload_1\n         50: aconst_null\n-        51: invokespecial #20                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n-        54: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        57: ldc           #3                  // String content\n+        51: invokespecial #69                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n+        54: invokevirtual #34                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        57: ldc           #9                  // String content\n         59: aload_1\n-        60: invokestatic  #34                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;)Ldev/langchain4j/model/output/Response;\n-        63: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        66: checkcast     #27                 // class org/assertj/core/api/ObjectAssert\n-        69: ldc           #3                  // String content\n+        60: invokestatic  #104                // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;)Ldev/langchain4j/model/output/Response;\n+        63: invokevirtual #72                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        66: checkcast     #38                 // class org/assertj/core/api/ObjectAssert\n+        69: ldc           #9                  // String content\n         71: aload_1\n         72: aconst_null\n-        73: invokestatic  #35                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n-        76: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        73: invokestatic  #107                // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n+        76: invokevirtual #72                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         79: pop\n         80: aload_0\n-        81: new           #2                  // class dev/langchain4j/model/output/Response\n+        81: new           #7                  // class dev/langchain4j/model/output/Response\n         84: dup\n-        85: ldc           #3                  // String content\n+        85: ldc           #9                  // String content\n         87: aload_1\n-        88: getstatic     #23                 // Field dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n-        91: invokespecial #20                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n-        94: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        97: ldc           #3                  // String content\n+        88: getstatic     #77                 // Field dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n+        91: invokespecial #69                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n+        94: invokevirtual #34                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        97: ldc           #9                  // String content\n         99: aload_1\n-       100: getstatic     #23                 // Field dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n-       103: invokestatic  #35                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n-       106: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       100: getstatic     #77                 // Field dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n+       103: invokestatic  #107                // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n+       106: invokevirtual #72                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        109: pop\n        110: return\n       LineNumberTable:\n         line 75: 0\n         line 76: 15\n         line 78: 22\n         line 80: 42\n@@ -597,11 +597,11 @@\n         line 85: 103\n         line 87: 110\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     111     0  this   Ldev/langchain4j/model/output/ResponseTest;\n            42      69     1 tokenUsage   Ldev/langchain4j/model/output/TokenUsage;\n     RuntimeVisibleAnnotations:\n-      0: #53()\n+      0: #124()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"ResponseTest.java\"\n"}]}, {"source1": "dev/langchain4j/model/output/TokenUsageTest.class", "source2": "dev/langchain4j/model/output/TokenUsageTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,115 +1,115 @@\n-  SHA-256 checksum 06f96a9048e600ac04f8425a4c636b98eb5d894d412e2d39b3b8fff4b35ff2aa\n+  SHA-256 checksum e679d6aad891b20fc0b66f567c5a71db75963227b561f2cf924d00d4397d9b58\n   Compiled from \"TokenUsageTest.java\"\n class dev.langchain4j.model.output.TokenUsageTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #25                         // dev/langchain4j/model/output/TokenUsageTest\n-  super_class: #18                        // java/lang/Object\n+  this_class: #11                         // dev/langchain4j/model/output/TokenUsageTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 6, attributes: 1\n Constant pool:\n-   #1 = Methodref          #18.#47        // java/lang/Object.\"<init>\":()V\n-   #2 = Class              #48            // dev/langchain4j/model/output/TokenUsage\n-   #3 = Methodref          #2.#47         // dev/langchain4j/model/output/TokenUsage.\"<init>\":()V\n-   #4 = Methodref          #25.#49        // dev/langchain4j/model/output/TokenUsageTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #5 = Methodref          #2.#50         // dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-   #6 = Methodref          #16.#51        // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #7 = Methodref          #52.#53        // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-   #8 = Methodref          #2.#54         // dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;)V\n-   #9 = Methodref          #2.#55         // dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;)V\n-  #10 = Methodref          #2.#56         // dev/langchain4j/model/output/TokenUsage.inputTokenCount:()Ljava/lang/Integer;\n-  #11 = Methodref          #25.#57        // dev/langchain4j/model/output/TokenUsageTest.assertThat:(Ljava/lang/Integer;)Lorg/assertj/core/api/AbstractIntegerAssert;\n-  #12 = Methodref          #58.#59        // org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n-  #13 = Methodref          #2.#60         // dev/langchain4j/model/output/TokenUsage.outputTokenCount:()Ljava/lang/Integer;\n-  #14 = Methodref          #2.#61         // dev/langchain4j/model/output/TokenUsage.totalTokenCount:()Ljava/lang/Integer;\n-  #15 = Methodref          #58.#62        // org/assertj/core/api/AbstractIntegerAssert.isNull:()V\n-  #16 = Class              #63            // org/assertj/core/api/ObjectAssert\n-  #17 = Methodref          #16.#64        // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #18 = Class              #65            // java/lang/Object\n-  #19 = Methodref          #16.#66        // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #20 = Methodref          #16.#67        // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #21 = String             #68            // TokenUsage { inputTokenCount = 1, outputTokenCount = 2, totalTokenCount = 3 }\n-  #22 = Methodref          #16.#69        // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-  #23 = String             #70            // TokenUsage { inputTokenCount = null, outputTokenCount = null, totalTokenCount = null }\n-  #24 = Methodref          #2.#71         // dev/langchain4j/model/output/TokenUsage.add:(Ldev/langchain4j/model/output/TokenUsage;)Ldev/langchain4j/model/output/TokenUsage;\n-  #25 = Class              #72            // dev/langchain4j/model/output/TokenUsageTest\n-  #26 = Class              #73            // org/assertj/core/api/WithAssertions\n-  #27 = Utf8               <init>\n-  #28 = Utf8               ()V\n-  #29 = Utf8               Code\n-  #30 = Utf8               LineNumberTable\n-  #31 = Utf8               LocalVariableTable\n-  #32 = Utf8               this\n-  #33 = Utf8               Ldev/langchain4j/model/output/TokenUsageTest;\n-  #34 = Utf8               test_constructors\n-  #35 = Utf8               RuntimeVisibleAnnotations\n-  #36 = Utf8               Lorg/junit/jupiter/api/Test;\n-  #37 = Utf8               test_accessors\n-  #38 = Utf8               tu\n-  #39 = Utf8               Ldev/langchain4j/model/output/TokenUsage;\n-  #40 = Utf8               test_equals_hash\n-  #41 = Utf8               tu1\n-  #42 = Utf8               tu2\n-  #43 = Utf8               test_toString\n-  #44 = Utf8               test_sum\n-  #45 = Utf8               SourceFile\n-  #46 = Utf8               TokenUsageTest.java\n-  #47 = NameAndType        #27:#28        // \"<init>\":()V\n-  #48 = Utf8               dev/langchain4j/model/output/TokenUsage\n-  #49 = NameAndType        #74:#75        // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #50 = NameAndType        #27:#76        // \"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-  #51 = NameAndType        #77:#78        // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #52 = Class              #79            // java/lang/Integer\n-  #53 = NameAndType        #80:#81        // valueOf:(I)Ljava/lang/Integer;\n-  #54 = NameAndType        #27:#82        // \"<init>\":(Ljava/lang/Integer;)V\n-  #55 = NameAndType        #27:#83        // \"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;)V\n-  #56 = NameAndType        #84:#85        // inputTokenCount:()Ljava/lang/Integer;\n-  #57 = NameAndType        #74:#86        // assertThat:(Ljava/lang/Integer;)Lorg/assertj/core/api/AbstractIntegerAssert;\n-  #58 = Class              #87            // org/assertj/core/api/AbstractIntegerAssert\n-  #59 = NameAndType        #77:#88        // isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n-  #60 = NameAndType        #89:#85        // outputTokenCount:()Ljava/lang/Integer;\n-  #61 = NameAndType        #90:#85        // totalTokenCount:()Ljava/lang/Integer;\n-  #62 = NameAndType        #91:#28        // isNull:()V\n-  #63 = Utf8               org/assertj/core/api/ObjectAssert\n-  #64 = NameAndType        #92:#78        // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #65 = Utf8               java/lang/Object\n-  #66 = NameAndType        #93:#78        // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #67 = NameAndType        #94:#78        // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Class              #8             // dev/langchain4j/model/output/TokenUsage\n+   #8 = Utf8               dev/langchain4j/model/output/TokenUsage\n+   #9 = Methodref          #7.#3          // dev/langchain4j/model/output/TokenUsage.\"<init>\":()V\n+  #10 = Methodref          #11.#12        // dev/langchain4j/model/output/TokenUsageTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+  #11 = Class              #13            // dev/langchain4j/model/output/TokenUsageTest\n+  #12 = NameAndType        #14:#15        // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+  #13 = Utf8               dev/langchain4j/model/output/TokenUsageTest\n+  #14 = Utf8               assertThat\n+  #15 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+  #16 = Methodref          #7.#17         // dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+  #17 = NameAndType        #5:#18         // \"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+  #18 = Utf8               (Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+  #19 = Methodref          #20.#21        // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #20 = Class              #22            // org/assertj/core/api/ObjectAssert\n+  #21 = NameAndType        #23:#24        // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #22 = Utf8               org/assertj/core/api/ObjectAssert\n+  #23 = Utf8               isEqualTo\n+  #24 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #25 = Methodref          #26.#27        // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+  #26 = Class              #28            // java/lang/Integer\n+  #27 = NameAndType        #29:#30        // valueOf:(I)Ljava/lang/Integer;\n+  #28 = Utf8               java/lang/Integer\n+  #29 = Utf8               valueOf\n+  #30 = Utf8               (I)Ljava/lang/Integer;\n+  #31 = Methodref          #7.#32         // dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;)V\n+  #32 = NameAndType        #5:#33         // \"<init>\":(Ljava/lang/Integer;)V\n+  #33 = Utf8               (Ljava/lang/Integer;)V\n+  #34 = Methodref          #7.#35         // dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;)V\n+  #35 = NameAndType        #5:#36         // \"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;)V\n+  #36 = Utf8               (Ljava/lang/Integer;Ljava/lang/Integer;)V\n+  #37 = Methodref          #7.#38         // dev/langchain4j/model/output/TokenUsage.inputTokenCount:()Ljava/lang/Integer;\n+  #38 = NameAndType        #39:#40        // inputTokenCount:()Ljava/lang/Integer;\n+  #39 = Utf8               inputTokenCount\n+  #40 = Utf8               ()Ljava/lang/Integer;\n+  #41 = Methodref          #11.#42        // dev/langchain4j/model/output/TokenUsageTest.assertThat:(Ljava/lang/Integer;)Lorg/assertj/core/api/AbstractIntegerAssert;\n+  #42 = NameAndType        #14:#43        // assertThat:(Ljava/lang/Integer;)Lorg/assertj/core/api/AbstractIntegerAssert;\n+  #43 = Utf8               (Ljava/lang/Integer;)Lorg/assertj/core/api/AbstractIntegerAssert;\n+  #44 = Methodref          #45.#46        // org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+  #45 = Class              #47            // org/assertj/core/api/AbstractIntegerAssert\n+  #46 = NameAndType        #23:#48        // isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+  #47 = Utf8               org/assertj/core/api/AbstractIntegerAssert\n+  #48 = Utf8               (I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+  #49 = Methodref          #7.#50         // dev/langchain4j/model/output/TokenUsage.outputTokenCount:()Ljava/lang/Integer;\n+  #50 = NameAndType        #51:#40        // outputTokenCount:()Ljava/lang/Integer;\n+  #51 = Utf8               outputTokenCount\n+  #52 = Methodref          #7.#53         // dev/langchain4j/model/output/TokenUsage.totalTokenCount:()Ljava/lang/Integer;\n+  #53 = NameAndType        #54:#40        // totalTokenCount:()Ljava/lang/Integer;\n+  #54 = Utf8               totalTokenCount\n+  #55 = Methodref          #45.#56        // org/assertj/core/api/AbstractIntegerAssert.isNull:()V\n+  #56 = NameAndType        #57:#6         // isNull:()V\n+  #57 = Utf8               isNull\n+  #58 = Methodref          #20.#59        // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #59 = NameAndType        #60:#24        // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #60 = Utf8               isNotEqualTo\n+  #61 = Methodref          #20.#62        // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #62 = NameAndType        #63:#24        // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #63 = Utf8               hasSameHashCodeAs\n+  #64 = Methodref          #20.#65        // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #65 = NameAndType        #66:#24        // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #66 = Utf8               doesNotHaveSameHashCodeAs\n+  #67 = String             #68            // TokenUsage { inputTokenCount = 1, outputTokenCount = 2, totalTokenCount = 3 }\n   #68 = Utf8               TokenUsage { inputTokenCount = 1, outputTokenCount = 2, totalTokenCount = 3 }\n-  #69 = NameAndType        #95:#96        // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-  #70 = Utf8               TokenUsage { inputTokenCount = null, outputTokenCount = null, totalTokenCount = null }\n-  #71 = NameAndType        #97:#98        // add:(Ldev/langchain4j/model/output/TokenUsage;)Ldev/langchain4j/model/output/TokenUsage;\n-  #72 = Utf8               dev/langchain4j/model/output/TokenUsageTest\n-  #73 = Utf8               org/assertj/core/api/WithAssertions\n-  #74 = Utf8               assertThat\n-  #75 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #76 = Utf8               (Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-  #77 = Utf8               isEqualTo\n-  #78 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #79 = Utf8               java/lang/Integer\n-  #80 = Utf8               valueOf\n-  #81 = Utf8               (I)Ljava/lang/Integer;\n-  #82 = Utf8               (Ljava/lang/Integer;)V\n-  #83 = Utf8               (Ljava/lang/Integer;Ljava/lang/Integer;)V\n-  #84 = Utf8               inputTokenCount\n-  #85 = Utf8               ()Ljava/lang/Integer;\n-  #86 = Utf8               (Ljava/lang/Integer;)Lorg/assertj/core/api/AbstractIntegerAssert;\n-  #87 = Utf8               org/assertj/core/api/AbstractIntegerAssert\n-  #88 = Utf8               (I)Lorg/assertj/core/api/AbstractIntegerAssert;\n-  #89 = Utf8               outputTokenCount\n-  #90 = Utf8               totalTokenCount\n-  #91 = Utf8               isNull\n-  #92 = Utf8               isNotEqualTo\n-  #93 = Utf8               hasSameHashCodeAs\n-  #94 = Utf8               doesNotHaveSameHashCodeAs\n-  #95 = Utf8               hasToString\n-  #96 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-  #97 = Utf8               add\n-  #98 = Utf8               (Ldev/langchain4j/model/output/TokenUsage;)Ldev/langchain4j/model/output/TokenUsage;\n+  #69 = Methodref          #20.#70        // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+  #70 = NameAndType        #71:#72        // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+  #71 = Utf8               hasToString\n+  #72 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+  #73 = String             #74            // TokenUsage { inputTokenCount = null, outputTokenCount = null, totalTokenCount = null }\n+  #74 = Utf8               TokenUsage { inputTokenCount = null, outputTokenCount = null, totalTokenCount = null }\n+  #75 = Methodref          #7.#76         // dev/langchain4j/model/output/TokenUsage.add:(Ldev/langchain4j/model/output/TokenUsage;)Ldev/langchain4j/model/output/TokenUsage;\n+  #76 = NameAndType        #77:#78        // add:(Ldev/langchain4j/model/output/TokenUsage;)Ldev/langchain4j/model/output/TokenUsage;\n+  #77 = Utf8               add\n+  #78 = Utf8               (Ldev/langchain4j/model/output/TokenUsage;)Ldev/langchain4j/model/output/TokenUsage;\n+  #79 = Class              #80            // org/assertj/core/api/WithAssertions\n+  #80 = Utf8               org/assertj/core/api/WithAssertions\n+  #81 = Utf8               Code\n+  #82 = Utf8               LineNumberTable\n+  #83 = Utf8               LocalVariableTable\n+  #84 = Utf8               this\n+  #85 = Utf8               Ldev/langchain4j/model/output/TokenUsageTest;\n+  #86 = Utf8               test_constructors\n+  #87 = Utf8               RuntimeVisibleAnnotations\n+  #88 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #89 = Utf8               test_accessors\n+  #90 = Utf8               tu\n+  #91 = Utf8               Ldev/langchain4j/model/output/TokenUsage;\n+  #92 = Utf8               test_equals_hash\n+  #93 = Utf8               tu1\n+  #94 = Utf8               tu2\n+  #95 = Utf8               test_toString\n+  #96 = Utf8               test_sum\n+  #97 = Utf8               SourceFile\n+  #98 = Utf8               TokenUsageTest.java\n {\n   dev.langchain4j.model.output.TokenUsageTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -123,84 +123,84 @@\n \n   public void test_constructors();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=6, locals=1, args_size=1\n          0: aload_0\n-         1: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+         1: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n          4: dup\n-         5: invokespecial #3                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":()V\n-         8: invokevirtual #4                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        11: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+         5: invokespecial #9                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":()V\n+         8: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        11: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n         14: dup\n         15: aconst_null\n         16: aconst_null\n         17: aconst_null\n-        18: invokespecial #5                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-        21: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        18: invokespecial #16                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+        21: invokevirtual #19                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         24: pop\n         25: aload_0\n-        26: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+        26: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n         29: dup\n         30: iconst_1\n-        31: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-        34: invokespecial #8                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;)V\n-        37: invokevirtual #4                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        40: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+        31: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        34: invokespecial #31                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;)V\n+        37: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        40: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n         43: dup\n         44: iconst_1\n-        45: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        45: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         48: aconst_null\n         49: iconst_1\n-        50: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-        53: invokespecial #5                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-        56: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        50: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        53: invokespecial #16                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+        56: invokevirtual #19                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         59: pop\n         60: aload_0\n-        61: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+        61: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n         64: dup\n         65: iconst_1\n-        66: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        66: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         69: iconst_2\n-        70: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-        73: invokespecial #9                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;)V\n-        76: invokevirtual #4                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        79: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+        70: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        73: invokespecial #34                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;)V\n+        76: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        79: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n         82: dup\n         83: iconst_1\n-        84: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        84: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         87: iconst_2\n-        88: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        88: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         91: iconst_3\n-        92: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-        95: invokespecial #5                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-        98: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        92: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        95: invokespecial #16                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+        98: invokevirtual #19                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        101: pop\n        102: aload_0\n-       103: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+       103: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n        106: dup\n        107: iconst_1\n-       108: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       108: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n        111: iconst_2\n-       112: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       112: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n        115: iconst_3\n-       116: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-       119: invokespecial #5                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-       122: invokevirtual #4                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-       125: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+       116: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       119: invokespecial #16                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+       122: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       125: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n        128: dup\n        129: iconst_1\n-       130: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       130: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n        133: iconst_2\n-       134: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       134: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n        137: iconst_3\n-       138: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-       141: invokespecial #5                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-       144: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       138: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       141: invokespecial #16                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+       144: invokevirtual #19                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        147: pop\n        148: return\n       LineNumberTable:\n         line 9: 0\n         line 10: 21\n         line 12: 25\n         line 13: 45\n@@ -209,75 +209,75 @@\n         line 18: 102\n         line 19: 130\n         line 20: 148\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     149     0  this   Ldev/langchain4j/model/output/TokenUsageTest;\n     RuntimeVisibleAnnotations:\n-      0: #36()\n+      0: #88()\n         org.junit.jupiter.api.Test\n \n   public void test_accessors();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=5, locals=2, args_size=1\n-         0: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+         0: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n          3: dup\n          4: iconst_1\n-         5: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+         5: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n          8: iconst_2\n-         9: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+         9: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         12: iconst_3\n-        13: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-        16: invokespecial #5                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+        13: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        16: invokespecial #16                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n         19: astore_1\n         20: aload_0\n         21: aload_1\n-        22: invokevirtual #10                 // Method dev/langchain4j/model/output/TokenUsage.inputTokenCount:()Ljava/lang/Integer;\n-        25: invokevirtual #11                 // Method assertThat:(Ljava/lang/Integer;)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        22: invokevirtual #37                 // Method dev/langchain4j/model/output/TokenUsage.inputTokenCount:()Ljava/lang/Integer;\n+        25: invokevirtual #41                 // Method assertThat:(Ljava/lang/Integer;)Lorg/assertj/core/api/AbstractIntegerAssert;\n         28: iconst_1\n-        29: invokevirtual #12                 // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        29: invokevirtual #44                 // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         32: pop\n         33: aload_0\n         34: aload_1\n-        35: invokevirtual #13                 // Method dev/langchain4j/model/output/TokenUsage.outputTokenCount:()Ljava/lang/Integer;\n-        38: invokevirtual #11                 // Method assertThat:(Ljava/lang/Integer;)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        35: invokevirtual #49                 // Method dev/langchain4j/model/output/TokenUsage.outputTokenCount:()Ljava/lang/Integer;\n+        38: invokevirtual #41                 // Method assertThat:(Ljava/lang/Integer;)Lorg/assertj/core/api/AbstractIntegerAssert;\n         41: iconst_2\n-        42: invokevirtual #12                 // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        42: invokevirtual #44                 // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         45: pop\n         46: aload_0\n         47: aload_1\n-        48: invokevirtual #14                 // Method dev/langchain4j/model/output/TokenUsage.totalTokenCount:()Ljava/lang/Integer;\n-        51: invokevirtual #11                 // Method assertThat:(Ljava/lang/Integer;)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        48: invokevirtual #52                 // Method dev/langchain4j/model/output/TokenUsage.totalTokenCount:()Ljava/lang/Integer;\n+        51: invokevirtual #41                 // Method assertThat:(Ljava/lang/Integer;)Lorg/assertj/core/api/AbstractIntegerAssert;\n         54: iconst_3\n-        55: invokevirtual #12                 // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        55: invokevirtual #44                 // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         58: pop\n-        59: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+        59: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n         62: dup\n         63: aconst_null\n         64: aconst_null\n         65: aconst_null\n-        66: invokespecial #5                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+        66: invokespecial #16                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n         69: astore_1\n         70: aload_0\n         71: aload_1\n-        72: invokevirtual #10                 // Method dev/langchain4j/model/output/TokenUsage.inputTokenCount:()Ljava/lang/Integer;\n-        75: invokevirtual #11                 // Method assertThat:(Ljava/lang/Integer;)Lorg/assertj/core/api/AbstractIntegerAssert;\n-        78: invokevirtual #15                 // Method org/assertj/core/api/AbstractIntegerAssert.isNull:()V\n+        72: invokevirtual #37                 // Method dev/langchain4j/model/output/TokenUsage.inputTokenCount:()Ljava/lang/Integer;\n+        75: invokevirtual #41                 // Method assertThat:(Ljava/lang/Integer;)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        78: invokevirtual #55                 // Method org/assertj/core/api/AbstractIntegerAssert.isNull:()V\n         81: aload_0\n         82: aload_1\n-        83: invokevirtual #13                 // Method dev/langchain4j/model/output/TokenUsage.outputTokenCount:()Ljava/lang/Integer;\n-        86: invokevirtual #11                 // Method assertThat:(Ljava/lang/Integer;)Lorg/assertj/core/api/AbstractIntegerAssert;\n-        89: invokevirtual #15                 // Method org/assertj/core/api/AbstractIntegerAssert.isNull:()V\n+        83: invokevirtual #49                 // Method dev/langchain4j/model/output/TokenUsage.outputTokenCount:()Ljava/lang/Integer;\n+        86: invokevirtual #41                 // Method assertThat:(Ljava/lang/Integer;)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        89: invokevirtual #55                 // Method org/assertj/core/api/AbstractIntegerAssert.isNull:()V\n         92: aload_0\n         93: aload_1\n-        94: invokevirtual #14                 // Method dev/langchain4j/model/output/TokenUsage.totalTokenCount:()Ljava/lang/Integer;\n-        97: invokevirtual #11                 // Method assertThat:(Ljava/lang/Integer;)Lorg/assertj/core/api/AbstractIntegerAssert;\n-       100: invokevirtual #15                 // Method org/assertj/core/api/AbstractIntegerAssert.isNull:()V\n+        94: invokevirtual #52                 // Method dev/langchain4j/model/output/TokenUsage.totalTokenCount:()Ljava/lang/Integer;\n+        97: invokevirtual #41                 // Method assertThat:(Ljava/lang/Integer;)Lorg/assertj/core/api/AbstractIntegerAssert;\n+       100: invokevirtual #55                 // Method org/assertj/core/api/AbstractIntegerAssert.isNull:()V\n        103: return\n       LineNumberTable:\n         line 25: 0\n         line 26: 20\n         line 27: 33\n         line 28: 46\n         line 31: 59\n@@ -287,109 +287,109 @@\n         line 36: 103\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n            20      39     1    tu   Ldev/langchain4j/model/output/TokenUsage;\n            70      33     1    tu   Ldev/langchain4j/model/output/TokenUsage;\n             0     104     0  this   Ldev/langchain4j/model/output/TokenUsageTest;\n     RuntimeVisibleAnnotations:\n-      0: #36()\n+      0: #88()\n         org.junit.jupiter.api.Test\n \n   public void test_equals_hash();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=6, locals=3, args_size=1\n-         0: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+         0: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n          3: dup\n          4: iconst_1\n-         5: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+         5: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n          8: iconst_2\n-         9: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+         9: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         12: iconst_3\n-        13: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-        16: invokespecial #5                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+        13: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        16: invokespecial #16                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n         19: astore_1\n-        20: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+        20: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n         23: dup\n         24: iconst_1\n-        25: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        25: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         28: iconst_2\n-        29: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        29: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         32: iconst_3\n-        33: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-        36: invokespecial #5                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+        33: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        36: invokespecial #16                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n         39: astore_2\n         40: aload_0\n         41: aload_1\n-        42: invokevirtual #4                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        42: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         45: aload_1\n-        46: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        49: checkcast     #16                 // class org/assertj/core/api/ObjectAssert\n+        46: invokevirtual #19                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        49: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n         52: aconst_null\n-        53: invokevirtual #17                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        56: checkcast     #16                 // class org/assertj/core/api/ObjectAssert\n-        59: new           #18                 // class java/lang/Object\n+        53: invokevirtual #58                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        56: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n+        59: new           #2                  // class java/lang/Object\n         62: dup\n         63: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n-        66: invokevirtual #17                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        69: checkcast     #16                 // class org/assertj/core/api/ObjectAssert\n+        66: invokevirtual #58                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        69: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n         72: aload_2\n-        73: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        76: checkcast     #16                 // class org/assertj/core/api/ObjectAssert\n+        73: invokevirtual #19                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        76: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n         79: aload_2\n-        80: invokevirtual #19                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        80: invokevirtual #61                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         83: pop\n         84: aload_0\n-        85: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+        85: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n         88: dup\n         89: aconst_null\n         90: iconst_2\n-        91: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        91: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         94: iconst_3\n-        95: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-        98: invokespecial #5                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-       101: invokevirtual #4                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        95: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        98: invokespecial #16                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+       101: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        104: aload_1\n-       105: invokevirtual #17                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       108: checkcast     #16                 // class org/assertj/core/api/ObjectAssert\n+       105: invokevirtual #58                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       108: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n        111: aload_1\n-       112: invokevirtual #20                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       112: invokevirtual #64                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        115: pop\n        116: aload_0\n-       117: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+       117: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n        120: dup\n        121: iconst_1\n-       122: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       122: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n        125: aconst_null\n        126: iconst_3\n-       127: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-       130: invokespecial #5                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-       133: invokevirtual #4                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       127: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       130: invokespecial #16                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+       133: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        136: aload_1\n-       137: invokevirtual #17                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       140: checkcast     #16                 // class org/assertj/core/api/ObjectAssert\n+       137: invokevirtual #58                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       140: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n        143: aload_1\n-       144: invokevirtual #20                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       144: invokevirtual #64                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        147: pop\n        148: aload_0\n-       149: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+       149: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n        152: dup\n        153: iconst_1\n-       154: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       154: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n        157: iconst_2\n-       158: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       158: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n        161: aconst_null\n-       162: invokespecial #5                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-       165: invokevirtual #4                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       162: invokespecial #16                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+       165: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        168: aload_1\n-       169: invokevirtual #17                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       172: checkcast     #16                 // class org/assertj/core/api/ObjectAssert\n+       169: invokevirtual #58                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       172: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n        175: aload_1\n-       176: invokevirtual #20                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       176: invokevirtual #64                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        179: pop\n        180: return\n       LineNumberTable:\n         line 40: 0\n         line 41: 20\n         line 43: 40\n         line 44: 46\n@@ -409,178 +409,178 @@\n         line 61: 180\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     181     0  this   Ldev/langchain4j/model/output/TokenUsageTest;\n            20     161     1   tu1   Ldev/langchain4j/model/output/TokenUsage;\n            40     141     2   tu2   Ldev/langchain4j/model/output/TokenUsage;\n     RuntimeVisibleAnnotations:\n-      0: #36()\n+      0: #88()\n         org.junit.jupiter.api.Test\n \n   public void test_toString();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=6, locals=1, args_size=1\n          0: aload_0\n-         1: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+         1: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n          4: dup\n          5: iconst_1\n-         6: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+         6: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n          9: iconst_2\n-        10: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        10: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         13: iconst_3\n-        14: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-        17: invokespecial #5                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-        20: invokevirtual #4                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        23: ldc           #21                 // String TokenUsage { inputTokenCount = 1, outputTokenCount = 2, totalTokenCount = 3 }\n-        25: invokevirtual #22                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+        14: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        17: invokespecial #16                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+        20: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        23: ldc           #67                 // String TokenUsage { inputTokenCount = 1, outputTokenCount = 2, totalTokenCount = 3 }\n+        25: invokevirtual #69                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n         28: pop\n         29: aload_0\n-        30: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+        30: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n         33: dup\n         34: aconst_null\n         35: aconst_null\n         36: aconst_null\n-        37: invokespecial #5                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-        40: invokevirtual #4                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        43: ldc           #23                 // String TokenUsage { inputTokenCount = null, outputTokenCount = null, totalTokenCount = null }\n-        45: invokevirtual #22                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+        37: invokespecial #16                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+        40: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        43: ldc           #73                 // String TokenUsage { inputTokenCount = null, outputTokenCount = null, totalTokenCount = null }\n+        45: invokevirtual #69                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n         48: pop\n         49: return\n       LineNumberTable:\n         line 65: 0\n         line 66: 25\n         line 67: 29\n         line 68: 45\n         line 69: 49\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      50     0  this   Ldev/langchain4j/model/output/TokenUsageTest;\n     RuntimeVisibleAnnotations:\n-      0: #36()\n+      0: #88()\n         org.junit.jupiter.api.Test\n \n   public void test_sum();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=7, locals=1, args_size=1\n          0: aload_0\n-         1: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+         1: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n          4: dup\n          5: iconst_1\n-         6: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+         6: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n          9: iconst_2\n-        10: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        10: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         13: iconst_3\n-        14: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-        17: invokespecial #5                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-        20: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+        14: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        17: invokespecial #16                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+        20: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n         23: dup\n         24: iconst_4\n-        25: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        25: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         28: iconst_5\n-        29: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        29: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         32: bipush        6\n-        34: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-        37: invokespecial #5                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-        40: invokevirtual #24                 // Method dev/langchain4j/model/output/TokenUsage.add:(Ldev/langchain4j/model/output/TokenUsage;)Ldev/langchain4j/model/output/TokenUsage;\n-        43: invokevirtual #4                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        46: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+        34: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        37: invokespecial #16                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+        40: invokevirtual #75                 // Method dev/langchain4j/model/output/TokenUsage.add:(Ldev/langchain4j/model/output/TokenUsage;)Ldev/langchain4j/model/output/TokenUsage;\n+        43: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        46: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n         49: dup\n         50: iconst_5\n-        51: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        51: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         54: bipush        7\n-        56: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        56: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         59: bipush        9\n-        61: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-        64: invokespecial #5                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-        67: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        61: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        64: invokespecial #16                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+        67: invokevirtual #19                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         70: pop\n         71: aload_0\n-        72: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+        72: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n         75: dup\n         76: iconst_1\n-        77: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        77: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         80: iconst_2\n-        81: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        81: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         84: iconst_3\n-        85: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-        88: invokespecial #5                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-        91: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+        85: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        88: invokespecial #16                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+        91: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n         94: dup\n         95: aconst_null\n         96: aconst_null\n         97: aconst_null\n-        98: invokespecial #5                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-       101: invokevirtual #24                 // Method dev/langchain4j/model/output/TokenUsage.add:(Ldev/langchain4j/model/output/TokenUsage;)Ldev/langchain4j/model/output/TokenUsage;\n-       104: invokevirtual #4                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-       107: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+        98: invokespecial #16                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+       101: invokevirtual #75                 // Method dev/langchain4j/model/output/TokenUsage.add:(Ldev/langchain4j/model/output/TokenUsage;)Ldev/langchain4j/model/output/TokenUsage;\n+       104: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       107: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n        110: dup\n        111: iconst_1\n-       112: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       112: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n        115: iconst_2\n-       116: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       116: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n        119: iconst_3\n-       120: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-       123: invokespecial #5                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-       126: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       120: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       123: invokespecial #16                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+       126: invokevirtual #19                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        129: pop\n        130: aload_0\n-       131: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+       131: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n        134: dup\n        135: aconst_null\n        136: aconst_null\n        137: aconst_null\n-       138: invokespecial #5                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-       141: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+       138: invokespecial #16                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+       141: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n        144: dup\n        145: iconst_4\n-       146: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       146: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n        149: iconst_5\n-       150: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       150: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n        153: bipush        6\n-       155: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-       158: invokespecial #5                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-       161: invokevirtual #24                 // Method dev/langchain4j/model/output/TokenUsage.add:(Ldev/langchain4j/model/output/TokenUsage;)Ldev/langchain4j/model/output/TokenUsage;\n-       164: invokevirtual #4                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-       167: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+       155: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       158: invokespecial #16                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+       161: invokevirtual #75                 // Method dev/langchain4j/model/output/TokenUsage.add:(Ldev/langchain4j/model/output/TokenUsage;)Ldev/langchain4j/model/output/TokenUsage;\n+       164: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       167: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n        170: dup\n        171: iconst_4\n-       172: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       172: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n        175: iconst_5\n-       176: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       176: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n        179: bipush        6\n-       181: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-       184: invokespecial #5                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-       187: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       181: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       184: invokespecial #16                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+       187: invokevirtual #19                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        190: pop\n        191: aload_0\n-       192: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+       192: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n        195: dup\n        196: aconst_null\n        197: aconst_null\n        198: aconst_null\n-       199: invokespecial #5                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-       202: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+       199: invokespecial #16                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+       202: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n        205: dup\n        206: aconst_null\n        207: aconst_null\n        208: aconst_null\n-       209: invokespecial #5                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-       212: invokevirtual #24                 // Method dev/langchain4j/model/output/TokenUsage.add:(Ldev/langchain4j/model/output/TokenUsage;)Ldev/langchain4j/model/output/TokenUsage;\n-       215: invokevirtual #4                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-       218: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+       209: invokespecial #16                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+       212: invokevirtual #75                 // Method dev/langchain4j/model/output/TokenUsage.add:(Ldev/langchain4j/model/output/TokenUsage;)Ldev/langchain4j/model/output/TokenUsage;\n+       215: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       218: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n        221: dup\n        222: aconst_null\n        223: aconst_null\n        224: aconst_null\n-       225: invokespecial #5                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-       228: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       225: invokespecial #16                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+       228: invokevirtual #19                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        231: pop\n        232: return\n       LineNumberTable:\n         line 73: 0\n         line 74: 6\n         line 75: 25\n         line 73: 43\n@@ -599,11 +599,11 @@\n         line 88: 215\n         line 91: 228\n         line 92: 232\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     233     0  this   Ldev/langchain4j/model/output/TokenUsageTest;\n     RuntimeVisibleAnnotations:\n-      0: #36()\n+      0: #88()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"TokenUsageTest.java\"\n"}]}, {"source1": "dev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel.class", "source2": "dev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,100 +1,100 @@\n-  SHA-256 checksum 2910448427c4376d6a1af83b07fec78e799ee0e349259cc50e15538739216ffb\n+  SHA-256 checksum 80203e7dcee9c6f3ec1a8df5dbbd967560868916f40585cb2071b1f28f1eea5c\n   Compiled from \"ScoringModelTest.java\"\n class dev.langchain4j.model.scoring.ScoringModelTest$TestScoringModel implements dev.langchain4j.model.scoring.ScoringModel\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #8                          // dev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel\n-  super_class: #9                         // java/lang/Object\n+  this_class: #29                         // dev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel\n+  super_class: #4                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 2\n Constant pool:\n-   #1 = Class              #32            // dev/langchain4j/model/scoring/ScoringModelTest\n-   #2 = Methodref          #9.#33         // java/lang/Object.\"<init>\":()V\n-   #3 = Double             0.7d\n-   #5 = Methodref          #34.#35        // java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-   #6 = Methodref          #36.#37        // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-   #7 = Methodref          #38.#39        // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-   #8 = Class              #40            // dev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel\n-   #9 = Class              #41            // java/lang/Object\n-  #10 = Class              #42            // dev/langchain4j/model/scoring/ScoringModel\n-  #11 = Utf8               <init>\n-  #12 = Utf8               ()V\n-  #13 = Utf8               Code\n-  #14 = Utf8               LineNumberTable\n-  #15 = Utf8               LocalVariableTable\n-  #16 = Utf8               this\n-  #17 = Utf8               TestScoringModel\n-  #18 = Utf8               InnerClasses\n-  #19 = Utf8               Ldev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel;\n-  #20 = Utf8               scoreAll\n-  #21 = Utf8               (Ljava/util/List;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n-  #22 = Utf8               segments\n-  #23 = Utf8               Ljava/util/List;\n-  #24 = Utf8               query\n-  #25 = Utf8               Ljava/lang/String;\n-  #26 = Utf8               LocalVariableTypeTable\n-  #27 = Utf8               Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;\n-  #28 = Utf8               Signature\n-  #29 = Utf8               (Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;Ljava/lang/String;)Ldev/langchain4j/model/output/Response<Ljava/util/List<Ljava/lang/Double;>;>;\n-  #30 = Utf8               SourceFile\n-  #31 = Utf8               ScoringModelTest.java\n-  #32 = Utf8               dev/langchain4j/model/scoring/ScoringModelTest\n-  #33 = NameAndType        #11:#12        // \"<init>\":()V\n-  #34 = Class              #43            // java/lang/Double\n-  #35 = NameAndType        #44:#45        // valueOf:(D)Ljava/lang/Double;\n-  #36 = Class              #46            // java/util/Collections\n-  #37 = NameAndType        #47:#48        // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-  #38 = Class              #49            // dev/langchain4j/model/output/Response\n-  #39 = NameAndType        #50:#51        // from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-  #40 = Utf8               dev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel\n-  #41 = Utf8               java/lang/Object\n-  #42 = Utf8               dev/langchain4j/model/scoring/ScoringModel\n-  #43 = Utf8               java/lang/Double\n-  #44 = Utf8               valueOf\n-  #45 = Utf8               (D)Ljava/lang/Double;\n-  #46 = Utf8               java/util/Collections\n-  #47 = Utf8               singletonList\n-  #48 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n-  #49 = Utf8               dev/langchain4j/model/output/Response\n-  #50 = Utf8               from\n-  #51 = Utf8               (Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+   #1 = Class              #2             // dev/langchain4j/model/scoring/ScoringModelTest\n+   #2 = Utf8               dev/langchain4j/model/scoring/ScoringModelTest\n+   #3 = Methodref          #4.#5          // java/lang/Object.\"<init>\":()V\n+   #4 = Class              #6             // java/lang/Object\n+   #5 = NameAndType        #7:#8          // \"<init>\":()V\n+   #6 = Utf8               java/lang/Object\n+   #7 = Utf8               <init>\n+   #8 = Utf8               ()V\n+   #9 = Double             0.7d\n+  #11 = Methodref          #12.#13        // java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+  #12 = Class              #14            // java/lang/Double\n+  #13 = NameAndType        #15:#16        // valueOf:(D)Ljava/lang/Double;\n+  #14 = Utf8               java/lang/Double\n+  #15 = Utf8               valueOf\n+  #16 = Utf8               (D)Ljava/lang/Double;\n+  #17 = Methodref          #18.#19        // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+  #18 = Class              #20            // java/util/Collections\n+  #19 = NameAndType        #21:#22        // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+  #20 = Utf8               java/util/Collections\n+  #21 = Utf8               singletonList\n+  #22 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n+  #23 = Methodref          #24.#25        // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+  #24 = Class              #26            // dev/langchain4j/model/output/Response\n+  #25 = NameAndType        #27:#28        // from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+  #26 = Utf8               dev/langchain4j/model/output/Response\n+  #27 = Utf8               from\n+  #28 = Utf8               (Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+  #29 = Class              #30            // dev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel\n+  #30 = Utf8               dev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel\n+  #31 = Class              #32            // dev/langchain4j/model/scoring/ScoringModel\n+  #32 = Utf8               dev/langchain4j/model/scoring/ScoringModel\n+  #33 = Utf8               Code\n+  #34 = Utf8               LineNumberTable\n+  #35 = Utf8               LocalVariableTable\n+  #36 = Utf8               this\n+  #37 = Utf8               Ldev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel;\n+  #38 = Utf8               scoreAll\n+  #39 = Utf8               (Ljava/util/List;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+  #40 = Utf8               segments\n+  #41 = Utf8               Ljava/util/List;\n+  #42 = Utf8               query\n+  #43 = Utf8               Ljava/lang/String;\n+  #44 = Utf8               LocalVariableTypeTable\n+  #45 = Utf8               Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;\n+  #46 = Utf8               Signature\n+  #47 = Utf8               (Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;Ljava/lang/String;)Ldev/langchain4j/model/output/Response<Ljava/util/List<Ljava/lang/Double;>;>;\n+  #48 = Utf8               SourceFile\n+  #49 = Utf8               ScoringModelTest.java\n+  #50 = Utf8               InnerClasses\n+  #51 = Utf8               TestScoringModel\n {\n   dev.langchain4j.model.scoring.ScoringModelTest$TestScoringModel();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n-         1: invokespecial #2                  // Method java/lang/Object.\"<init>\":()V\n+         1: invokespecial #3                  // Method java/lang/Object.\"<init>\":()V\n          4: return\n       LineNumberTable:\n         line 16: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       5     0  this   Ldev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel;\n \n   public dev.langchain4j.model.output.Response<java.util.List<java.lang.Double>> scoreAll(java.util.List<dev.langchain4j.data.segment.TextSegment>, java.lang.String);\n     descriptor: (Ljava/util/List;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=3, args_size=3\n-         0: ldc2_w        #3                  // double 0.7d\n-         3: invokestatic  #5                  // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-         6: invokestatic  #6                  // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-         9: invokestatic  #7                  // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+         0: ldc2_w        #9                  // double 0.7d\n+         3: invokestatic  #11                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+         6: invokestatic  #17                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+         9: invokestatic  #23                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n         12: areturn\n       LineNumberTable:\n         line 20: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      13     0  this   Ldev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel;\n             0      13     1 segments   Ljava/util/List;\n             0      13     2 query   Ljava/lang/String;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0      13     1 segments   Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;\n-    Signature: #29                          // (Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;Ljava/lang/String;)Ldev/langchain4j/model/output/Response<Ljava/util/List<Ljava/lang/Double;>;>;\n+    Signature: #47                          // (Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;Ljava/lang/String;)Ldev/langchain4j/model/output/Response<Ljava/util/List<Ljava/lang/Double;>;>;\n }\n SourceFile: \"ScoringModelTest.java\"\n InnerClasses:\n-  static #17= #8 of #1;                   // TestScoringModel=class dev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel of class dev/langchain4j/model/scoring/ScoringModelTest\n+  static #51= #29 of #1;                  // TestScoringModel=class dev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel of class dev/langchain4j/model/scoring/ScoringModelTest\n"}]}, {"source1": "dev/langchain4j/model/scoring/ScoringModelTest.class", "source2": "dev/langchain4j/model/scoring/ScoringModelTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,93 +1,93 @@\n-  SHA-256 checksum 8d7bf123351a22dbb009f808c0c2ee17323e2f87262466522ac78775e888bf76\n+  SHA-256 checksum 0cfdad24cb3b2c90c9207a84d08ca3a2e2b83992108b85c45853638f20b1741c\n   Compiled from \"ScoringModelTest.java\"\n class dev.langchain4j.model.scoring.ScoringModelTest\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #10                         // dev/langchain4j/model/scoring/ScoringModelTest\n-  super_class: #16                        // java/lang/Object\n+  this_class: #34                         // dev/langchain4j/model/scoring/ScoringModelTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 1, methods: 3, attributes: 2\n Constant pool:\n-   #1 = Methodref          #16.#45        // java/lang/Object.\"<init>\":()V\n-   #2 = String             #30            // text\n-   #3 = Class              #46            // dev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel\n-   #4 = Methodref          #3.#45         // dev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel.\"<init>\":()V\n-   #5 = String             #47            // query\n-   #6 = InterfaceMethodref #48.#49        // dev/langchain4j/model/scoring/ScoringModel.score:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n-   #7 = Methodref          #50.#51        // dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n-   #8 = Class              #52            // java/lang/Double\n-   #9 = Methodref          #53.#54        // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Double;)Lorg/assertj/core/api/AbstractDoubleAssert;\n-  #10 = Class              #55            // dev/langchain4j/model/scoring/ScoringModelTest\n-  #11 = Double             0.7d\n-  #13 = Methodref          #56.#57        // org/assertj/core/api/AbstractDoubleAssert.isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n-  #14 = Methodref          #58.#59        // dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #15 = InterfaceMethodref #48.#60        // dev/langchain4j/model/scoring/ScoringModel.score:(Ldev/langchain4j/data/segment/TextSegment;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n-  #16 = Class              #61            // java/lang/Object\n-  #17 = Utf8               TestScoringModel\n-  #18 = Utf8               InnerClasses\n-  #19 = Utf8               SCORE\n-  #20 = Utf8               D\n-  #21 = Utf8               ConstantValue\n-  #22 = Utf8               <init>\n-  #23 = Utf8               ()V\n-  #24 = Utf8               Code\n-  #25 = Utf8               LineNumberTable\n-  #26 = Utf8               LocalVariableTable\n-  #27 = Utf8               this\n-  #28 = Utf8               Ldev/langchain4j/model/scoring/ScoringModelTest;\n-  #29 = Utf8               should_score_text\n-  #30 = Utf8               text\n-  #31 = Utf8               Ljava/lang/String;\n-  #32 = Utf8               model\n-  #33 = Utf8               Ldev/langchain4j/model/scoring/ScoringModel;\n-  #34 = Utf8               response\n-  #35 = Utf8               Ldev/langchain4j/model/output/Response;\n-  #36 = Utf8               LocalVariableTypeTable\n-  #37 = Utf8               Ldev/langchain4j/model/output/Response<Ljava/lang/Double;>;\n-  #38 = Utf8               RuntimeVisibleAnnotations\n-  #39 = Utf8               Lorg/junit/jupiter/api/Test;\n-  #40 = Utf8               should_score_text_segment\n-  #41 = Utf8               segment\n-  #42 = Utf8               Ldev/langchain4j/data/segment/TextSegment;\n-  #43 = Utf8               SourceFile\n-  #44 = Utf8               ScoringModelTest.java\n-  #45 = NameAndType        #22:#23        // \"<init>\":()V\n-  #46 = Utf8               dev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel\n-  #47 = Utf8               query\n-  #48 = Class              #62            // dev/langchain4j/model/scoring/ScoringModel\n-  #49 = NameAndType        #63:#64        // score:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n-  #50 = Class              #65            // dev/langchain4j/model/output/Response\n-  #51 = NameAndType        #66:#67        // content:()Ljava/lang/Object;\n-  #52 = Utf8               java/lang/Double\n-  #53 = Class              #68            // org/assertj/core/api/Assertions\n-  #54 = NameAndType        #69:#70        // assertThat:(Ljava/lang/Double;)Lorg/assertj/core/api/AbstractDoubleAssert;\n-  #55 = Utf8               dev/langchain4j/model/scoring/ScoringModelTest\n-  #56 = Class              #71            // org/assertj/core/api/AbstractDoubleAssert\n-  #57 = NameAndType        #72:#73        // isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n-  #58 = Class              #74            // dev/langchain4j/data/segment/TextSegment\n-  #59 = NameAndType        #75:#76        // from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #60 = NameAndType        #63:#77        // score:(Ldev/langchain4j/data/segment/TextSegment;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n-  #61 = Utf8               java/lang/Object\n-  #62 = Utf8               dev/langchain4j/model/scoring/ScoringModel\n-  #63 = Utf8               score\n-  #64 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n-  #65 = Utf8               dev/langchain4j/model/output/Response\n-  #66 = Utf8               content\n-  #67 = Utf8               ()Ljava/lang/Object;\n-  #68 = Utf8               org/assertj/core/api/Assertions\n-  #69 = Utf8               assertThat\n-  #70 = Utf8               (Ljava/lang/Double;)Lorg/assertj/core/api/AbstractDoubleAssert;\n-  #71 = Utf8               org/assertj/core/api/AbstractDoubleAssert\n-  #72 = Utf8               isEqualTo\n-  #73 = Utf8               (D)Lorg/assertj/core/api/AbstractDoubleAssert;\n-  #74 = Utf8               dev/langchain4j/data/segment/TextSegment\n-  #75 = Utf8               from\n-  #76 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #77 = Utf8               (Ldev/langchain4j/data/segment/TextSegment;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = String             #8             // text\n+   #8 = Utf8               text\n+   #9 = Class              #10            // dev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel\n+  #10 = Utf8               dev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel\n+  #11 = Methodref          #9.#3          // dev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel.\"<init>\":()V\n+  #12 = String             #13            // query\n+  #13 = Utf8               query\n+  #14 = InterfaceMethodref #15.#16        // dev/langchain4j/model/scoring/ScoringModel.score:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+  #15 = Class              #17            // dev/langchain4j/model/scoring/ScoringModel\n+  #16 = NameAndType        #18:#19        // score:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+  #17 = Utf8               dev/langchain4j/model/scoring/ScoringModel\n+  #18 = Utf8               score\n+  #19 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+  #20 = Methodref          #21.#22        // dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n+  #21 = Class              #23            // dev/langchain4j/model/output/Response\n+  #22 = NameAndType        #24:#25        // content:()Ljava/lang/Object;\n+  #23 = Utf8               dev/langchain4j/model/output/Response\n+  #24 = Utf8               content\n+  #25 = Utf8               ()Ljava/lang/Object;\n+  #26 = Class              #27            // java/lang/Double\n+  #27 = Utf8               java/lang/Double\n+  #28 = Methodref          #29.#30        // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Double;)Lorg/assertj/core/api/AbstractDoubleAssert;\n+  #29 = Class              #31            // org/assertj/core/api/Assertions\n+  #30 = NameAndType        #32:#33        // assertThat:(Ljava/lang/Double;)Lorg/assertj/core/api/AbstractDoubleAssert;\n+  #31 = Utf8               org/assertj/core/api/Assertions\n+  #32 = Utf8               assertThat\n+  #33 = Utf8               (Ljava/lang/Double;)Lorg/assertj/core/api/AbstractDoubleAssert;\n+  #34 = Class              #35            // dev/langchain4j/model/scoring/ScoringModelTest\n+  #35 = Utf8               dev/langchain4j/model/scoring/ScoringModelTest\n+  #36 = Double             0.7d\n+  #38 = Methodref          #39.#40        // org/assertj/core/api/AbstractDoubleAssert.isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+  #39 = Class              #41            // org/assertj/core/api/AbstractDoubleAssert\n+  #40 = NameAndType        #42:#43        // isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+  #41 = Utf8               org/assertj/core/api/AbstractDoubleAssert\n+  #42 = Utf8               isEqualTo\n+  #43 = Utf8               (D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+  #44 = Methodref          #45.#46        // dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #45 = Class              #47            // dev/langchain4j/data/segment/TextSegment\n+  #46 = NameAndType        #48:#49        // from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #47 = Utf8               dev/langchain4j/data/segment/TextSegment\n+  #48 = Utf8               from\n+  #49 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #50 = InterfaceMethodref #15.#51        // dev/langchain4j/model/scoring/ScoringModel.score:(Ldev/langchain4j/data/segment/TextSegment;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+  #51 = NameAndType        #18:#52        // score:(Ldev/langchain4j/data/segment/TextSegment;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+  #52 = Utf8               (Ldev/langchain4j/data/segment/TextSegment;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+  #53 = Utf8               SCORE\n+  #54 = Utf8               D\n+  #55 = Utf8               ConstantValue\n+  #56 = Utf8               Code\n+  #57 = Utf8               LineNumberTable\n+  #58 = Utf8               LocalVariableTable\n+  #59 = Utf8               this\n+  #60 = Utf8               Ldev/langchain4j/model/scoring/ScoringModelTest;\n+  #61 = Utf8               should_score_text\n+  #62 = Utf8               Ljava/lang/String;\n+  #63 = Utf8               model\n+  #64 = Utf8               Ldev/langchain4j/model/scoring/ScoringModel;\n+  #65 = Utf8               response\n+  #66 = Utf8               Ldev/langchain4j/model/output/Response;\n+  #67 = Utf8               LocalVariableTypeTable\n+  #68 = Utf8               Ldev/langchain4j/model/output/Response<Ljava/lang/Double;>;\n+  #69 = Utf8               RuntimeVisibleAnnotations\n+  #70 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #71 = Utf8               should_score_text_segment\n+  #72 = Utf8               segment\n+  #73 = Utf8               Ldev/langchain4j/data/segment/TextSegment;\n+  #74 = Utf8               SourceFile\n+  #75 = Utf8               ScoringModelTest.java\n+  #76 = Utf8               InnerClasses\n+  #77 = Utf8               TestScoringModel\n {\n   private static final double SCORE = 0.7d;\n     descriptor: D\n     flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL\n     ConstantValue: double 0.7d\n \n   dev.langchain4j.model.scoring.ScoringModelTest();\n@@ -105,31 +105,31 @@\n             0       5     0  this   Ldev/langchain4j/model/scoring/ScoringModelTest;\n \n   void should_score_text();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=3, locals=4, args_size=1\n-         0: ldc           #2                  // String text\n+         0: ldc           #7                  // String text\n          2: astore_1\n-         3: new           #3                  // class dev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel\n+         3: new           #9                  // class dev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel\n          6: dup\n-         7: invokespecial #4                  // Method dev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel.\"<init>\":()V\n+         7: invokespecial #11                 // Method dev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel.\"<init>\":()V\n         10: astore_2\n         11: aload_2\n         12: aload_1\n-        13: ldc           #5                  // String query\n-        15: invokeinterface #6,  3            // InterfaceMethod dev/langchain4j/model/scoring/ScoringModel.score:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+        13: ldc           #12                 // String query\n+        15: invokeinterface #14,  3           // InterfaceMethod dev/langchain4j/model/scoring/ScoringModel.score:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n         20: astore_3\n         21: aload_3\n-        22: invokevirtual #7                  // Method dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n-        25: checkcast     #8                  // class java/lang/Double\n-        28: invokestatic  #9                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Double;)Lorg/assertj/core/api/AbstractDoubleAssert;\n-        31: ldc2_w        #11                 // double 0.7d\n-        34: invokevirtual #13                 // Method org/assertj/core/api/AbstractDoubleAssert.isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+        22: invokevirtual #20                 // Method dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n+        25: checkcast     #26                 // class java/lang/Double\n+        28: invokestatic  #28                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Double;)Lorg/assertj/core/api/AbstractDoubleAssert;\n+        31: ldc2_w        #36                 // double 0.7d\n+        34: invokevirtual #38                 // Method org/assertj/core/api/AbstractDoubleAssert.isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n         37: pop\n         38: return\n       LineNumberTable:\n         line 28: 0\n         line 30: 3\n         line 33: 11\n         line 36: 21\n@@ -140,40 +140,40 @@\n             3      36     1  text   Ljava/lang/String;\n            11      28     2 model   Ldev/langchain4j/model/scoring/ScoringModel;\n            21      18     3 response   Ldev/langchain4j/model/output/Response;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            21      18     3 response   Ldev/langchain4j/model/output/Response<Ljava/lang/Double;>;\n     RuntimeVisibleAnnotations:\n-      0: #39()\n+      0: #70()\n         org.junit.jupiter.api.Test\n \n   void should_score_text_segment();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=3, locals=4, args_size=1\n-         0: ldc           #2                  // String text\n-         2: invokestatic  #14                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+         0: ldc           #7                  // String text\n+         2: invokestatic  #44                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n          5: astore_1\n-         6: new           #3                  // class dev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel\n+         6: new           #9                  // class dev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel\n          9: dup\n-        10: invokespecial #4                  // Method dev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel.\"<init>\":()V\n+        10: invokespecial #11                 // Method dev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel.\"<init>\":()V\n         13: astore_2\n         14: aload_2\n         15: aload_1\n-        16: ldc           #5                  // String query\n-        18: invokeinterface #15,  3           // InterfaceMethod dev/langchain4j/model/scoring/ScoringModel.score:(Ldev/langchain4j/data/segment/TextSegment;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+        16: ldc           #12                 // String query\n+        18: invokeinterface #50,  3           // InterfaceMethod dev/langchain4j/model/scoring/ScoringModel.score:(Ldev/langchain4j/data/segment/TextSegment;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n         23: astore_3\n         24: aload_3\n-        25: invokevirtual #7                  // Method dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n-        28: checkcast     #8                  // class java/lang/Double\n-        31: invokestatic  #9                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Double;)Lorg/assertj/core/api/AbstractDoubleAssert;\n-        34: ldc2_w        #11                 // double 0.7d\n-        37: invokevirtual #13                 // Method org/assertj/core/api/AbstractDoubleAssert.isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+        25: invokevirtual #20                 // Method dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n+        28: checkcast     #26                 // class java/lang/Double\n+        31: invokestatic  #28                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Double;)Lorg/assertj/core/api/AbstractDoubleAssert;\n+        34: ldc2_w        #36                 // double 0.7d\n+        37: invokevirtual #38                 // Method org/assertj/core/api/AbstractDoubleAssert.isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n         40: pop\n         41: return\n       LineNumberTable:\n         line 43: 0\n         line 45: 6\n         line 48: 14\n         line 51: 24\n@@ -184,13 +184,13 @@\n             6      36     1 segment   Ldev/langchain4j/data/segment/TextSegment;\n            14      28     2 model   Ldev/langchain4j/model/scoring/ScoringModel;\n            24      18     3 response   Ldev/langchain4j/model/output/Response;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            24      18     3 response   Ldev/langchain4j/model/output/Response<Ljava/lang/Double;>;\n     RuntimeVisibleAnnotations:\n-      0: #39()\n+      0: #70()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"ScoringModelTest.java\"\n InnerClasses:\n-  static #17= #3 of #10;                  // TestScoringModel=class dev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel of class dev/langchain4j/model/scoring/ScoringModelTest\n+  static #77= #9 of #34;                  // TestScoringModel=class dev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel of class dev/langchain4j/model/scoring/ScoringModelTest\n"}]}, {"source1": "dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentAggregator.class", "source2": "dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentAggregator.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,101 +1,101 @@\n-  SHA-256 checksum d1395f33f834d654ca0301349445497f7d060667df9c9ddded79563fe88a2625\n+  SHA-256 checksum 76a8497ae1d8d3751b285d7ddb0b7fa7546702e3df1fa73158a13e8d5d53bcf4\n   Compiled from \"DefaultRetrievalAugmentorTest.java\"\n class dev.langchain4j.rag.DefaultRetrievalAugmentorTest$TestContentAggregator implements dev.langchain4j.rag.content.aggregator.ContentAggregator\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #10                         // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentAggregator\n-  super_class: #11                        // java/lang/Object\n+  this_class: #42                         // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentAggregator\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 3\n Constant pool:\n-   #1 = Methodref          #11.#32        // java/lang/Object.\"<init>\":()V\n-   #2 = InterfaceMethodref #33.#34        // java/util/Map.values:()Ljava/util/Collection;\n-   #3 = InterfaceMethodref #35.#36        // java/util/Collection.stream:()Ljava/util/stream/Stream;\n-   #4 = InvokeDynamic      #0:#42         // #0:apply:()Ljava/util/function/Function;\n-   #5 = InterfaceMethodref #43.#44        // java/util/stream/Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n-   #6 = InvokeDynamic      #1:#42         // #1:apply:()Ljava/util/function/Function;\n-   #7 = Methodref          #46.#47        // java/util/stream/Collectors.toList:()Ljava/util/stream/Collector;\n-   #8 = InterfaceMethodref #43.#48        // java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n-   #9 = Class              #49            // java/util/List\n-  #10 = Class              #51            // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentAggregator\n-  #11 = Class              #52            // java/lang/Object\n-  #12 = Class              #53            // dev/langchain4j/rag/content/aggregator/ContentAggregator\n-  #13 = Utf8               <init>\n-  #14 = Utf8               ()V\n-  #15 = Utf8               Code\n-  #16 = Utf8               LineNumberTable\n-  #17 = Utf8               LocalVariableTable\n-  #18 = Utf8               this\n-  #19 = Utf8               TestContentAggregator\n-  #20 = Utf8               InnerClasses\n-  #21 = Utf8               Ldev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentAggregator;\n-  #22 = Utf8               aggregate\n-  #23 = Utf8               (Ljava/util/Map;)Ljava/util/List;\n-  #24 = Utf8               queryToContents\n-  #25 = Utf8               Ljava/util/Map;\n-  #26 = Utf8               LocalVariableTypeTable\n-  #27 = Utf8               Ljava/util/Map<Ldev/langchain4j/rag/query/Query;Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;>;\n-  #28 = Utf8               Signature\n-  #29 = Utf8               (Ljava/util/Map<Ldev/langchain4j/rag/query/Query;Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;>;)Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n-  #30 = Utf8               SourceFile\n-  #31 = Utf8               DefaultRetrievalAugmentorTest.java\n-  #32 = NameAndType        #13:#14        // \"<init>\":()V\n-  #33 = Class              #54            // java/util/Map\n-  #34 = NameAndType        #55:#56        // values:()Ljava/util/Collection;\n-  #35 = Class              #57            // java/util/Collection\n-  #36 = NameAndType        #58:#59        // stream:()Ljava/util/stream/Stream;\n-  #37 = Utf8               BootstrapMethods\n-  #38 = MethodHandle       6:#60          // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #39 = MethodType         #61            //  (Ljava/lang/Object;)Ljava/lang/Object;\n-  #40 = MethodHandle       9:#3           // REF_invokeInterface java/util/Collection.stream:()Ljava/util/stream/Stream;\n-  #41 = MethodType         #62            //  (Ljava/util/Collection;)Ljava/util/stream/Stream;\n-  #42 = NameAndType        #63:#64        // apply:()Ljava/util/function/Function;\n-  #43 = Class              #65            // java/util/stream/Stream\n-  #44 = NameAndType        #66:#67        // flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n-  #45 = MethodType         #68            //  (Ljava/util/List;)Ljava/util/stream/Stream;\n-  #46 = Class              #69            // java/util/stream/Collectors\n-  #47 = NameAndType        #70:#71        // toList:()Ljava/util/stream/Collector;\n-  #48 = NameAndType        #72:#73        // collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n-  #49 = Utf8               java/util/List\n-  #50 = Class              #74            // dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n-  #51 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentAggregator\n-  #52 = Utf8               java/lang/Object\n-  #53 = Utf8               dev/langchain4j/rag/content/aggregator/ContentAggregator\n-  #54 = Utf8               java/util/Map\n-  #55 = Utf8               values\n-  #56 = Utf8               ()Ljava/util/Collection;\n-  #57 = Utf8               java/util/Collection\n-  #58 = Utf8               stream\n-  #59 = Utf8               ()Ljava/util/stream/Stream;\n-  #60 = Methodref          #75.#76        // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #61 = Utf8               (Ljava/lang/Object;)Ljava/lang/Object;\n-  #62 = Utf8               (Ljava/util/Collection;)Ljava/util/stream/Stream;\n-  #63 = Utf8               apply\n-  #64 = Utf8               ()Ljava/util/function/Function;\n-  #65 = Utf8               java/util/stream/Stream\n-  #66 = Utf8               flatMap\n-  #67 = Utf8               (Ljava/util/function/Function;)Ljava/util/stream/Stream;\n-  #68 = Utf8               (Ljava/util/List;)Ljava/util/stream/Stream;\n-  #69 = Utf8               java/util/stream/Collectors\n-  #70 = Utf8               toList\n-  #71 = Utf8               ()Ljava/util/stream/Collector;\n-  #72 = Utf8               collect\n-  #73 = Utf8               (Ljava/util/stream/Collector;)Ljava/lang/Object;\n-  #74 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n-  #75 = Class              #77            // java/lang/invoke/LambdaMetafactory\n-  #76 = NameAndType        #78:#81        // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #77 = Utf8               java/lang/invoke/LambdaMetafactory\n-  #78 = Utf8               metafactory\n-  #79 = Class              #83            // java/lang/invoke/MethodHandles$Lookup\n-  #80 = Utf8               Lookup\n-  #81 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #82 = Class              #84            // java/lang/invoke/MethodHandles\n-  #83 = Utf8               java/lang/invoke/MethodHandles$Lookup\n-  #84 = Utf8               java/lang/invoke/MethodHandles\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = InterfaceMethodref #8.#9          // java/util/Map.values:()Ljava/util/Collection;\n+   #8 = Class              #10            // java/util/Map\n+   #9 = NameAndType        #11:#12        // values:()Ljava/util/Collection;\n+  #10 = Utf8               java/util/Map\n+  #11 = Utf8               values\n+  #12 = Utf8               ()Ljava/util/Collection;\n+  #13 = InterfaceMethodref #14.#15        // java/util/Collection.stream:()Ljava/util/stream/Stream;\n+  #14 = Class              #16            // java/util/Collection\n+  #15 = NameAndType        #17:#18        // stream:()Ljava/util/stream/Stream;\n+  #16 = Utf8               java/util/Collection\n+  #17 = Utf8               stream\n+  #18 = Utf8               ()Ljava/util/stream/Stream;\n+  #19 = InvokeDynamic      #0:#20         // #0:apply:()Ljava/util/function/Function;\n+  #20 = NameAndType        #21:#22        // apply:()Ljava/util/function/Function;\n+  #21 = Utf8               apply\n+  #22 = Utf8               ()Ljava/util/function/Function;\n+  #23 = InterfaceMethodref #24.#25        // java/util/stream/Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n+  #24 = Class              #26            // java/util/stream/Stream\n+  #25 = NameAndType        #27:#28        // flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n+  #26 = Utf8               java/util/stream/Stream\n+  #27 = Utf8               flatMap\n+  #28 = Utf8               (Ljava/util/function/Function;)Ljava/util/stream/Stream;\n+  #29 = InvokeDynamic      #1:#20         // #1:apply:()Ljava/util/function/Function;\n+  #30 = Methodref          #31.#32        // java/util/stream/Collectors.toList:()Ljava/util/stream/Collector;\n+  #31 = Class              #33            // java/util/stream/Collectors\n+  #32 = NameAndType        #34:#35        // toList:()Ljava/util/stream/Collector;\n+  #33 = Utf8               java/util/stream/Collectors\n+  #34 = Utf8               toList\n+  #35 = Utf8               ()Ljava/util/stream/Collector;\n+  #36 = InterfaceMethodref #24.#37        // java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n+  #37 = NameAndType        #38:#39        // collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n+  #38 = Utf8               collect\n+  #39 = Utf8               (Ljava/util/stream/Collector;)Ljava/lang/Object;\n+  #40 = Class              #41            // java/util/List\n+  #41 = Utf8               java/util/List\n+  #42 = Class              #43            // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentAggregator\n+  #43 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentAggregator\n+  #44 = Class              #45            // dev/langchain4j/rag/content/aggregator/ContentAggregator\n+  #45 = Utf8               dev/langchain4j/rag/content/aggregator/ContentAggregator\n+  #46 = Utf8               Code\n+  #47 = Utf8               LineNumberTable\n+  #48 = Utf8               LocalVariableTable\n+  #49 = Utf8               this\n+  #50 = Utf8               Ldev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentAggregator;\n+  #51 = Utf8               aggregate\n+  #52 = Utf8               (Ljava/util/Map;)Ljava/util/List;\n+  #53 = Utf8               queryToContents\n+  #54 = Utf8               Ljava/util/Map;\n+  #55 = Utf8               LocalVariableTypeTable\n+  #56 = Utf8               Ljava/util/Map<Ldev/langchain4j/rag/query/Query;Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;>;\n+  #57 = Utf8               Signature\n+  #58 = Utf8               (Ljava/util/Map<Ldev/langchain4j/rag/query/Query;Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;>;)Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n+  #59 = Utf8               SourceFile\n+  #60 = Utf8               DefaultRetrievalAugmentorTest.java\n+  #61 = Utf8               BootstrapMethods\n+  #62 = MethodHandle       6:#63          // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #63 = Methodref          #64.#65        // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #64 = Class              #66            // java/lang/invoke/LambdaMetafactory\n+  #65 = NameAndType        #67:#68        // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #66 = Utf8               java/lang/invoke/LambdaMetafactory\n+  #67 = Utf8               metafactory\n+  #68 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #69 = MethodType         #70            //  (Ljava/lang/Object;)Ljava/lang/Object;\n+  #70 = Utf8               (Ljava/lang/Object;)Ljava/lang/Object;\n+  #71 = MethodHandle       9:#13          // REF_invokeInterface java/util/Collection.stream:()Ljava/util/stream/Stream;\n+  #72 = MethodType         #73            //  (Ljava/util/Collection;)Ljava/util/stream/Stream;\n+  #73 = Utf8               (Ljava/util/Collection;)Ljava/util/stream/Stream;\n+  #74 = MethodType         #75            //  (Ljava/util/List;)Ljava/util/stream/Stream;\n+  #75 = Utf8               (Ljava/util/List;)Ljava/util/stream/Stream;\n+  #76 = Utf8               InnerClasses\n+  #77 = Class              #78            // dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n+  #78 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n+  #79 = Utf8               TestContentAggregator\n+  #80 = Class              #81            // java/lang/invoke/MethodHandles$Lookup\n+  #81 = Utf8               java/lang/invoke/MethodHandles$Lookup\n+  #82 = Class              #83            // java/lang/invoke/MethodHandles\n+  #83 = Utf8               java/lang/invoke/MethodHandles\n+  #84 = Utf8               Lookup\n {\n   dev.langchain4j.rag.DefaultRetrievalAugmentorTest$TestContentAggregator();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -109,23 +109,23 @@\n \n   public java.util.List<dev.langchain4j.rag.content.Content> aggregate(java.util.Map<dev.langchain4j.rag.query.Query, java.util.Collection<java.util.List<dev.langchain4j.rag.content.Content>>>);\n     descriptor: (Ljava/util/Map;)Ljava/util/List;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_1\n-         1: invokeinterface #2,  1            // InterfaceMethod java/util/Map.values:()Ljava/util/Collection;\n-         6: invokeinterface #3,  1            // InterfaceMethod java/util/Collection.stream:()Ljava/util/stream/Stream;\n-        11: invokedynamic #4,  0              // InvokeDynamic #0:apply:()Ljava/util/function/Function;\n-        16: invokeinterface #5,  2            // InterfaceMethod java/util/stream/Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n-        21: invokedynamic #6,  0              // InvokeDynamic #1:apply:()Ljava/util/function/Function;\n-        26: invokeinterface #5,  2            // InterfaceMethod java/util/stream/Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n-        31: invokestatic  #7                  // Method java/util/stream/Collectors.toList:()Ljava/util/stream/Collector;\n-        34: invokeinterface #8,  2            // InterfaceMethod java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n-        39: checkcast     #9                  // class java/util/List\n+         1: invokeinterface #7,  1            // InterfaceMethod java/util/Map.values:()Ljava/util/Collection;\n+         6: invokeinterface #13,  1           // InterfaceMethod java/util/Collection.stream:()Ljava/util/stream/Stream;\n+        11: invokedynamic #19,  0             // InvokeDynamic #0:apply:()Ljava/util/function/Function;\n+        16: invokeinterface #23,  2           // InterfaceMethod java/util/stream/Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n+        21: invokedynamic #29,  0             // InvokeDynamic #1:apply:()Ljava/util/function/Function;\n+        26: invokeinterface #23,  2           // InterfaceMethod java/util/stream/Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n+        31: invokestatic  #30                 // Method java/util/stream/Collectors.toList:()Ljava/util/stream/Collector;\n+        34: invokeinterface #36,  2           // InterfaceMethod java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n+        39: checkcast     #40                 // class java/util/List\n         42: areturn\n       LineNumberTable:\n         line 162: 0\n         line 163: 6\n         line 164: 16\n         line 165: 26\n         line 166: 31\n@@ -133,24 +133,24 @@\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      43     0  this   Ldev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentAggregator;\n             0      43     1 queryToContents   Ljava/util/Map;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0      43     1 queryToContents   Ljava/util/Map<Ldev/langchain4j/rag/query/Query;Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;>;\n-    Signature: #29                          // (Ljava/util/Map<Ldev/langchain4j/rag/query/Query;Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;>;)Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n+    Signature: #58                          // (Ljava/util/Map<Ldev/langchain4j/rag/query/Query;Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;>;)Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n }\n SourceFile: \"DefaultRetrievalAugmentorTest.java\"\n-InnerClasses:\n-  static #19= #10 of #50;                 // TestContentAggregator=class dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentAggregator of class dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n-  public static final #80= #79 of #82;    // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n BootstrapMethods:\n-  0: #38 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  0: #62 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #39 (Ljava/lang/Object;)Ljava/lang/Object;\n-      #40 REF_invokeInterface java/util/Collection.stream:()Ljava/util/stream/Stream;\n-      #41 (Ljava/util/Collection;)Ljava/util/stream/Stream;\n-  1: #38 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #69 (Ljava/lang/Object;)Ljava/lang/Object;\n+      #71 REF_invokeInterface java/util/Collection.stream:()Ljava/util/stream/Stream;\n+      #72 (Ljava/util/Collection;)Ljava/util/stream/Stream;\n+  1: #62 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #39 (Ljava/lang/Object;)Ljava/lang/Object;\n-      #40 REF_invokeInterface java/util/Collection.stream:()Ljava/util/stream/Stream;\n-      #45 (Ljava/util/List;)Ljava/util/stream/Stream;\n+      #69 (Ljava/lang/Object;)Ljava/lang/Object;\n+      #71 REF_invokeInterface java/util/Collection.stream:()Ljava/util/stream/Stream;\n+      #74 (Ljava/util/List;)Ljava/util/stream/Stream;\n+InnerClasses:\n+  static #79= #42 of #77;                 // TestContentAggregator=class dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentAggregator of class dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n+  public static final #84= #80 of #82;    // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n"}]}, {"source1": "dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector.class", "source2": "dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,132 +1,132 @@\n-  SHA-256 checksum feedd1fa22aa2e00c9b05baef809007843471e5b782647a203cb393980016b93\n+  SHA-256 checksum 4bcf37bc449e71162aa44ec6bc71150f9398662dada1d215863080b93992e672\n   Compiled from \"DefaultRetrievalAugmentorTest.java\"\n class dev.langchain4j.rag.DefaultRetrievalAugmentorTest$TestContentInjector implements dev.langchain4j.rag.content.injector.ContentInjector\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #17                         // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector\n-  super_class: #18                        // java/lang/Object\n+  this_class: #66                         // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 3, attributes: 3\n Constant pool:\n-    #1 = Methodref          #18.#47       // java/lang/Object.\"<init>\":()V\n-    #2 = InterfaceMethodref #48.#49       // java/util/List.stream:()Ljava/util/stream/Stream;\n-    #3 = InvokeDynamic      #0:#55        // #0:apply:()Ljava/util/function/Function;\n-    #4 = InterfaceMethodref #56.#57       // java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n-    #5 = String             #58           // \\n\n-    #6 = Methodref          #59.#60       // java/util/stream/Collectors.joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;\n-    #7 = InterfaceMethodref #56.#61       // java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n-    #8 = Class              #62           // java/lang/String\n-    #9 = Class              #63           // java/lang/StringBuilder\n-   #10 = Methodref          #9.#47        // java/lang/StringBuilder.\"<init>\":()V\n-   #11 = Methodref          #64.#65       // dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n-   #12 = Methodref          #9.#66        // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-   #13 = Methodref          #9.#67        // java/lang/StringBuilder.toString:()Ljava/lang/String;\n-   #14 = Methodref          #64.#68       // dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-   #15 = Methodref          #69.#70       // dev/langchain4j/rag/content/Content.textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n-   #16 = Methodref          #71.#65       // dev/langchain4j/data/segment/TextSegment.text:()Ljava/lang/String;\n-   #17 = Class              #73           // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector\n-   #18 = Class              #74           // java/lang/Object\n-   #19 = Class              #75           // dev/langchain4j/rag/content/injector/ContentInjector\n-   #20 = Utf8               <init>\n-   #21 = Utf8               ()V\n-   #22 = Utf8               Code\n-   #23 = Utf8               LineNumberTable\n-   #24 = Utf8               LocalVariableTable\n-   #25 = Utf8               this\n-   #26 = Utf8               TestContentInjector\n-   #27 = Utf8               InnerClasses\n-   #28 = Utf8               Ldev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector;\n-   #29 = Utf8               inject\n-   #30 = Utf8               (Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n-   #31 = Utf8               contents\n-   #32 = Utf8               Ljava/util/List;\n-   #33 = Utf8               userMessage\n-   #34 = Utf8               Ldev/langchain4j/data/message/UserMessage;\n-   #35 = Utf8               joinedContents\n-   #36 = Utf8               Ljava/lang/String;\n-   #37 = Utf8               LocalVariableTypeTable\n-   #38 = Utf8               Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n-   #39 = Utf8               Signature\n-   #40 = Utf8               (Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n-   #41 = Utf8               lambda$inject$0\n-   #42 = Utf8               (Ldev/langchain4j/rag/content/Content;)Ljava/lang/String;\n-   #43 = Utf8               it\n-   #44 = Utf8               Ldev/langchain4j/rag/content/Content;\n-   #45 = Utf8               SourceFile\n-   #46 = Utf8               DefaultRetrievalAugmentorTest.java\n-   #47 = NameAndType        #20:#21       // \"<init>\":()V\n-   #48 = Class              #76           // java/util/List\n-   #49 = NameAndType        #77:#78       // stream:()Ljava/util/stream/Stream;\n-   #50 = Utf8               BootstrapMethods\n-   #51 = MethodHandle       6:#79         // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-   #52 = MethodType         #80           //  (Ljava/lang/Object;)Ljava/lang/Object;\n-   #53 = MethodHandle       6:#81         // REF_invokeStatic dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector.lambda$inject$0:(Ldev/langchain4j/rag/content/Content;)Ljava/lang/String;\n-   #54 = MethodType         #42           //  (Ldev/langchain4j/rag/content/Content;)Ljava/lang/String;\n-   #55 = NameAndType        #82:#83       // apply:()Ljava/util/function/Function;\n-   #56 = Class              #84           // java/util/stream/Stream\n-   #57 = NameAndType        #85:#86       // map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n-   #58 = Utf8               \\n\n-   #59 = Class              #87           // java/util/stream/Collectors\n-   #60 = NameAndType        #88:#89       // joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;\n-   #61 = NameAndType        #90:#91       // collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n-   #62 = Utf8               java/lang/String\n-   #63 = Utf8               java/lang/StringBuilder\n-   #64 = Class              #92           // dev/langchain4j/data/message/UserMessage\n-   #65 = NameAndType        #93:#94       // text:()Ljava/lang/String;\n-   #66 = NameAndType        #95:#96       // append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-   #67 = NameAndType        #97:#94       // toString:()Ljava/lang/String;\n-   #68 = NameAndType        #98:#99       // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-   #69 = Class              #100          // dev/langchain4j/rag/content/Content\n-   #70 = NameAndType        #101:#102     // textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n-   #71 = Class              #103          // dev/langchain4j/data/segment/TextSegment\n-   #72 = Class              #104          // dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n-   #73 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector\n-   #74 = Utf8               java/lang/Object\n-   #75 = Utf8               dev/langchain4j/rag/content/injector/ContentInjector\n-   #76 = Utf8               java/util/List\n-   #77 = Utf8               stream\n-   #78 = Utf8               ()Ljava/util/stream/Stream;\n-   #79 = Methodref          #105.#106     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-   #80 = Utf8               (Ljava/lang/Object;)Ljava/lang/Object;\n-   #81 = Methodref          #17.#107      // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector.lambda$inject$0:(Ldev/langchain4j/rag/content/Content;)Ljava/lang/String;\n-   #82 = Utf8               apply\n-   #83 = Utf8               ()Ljava/util/function/Function;\n-   #84 = Utf8               java/util/stream/Stream\n-   #85 = Utf8               map\n-   #86 = Utf8               (Ljava/util/function/Function;)Ljava/util/stream/Stream;\n-   #87 = Utf8               java/util/stream/Collectors\n-   #88 = Utf8               joining\n-   #89 = Utf8               (Ljava/lang/CharSequence;)Ljava/util/stream/Collector;\n-   #90 = Utf8               collect\n-   #91 = Utf8               (Ljava/util/stream/Collector;)Ljava/lang/Object;\n-   #92 = Utf8               dev/langchain4j/data/message/UserMessage\n-   #93 = Utf8               text\n-   #94 = Utf8               ()Ljava/lang/String;\n-   #95 = Utf8               append\n-   #96 = Utf8               (Ljava/lang/String;)Ljava/lang/StringBuilder;\n-   #97 = Utf8               toString\n-   #98 = Utf8               from\n-   #99 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-  #100 = Utf8               dev/langchain4j/rag/content/Content\n-  #101 = Utf8               textSegment\n-  #102 = Utf8               ()Ldev/langchain4j/data/segment/TextSegment;\n-  #103 = Utf8               dev/langchain4j/data/segment/TextSegment\n-  #104 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n-  #105 = Class              #108          // java/lang/invoke/LambdaMetafactory\n-  #106 = NameAndType        #109:#112     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #107 = NameAndType        #41:#42       // lambda$inject$0:(Ldev/langchain4j/rag/content/Content;)Ljava/lang/String;\n-  #108 = Utf8               java/lang/invoke/LambdaMetafactory\n-  #109 = Utf8               metafactory\n-  #110 = Class              #114          // java/lang/invoke/MethodHandles$Lookup\n-  #111 = Utf8               Lookup\n-  #112 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #113 = Class              #115          // java/lang/invoke/MethodHandles\n-  #114 = Utf8               java/lang/invoke/MethodHandles$Lookup\n-  #115 = Utf8               java/lang/invoke/MethodHandles\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = InterfaceMethodref #8.#9         // java/util/List.stream:()Ljava/util/stream/Stream;\n+    #8 = Class              #10           // java/util/List\n+    #9 = NameAndType        #11:#12       // stream:()Ljava/util/stream/Stream;\n+   #10 = Utf8               java/util/List\n+   #11 = Utf8               stream\n+   #12 = Utf8               ()Ljava/util/stream/Stream;\n+   #13 = InvokeDynamic      #0:#14        // #0:apply:()Ljava/util/function/Function;\n+   #14 = NameAndType        #15:#16       // apply:()Ljava/util/function/Function;\n+   #15 = Utf8               apply\n+   #16 = Utf8               ()Ljava/util/function/Function;\n+   #17 = InterfaceMethodref #18.#19       // java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n+   #18 = Class              #20           // java/util/stream/Stream\n+   #19 = NameAndType        #21:#22       // map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n+   #20 = Utf8               java/util/stream/Stream\n+   #21 = Utf8               map\n+   #22 = Utf8               (Ljava/util/function/Function;)Ljava/util/stream/Stream;\n+   #23 = String             #24           // \\n\n+   #24 = Utf8               \\n\n+   #25 = Methodref          #26.#27       // java/util/stream/Collectors.joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;\n+   #26 = Class              #28           // java/util/stream/Collectors\n+   #27 = NameAndType        #29:#30       // joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;\n+   #28 = Utf8               java/util/stream/Collectors\n+   #29 = Utf8               joining\n+   #30 = Utf8               (Ljava/lang/CharSequence;)Ljava/util/stream/Collector;\n+   #31 = InterfaceMethodref #18.#32       // java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n+   #32 = NameAndType        #33:#34       // collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n+   #33 = Utf8               collect\n+   #34 = Utf8               (Ljava/util/stream/Collector;)Ljava/lang/Object;\n+   #35 = Class              #36           // java/lang/String\n+   #36 = Utf8               java/lang/String\n+   #37 = Class              #38           // java/lang/StringBuilder\n+   #38 = Utf8               java/lang/StringBuilder\n+   #39 = Methodref          #37.#3        // java/lang/StringBuilder.\"<init>\":()V\n+   #40 = Methodref          #41.#42       // dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n+   #41 = Class              #43           // dev/langchain4j/data/message/UserMessage\n+   #42 = NameAndType        #44:#45       // text:()Ljava/lang/String;\n+   #43 = Utf8               dev/langchain4j/data/message/UserMessage\n+   #44 = Utf8               text\n+   #45 = Utf8               ()Ljava/lang/String;\n+   #46 = Methodref          #37.#47       // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+   #47 = NameAndType        #48:#49       // append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+   #48 = Utf8               append\n+   #49 = Utf8               (Ljava/lang/String;)Ljava/lang/StringBuilder;\n+   #50 = Methodref          #37.#51       // java/lang/StringBuilder.toString:()Ljava/lang/String;\n+   #51 = NameAndType        #52:#45       // toString:()Ljava/lang/String;\n+   #52 = Utf8               toString\n+   #53 = Methodref          #41.#54       // dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+   #54 = NameAndType        #55:#56       // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+   #55 = Utf8               from\n+   #56 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+   #57 = Methodref          #58.#59       // dev/langchain4j/rag/content/Content.textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n+   #58 = Class              #60           // dev/langchain4j/rag/content/Content\n+   #59 = NameAndType        #61:#62       // textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n+   #60 = Utf8               dev/langchain4j/rag/content/Content\n+   #61 = Utf8               textSegment\n+   #62 = Utf8               ()Ldev/langchain4j/data/segment/TextSegment;\n+   #63 = Methodref          #64.#42       // dev/langchain4j/data/segment/TextSegment.text:()Ljava/lang/String;\n+   #64 = Class              #65           // dev/langchain4j/data/segment/TextSegment\n+   #65 = Utf8               dev/langchain4j/data/segment/TextSegment\n+   #66 = Class              #67           // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector\n+   #67 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector\n+   #68 = Class              #69           // dev/langchain4j/rag/content/injector/ContentInjector\n+   #69 = Utf8               dev/langchain4j/rag/content/injector/ContentInjector\n+   #70 = Utf8               Code\n+   #71 = Utf8               LineNumberTable\n+   #72 = Utf8               LocalVariableTable\n+   #73 = Utf8               this\n+   #74 = Utf8               Ldev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector;\n+   #75 = Utf8               inject\n+   #76 = Utf8               (Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n+   #77 = Utf8               contents\n+   #78 = Utf8               Ljava/util/List;\n+   #79 = Utf8               userMessage\n+   #80 = Utf8               Ldev/langchain4j/data/message/UserMessage;\n+   #81 = Utf8               joinedContents\n+   #82 = Utf8               Ljava/lang/String;\n+   #83 = Utf8               LocalVariableTypeTable\n+   #84 = Utf8               Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n+   #85 = Utf8               Signature\n+   #86 = Utf8               (Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n+   #87 = Utf8               lambda$inject$0\n+   #88 = Utf8               (Ldev/langchain4j/rag/content/Content;)Ljava/lang/String;\n+   #89 = Utf8               it\n+   #90 = Utf8               Ldev/langchain4j/rag/content/Content;\n+   #91 = Utf8               SourceFile\n+   #92 = Utf8               DefaultRetrievalAugmentorTest.java\n+   #93 = Utf8               BootstrapMethods\n+   #94 = MethodHandle       6:#95         // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+   #95 = Methodref          #96.#97       // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+   #96 = Class              #98           // java/lang/invoke/LambdaMetafactory\n+   #97 = NameAndType        #99:#100      // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+   #98 = Utf8               java/lang/invoke/LambdaMetafactory\n+   #99 = Utf8               metafactory\n+  #100 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #101 = MethodType         #102          //  (Ljava/lang/Object;)Ljava/lang/Object;\n+  #102 = Utf8               (Ljava/lang/Object;)Ljava/lang/Object;\n+  #103 = MethodHandle       6:#104        // REF_invokeStatic dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector.lambda$inject$0:(Ldev/langchain4j/rag/content/Content;)Ljava/lang/String;\n+  #104 = Methodref          #66.#105      // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector.lambda$inject$0:(Ldev/langchain4j/rag/content/Content;)Ljava/lang/String;\n+  #105 = NameAndType        #87:#88       // lambda$inject$0:(Ldev/langchain4j/rag/content/Content;)Ljava/lang/String;\n+  #106 = MethodType         #88           //  (Ldev/langchain4j/rag/content/Content;)Ljava/lang/String;\n+  #107 = Utf8               InnerClasses\n+  #108 = Class              #109          // dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n+  #109 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n+  #110 = Utf8               TestContentInjector\n+  #111 = Class              #112          // java/lang/invoke/MethodHandles$Lookup\n+  #112 = Utf8               java/lang/invoke/MethodHandles$Lookup\n+  #113 = Class              #114          // java/lang/invoke/MethodHandles\n+  #114 = Utf8               java/lang/invoke/MethodHandles\n+  #115 = Utf8               Lookup\n {\n   dev.langchain4j.rag.DefaultRetrievalAugmentorTest$TestContentInjector();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -140,34 +140,34 @@\n \n   public dev.langchain4j.data.message.UserMessage inject(java.util.List<dev.langchain4j.rag.content.Content>, dev.langchain4j.data.message.UserMessage);\n     descriptor: (Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=4, args_size=3\n          0: aload_1\n-         1: invokeinterface #2,  1            // InterfaceMethod java/util/List.stream:()Ljava/util/stream/Stream;\n-         6: invokedynamic #3,  0              // InvokeDynamic #0:apply:()Ljava/util/function/Function;\n-        11: invokeinterface #4,  2            // InterfaceMethod java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n-        16: ldc           #5                  // String \\n\n-        18: invokestatic  #6                  // Method java/util/stream/Collectors.joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;\n-        21: invokeinterface #7,  2            // InterfaceMethod java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n-        26: checkcast     #8                  // class java/lang/String\n+         1: invokeinterface #7,  1            // InterfaceMethod java/util/List.stream:()Ljava/util/stream/Stream;\n+         6: invokedynamic #13,  0             // InvokeDynamic #0:apply:()Ljava/util/function/Function;\n+        11: invokeinterface #17,  2           // InterfaceMethod java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n+        16: ldc           #23                 // String \\n\n+        18: invokestatic  #25                 // Method java/util/stream/Collectors.joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;\n+        21: invokeinterface #31,  2           // InterfaceMethod java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n+        26: checkcast     #35                 // class java/lang/String\n         29: astore_3\n-        30: new           #9                  // class java/lang/StringBuilder\n+        30: new           #37                 // class java/lang/StringBuilder\n         33: dup\n-        34: invokespecial #10                 // Method java/lang/StringBuilder.\"<init>\":()V\n+        34: invokespecial #39                 // Method java/lang/StringBuilder.\"<init>\":()V\n         37: aload_2\n-        38: invokevirtual #11                 // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n-        41: invokevirtual #12                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-        44: ldc           #5                  // String \\n\n-        46: invokevirtual #12                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        38: invokevirtual #40                 // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n+        41: invokevirtual #46                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        44: ldc           #23                 // String \\n\n+        46: invokevirtual #46                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         49: aload_3\n-        50: invokevirtual #12                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-        53: invokevirtual #13                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n-        56: invokestatic  #14                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+        50: invokevirtual #46                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        53: invokevirtual #50                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n+        56: invokestatic  #53                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n         59: areturn\n       LineNumberTable:\n         line 174: 0\n         line 175: 11\n         line 176: 18\n         line 177: 30\n       LocalVariableTable:\n@@ -175,34 +175,34 @@\n             0      60     0  this   Ldev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector;\n             0      60     1 contents   Ljava/util/List;\n             0      60     2 userMessage   Ldev/langchain4j/data/message/UserMessage;\n            30      30     3 joinedContents   Ljava/lang/String;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0      60     1 contents   Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n-    Signature: #40                          // (Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n+    Signature: #86                          // (Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n \n   private static java.lang.String lambda$inject$0(dev.langchain4j.rag.content.Content);\n     descriptor: (Ldev/langchain4j/rag/content/Content;)Ljava/lang/String;\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n-         1: invokevirtual #15                 // Method dev/langchain4j/rag/content/Content.textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n-         4: invokevirtual #16                 // Method dev/langchain4j/data/segment/TextSegment.text:()Ljava/lang/String;\n+         1: invokevirtual #57                 // Method dev/langchain4j/rag/content/Content.textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n+         4: invokevirtual #63                 // Method dev/langchain4j/data/segment/TextSegment.text:()Ljava/lang/String;\n          7: areturn\n       LineNumberTable:\n         line 175: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       8     0    it   Ldev/langchain4j/rag/content/Content;\n }\n SourceFile: \"DefaultRetrievalAugmentorTest.java\"\n-InnerClasses:\n-  static #26= #17 of #72;                 // TestContentInjector=class dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector of class dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n-  public static final #111= #110 of #113; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n BootstrapMethods:\n-  0: #51 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  0: #94 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #52 (Ljava/lang/Object;)Ljava/lang/Object;\n-      #53 REF_invokeStatic dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector.lambda$inject$0:(Ldev/langchain4j/rag/content/Content;)Ljava/lang/String;\n-      #54 (Ldev/langchain4j/rag/content/Content;)Ljava/lang/String;\n+      #101 (Ljava/lang/Object;)Ljava/lang/Object;\n+      #103 REF_invokeStatic dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector.lambda$inject$0:(Ldev/langchain4j/rag/content/Content;)Ljava/lang/String;\n+      #106 (Ldev/langchain4j/rag/content/Content;)Ljava/lang/String;\n+InnerClasses:\n+  static #110= #66 of #108;               // TestContentInjector=class dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector of class dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n+  public static final #115= #111 of #113; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n"}]}, {"source1": "dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever.class", "source2": "dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,74 +1,74 @@\n-  SHA-256 checksum 544e418685fa6194e9769fceda2d241cc06ca96312232a4ade900f8b460ceab3\n+  SHA-256 checksum b0734e17a01798a1872152a80ec574ab64abae1dc33c9783f012b743f8349715\n   Compiled from \"DefaultRetrievalAugmentorTest.java\"\n class dev.langchain4j.rag.DefaultRetrievalAugmentorTest$TestContentRetriever implements dev.langchain4j.rag.content.retriever.ContentRetriever\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #4                          // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever\n-  super_class: #5                         // java/lang/Object\n+  this_class: #14                         // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 1, methods: 2, attributes: 2\n Constant pool:\n-   #1 = Methodref          #5.#28         // java/lang/Object.\"<init>\":()V\n-   #2 = Methodref          #29.#30        // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-   #3 = Fieldref           #4.#31         // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever.contents:Ljava/util/List;\n-   #4 = Class              #33            // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever\n-   #5 = Class              #34            // java/lang/Object\n-   #6 = Class              #35            // dev/langchain4j/rag/content/retriever/ContentRetriever\n-   #7 = Utf8               contents\n-   #8 = Utf8               Ljava/util/List;\n-   #9 = Utf8               Signature\n-  #10 = Utf8               Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n-  #11 = Utf8               <init>\n-  #12 = Utf8               ([Ldev/langchain4j/rag/content/Content;)V\n-  #13 = Utf8               Code\n-  #14 = Utf8               LineNumberTable\n-  #15 = Utf8               LocalVariableTable\n-  #16 = Utf8               this\n-  #17 = Utf8               TestContentRetriever\n-  #18 = Utf8               InnerClasses\n-  #19 = Utf8               Ldev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever;\n-  #20 = Utf8               [Ldev/langchain4j/rag/content/Content;\n-  #21 = Utf8               retrieve\n-  #22 = Utf8               (Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n-  #23 = Utf8               query\n-  #24 = Utf8               Ldev/langchain4j/rag/query/Query;\n-  #25 = Utf8               (Ldev/langchain4j/rag/query/Query;)Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n-  #26 = Utf8               SourceFile\n-  #27 = Utf8               DefaultRetrievalAugmentorTest.java\n-  #28 = NameAndType        #11:#36        // \"<init>\":()V\n-  #29 = Class              #37            // java/util/Arrays\n-  #30 = NameAndType        #38:#39        // asList:([Ljava/lang/Object;)Ljava/util/List;\n-  #31 = NameAndType        #7:#8          // contents:Ljava/util/List;\n-  #32 = Class              #40            // dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n-  #33 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever\n-  #34 = Utf8               java/lang/Object\n-  #35 = Utf8               dev/langchain4j/rag/content/retriever/ContentRetriever\n-  #36 = Utf8               ()V\n-  #37 = Utf8               java/util/Arrays\n-  #38 = Utf8               asList\n-  #39 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n-  #40 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Methodref          #8.#9          // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+   #8 = Class              #10            // java/util/Arrays\n+   #9 = NameAndType        #11:#12        // asList:([Ljava/lang/Object;)Ljava/util/List;\n+  #10 = Utf8               java/util/Arrays\n+  #11 = Utf8               asList\n+  #12 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n+  #13 = Fieldref           #14.#15        // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever.contents:Ljava/util/List;\n+  #14 = Class              #16            // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever\n+  #15 = NameAndType        #17:#18        // contents:Ljava/util/List;\n+  #16 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever\n+  #17 = Utf8               contents\n+  #18 = Utf8               Ljava/util/List;\n+  #19 = Class              #20            // dev/langchain4j/rag/content/retriever/ContentRetriever\n+  #20 = Utf8               dev/langchain4j/rag/content/retriever/ContentRetriever\n+  #21 = Utf8               Signature\n+  #22 = Utf8               Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n+  #23 = Utf8               ([Ldev/langchain4j/rag/content/Content;)V\n+  #24 = Utf8               Code\n+  #25 = Utf8               LineNumberTable\n+  #26 = Utf8               LocalVariableTable\n+  #27 = Utf8               this\n+  #28 = Utf8               Ldev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever;\n+  #29 = Utf8               [Ldev/langchain4j/rag/content/Content;\n+  #30 = Utf8               retrieve\n+  #31 = Utf8               (Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n+  #32 = Utf8               query\n+  #33 = Utf8               Ldev/langchain4j/rag/query/Query;\n+  #34 = Utf8               (Ldev/langchain4j/rag/query/Query;)Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n+  #35 = Utf8               SourceFile\n+  #36 = Utf8               DefaultRetrievalAugmentorTest.java\n+  #37 = Utf8               InnerClasses\n+  #38 = Class              #39            // dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n+  #39 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n+  #40 = Utf8               TestContentRetriever\n {\n   private final java.util.List<dev.langchain4j.rag.content.Content> contents;\n     descriptor: Ljava/util/List;\n     flags: (0x0012) ACC_PRIVATE, ACC_FINAL\n-    Signature: #10                          // Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n+    Signature: #22                          // Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n \n   dev.langchain4j.rag.DefaultRetrievalAugmentorTest$TestContentRetriever(dev.langchain4j.rag.content.Content...);\n     descriptor: ([Ldev/langchain4j/rag/content/Content;)V\n     flags: (0x0080) ACC_VARARGS\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n          4: aload_0\n          5: aload_1\n-         6: invokestatic  #2                  // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-         9: putfield      #3                  // Field contents:Ljava/util/List;\n+         6: invokestatic  #7                  // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+         9: putfield      #13                 // Field contents:Ljava/util/List;\n         12: return\n       LineNumberTable:\n         line 148: 0\n         line 149: 4\n         line 150: 12\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n@@ -77,20 +77,20 @@\n \n   public java.util.List<dev.langchain4j.rag.content.Content> retrieve(dev.langchain4j.rag.query.Query);\n     descriptor: (Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=2, args_size=2\n          0: aload_0\n-         1: getfield      #3                  // Field contents:Ljava/util/List;\n+         1: getfield      #13                 // Field contents:Ljava/util/List;\n          4: areturn\n       LineNumberTable:\n         line 154: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       5     0  this   Ldev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever;\n             0       5     1 query   Ldev/langchain4j/rag/query/Query;\n-    Signature: #25                          // (Ldev/langchain4j/rag/query/Query;)Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n+    Signature: #34                          // (Ldev/langchain4j/rag/query/Query;)Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n }\n SourceFile: \"DefaultRetrievalAugmentorTest.java\"\n InnerClasses:\n-  static #17= #4 of #32;                  // TestContentRetriever=class dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever of class dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n+  static #40= #14 of #38;                 // TestContentRetriever=class dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever of class dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n"}]}, {"source1": "dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestQueryTransformer.class", "source2": "dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestQueryTransformer.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,74 +1,74 @@\n-  SHA-256 checksum 116864a8c75ef956f85cfd2f3181e408526f91d7db059c2aa2301cc0c14ce79e\n+  SHA-256 checksum ca89c38ed07c95607784c8bd15a0cd855b3a5264953ba0a0c20c156fd36baf5d\n   Compiled from \"DefaultRetrievalAugmentorTest.java\"\n class dev.langchain4j.rag.DefaultRetrievalAugmentorTest$TestQueryTransformer implements dev.langchain4j.rag.query.transformer.QueryTransformer\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #4                          // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestQueryTransformer\n-  super_class: #5                         // java/lang/Object\n+  this_class: #14                         // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestQueryTransformer\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 1, methods: 2, attributes: 2\n Constant pool:\n-   #1 = Methodref          #5.#28         // java/lang/Object.\"<init>\":()V\n-   #2 = Methodref          #29.#30        // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-   #3 = Fieldref           #4.#31         // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestQueryTransformer.queries:Ljava/util/List;\n-   #4 = Class              #33            // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestQueryTransformer\n-   #5 = Class              #34            // java/lang/Object\n-   #6 = Class              #35            // dev/langchain4j/rag/query/transformer/QueryTransformer\n-   #7 = Utf8               queries\n-   #8 = Utf8               Ljava/util/List;\n-   #9 = Utf8               Signature\n-  #10 = Utf8               Ljava/util/List<Ldev/langchain4j/rag/query/Query;>;\n-  #11 = Utf8               <init>\n-  #12 = Utf8               ([Ldev/langchain4j/rag/query/Query;)V\n-  #13 = Utf8               Code\n-  #14 = Utf8               LineNumberTable\n-  #15 = Utf8               LocalVariableTable\n-  #16 = Utf8               this\n-  #17 = Utf8               TestQueryTransformer\n-  #18 = Utf8               InnerClasses\n-  #19 = Utf8               Ldev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestQueryTransformer;\n-  #20 = Utf8               [Ldev/langchain4j/rag/query/Query;\n-  #21 = Utf8               transform\n-  #22 = Utf8               (Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n-  #23 = Utf8               query\n-  #24 = Utf8               Ldev/langchain4j/rag/query/Query;\n-  #25 = Utf8               (Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection<Ldev/langchain4j/rag/query/Query;>;\n-  #26 = Utf8               SourceFile\n-  #27 = Utf8               DefaultRetrievalAugmentorTest.java\n-  #28 = NameAndType        #11:#36        // \"<init>\":()V\n-  #29 = Class              #37            // java/util/Arrays\n-  #30 = NameAndType        #38:#39        // asList:([Ljava/lang/Object;)Ljava/util/List;\n-  #31 = NameAndType        #7:#8          // queries:Ljava/util/List;\n-  #32 = Class              #40            // dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n-  #33 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestQueryTransformer\n-  #34 = Utf8               java/lang/Object\n-  #35 = Utf8               dev/langchain4j/rag/query/transformer/QueryTransformer\n-  #36 = Utf8               ()V\n-  #37 = Utf8               java/util/Arrays\n-  #38 = Utf8               asList\n-  #39 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n-  #40 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Methodref          #8.#9          // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+   #8 = Class              #10            // java/util/Arrays\n+   #9 = NameAndType        #11:#12        // asList:([Ljava/lang/Object;)Ljava/util/List;\n+  #10 = Utf8               java/util/Arrays\n+  #11 = Utf8               asList\n+  #12 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n+  #13 = Fieldref           #14.#15        // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestQueryTransformer.queries:Ljava/util/List;\n+  #14 = Class              #16            // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestQueryTransformer\n+  #15 = NameAndType        #17:#18        // queries:Ljava/util/List;\n+  #16 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestQueryTransformer\n+  #17 = Utf8               queries\n+  #18 = Utf8               Ljava/util/List;\n+  #19 = Class              #20            // dev/langchain4j/rag/query/transformer/QueryTransformer\n+  #20 = Utf8               dev/langchain4j/rag/query/transformer/QueryTransformer\n+  #21 = Utf8               Signature\n+  #22 = Utf8               Ljava/util/List<Ldev/langchain4j/rag/query/Query;>;\n+  #23 = Utf8               ([Ldev/langchain4j/rag/query/Query;)V\n+  #24 = Utf8               Code\n+  #25 = Utf8               LineNumberTable\n+  #26 = Utf8               LocalVariableTable\n+  #27 = Utf8               this\n+  #28 = Utf8               Ldev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestQueryTransformer;\n+  #29 = Utf8               [Ldev/langchain4j/rag/query/Query;\n+  #30 = Utf8               transform\n+  #31 = Utf8               (Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+  #32 = Utf8               query\n+  #33 = Utf8               Ldev/langchain4j/rag/query/Query;\n+  #34 = Utf8               (Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection<Ldev/langchain4j/rag/query/Query;>;\n+  #35 = Utf8               SourceFile\n+  #36 = Utf8               DefaultRetrievalAugmentorTest.java\n+  #37 = Utf8               InnerClasses\n+  #38 = Class              #39            // dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n+  #39 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n+  #40 = Utf8               TestQueryTransformer\n {\n   private final java.util.List<dev.langchain4j.rag.query.Query> queries;\n     descriptor: Ljava/util/List;\n     flags: (0x0012) ACC_PRIVATE, ACC_FINAL\n-    Signature: #10                          // Ljava/util/List<Ldev/langchain4j/rag/query/Query;>;\n+    Signature: #22                          // Ljava/util/List<Ldev/langchain4j/rag/query/Query;>;\n \n   dev.langchain4j.rag.DefaultRetrievalAugmentorTest$TestQueryTransformer(dev.langchain4j.rag.query.Query...);\n     descriptor: ([Ldev/langchain4j/rag/query/Query;)V\n     flags: (0x0080) ACC_VARARGS\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n          4: aload_0\n          5: aload_1\n-         6: invokestatic  #2                  // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-         9: putfield      #3                  // Field queries:Ljava/util/List;\n+         6: invokestatic  #7                  // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+         9: putfield      #13                 // Field queries:Ljava/util/List;\n         12: return\n       LineNumberTable:\n         line 134: 0\n         line 135: 4\n         line 136: 12\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n@@ -77,20 +77,20 @@\n \n   public java.util.Collection<dev.langchain4j.rag.query.Query> transform(dev.langchain4j.rag.query.Query);\n     descriptor: (Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=2, args_size=2\n          0: aload_0\n-         1: getfield      #3                  // Field queries:Ljava/util/List;\n+         1: getfield      #13                 // Field queries:Ljava/util/List;\n          4: areturn\n       LineNumberTable:\n         line 140: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       5     0  this   Ldev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestQueryTransformer;\n             0       5     1 query   Ldev/langchain4j/rag/query/Query;\n-    Signature: #25                          // (Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection<Ldev/langchain4j/rag/query/Query;>;\n+    Signature: #34                          // (Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection<Ldev/langchain4j/rag/query/Query;>;\n }\n SourceFile: \"DefaultRetrievalAugmentorTest.java\"\n InnerClasses:\n-  static #17= #4 of #32;                  // TestQueryTransformer=class dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestQueryTransformer of class dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n+  static #40= #14 of #38;                 // TestQueryTransformer=class dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestQueryTransformer of class dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n"}]}, {"source1": "dev/langchain4j/rag/DefaultRetrievalAugmentorTest.class", "source2": "dev/langchain4j/rag/DefaultRetrievalAugmentorTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,276 +1,276 @@\n-  SHA-256 checksum e6ffa5258073946b905011e60562c6b0f49a4d0481fbe5b9828a0b67a8afd0b7\n+  SHA-256 checksum 408e246d0214b49a6672430d2b1a2db1cc0b929faa0a90bcd9eaf415ebae4f31\n   Compiled from \"DefaultRetrievalAugmentorTest.java\"\n class dev.langchain4j.rag.DefaultRetrievalAugmentorTest\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #63                         // dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n-  super_class: #46                        // java/lang/Object\n+  this_class: #210                        // dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 0, methods: 3, attributes: 2\n Constant pool:\n-    #1 = Methodref          #46.#118      // java/lang/Object.\"<init>\":()V\n-    #2 = String             #119          // query 1\n-    #3 = Methodref          #6.#120       // dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-    #4 = String             #121          // query 2\n-    #5 = Class              #122          // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestQueryTransformer\n-    #6 = Class              #123          // dev/langchain4j/rag/query/Query\n-    #7 = Methodref          #5.#124       // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestQueryTransformer.\"<init>\":([Ldev/langchain4j/rag/query/Query;)V\n-    #8 = Methodref          #125.#126     // org/mockito/Mockito.spy:(Ljava/lang/Object;)Ljava/lang/Object;\n-    #9 = Class              #127          // dev/langchain4j/rag/query/transformer/QueryTransformer\n-   #10 = String             #128          // content 1\n-   #11 = Methodref          #14.#129      // dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n-   #12 = String             #130          // content 2\n-   #13 = Class              #131          // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever\n-   #14 = Class              #132          // dev/langchain4j/rag/content/Content\n-   #15 = Methodref          #13.#133      // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever.\"<init>\":([Ldev/langchain4j/rag/content/Content;)V\n-   #16 = Class              #134          // dev/langchain4j/rag/content/retriever/ContentRetriever\n-   #17 = String             #135          // content 3\n-   #18 = String             #136          // content 4\n-   #19 = Class              #137          // dev/langchain4j/rag/query/router/DefaultQueryRouter\n-   #20 = Methodref          #19.#138      // dev/langchain4j/rag/query/router/DefaultQueryRouter.\"<init>\":([Ldev/langchain4j/rag/content/retriever/ContentRetriever;)V\n-   #21 = Class              #139          // dev/langchain4j/rag/query/router/QueryRouter\n-   #22 = Class              #140          // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentAggregator\n-   #23 = Methodref          #22.#118      // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentAggregator.\"<init>\":()V\n-   #24 = Class              #141          // dev/langchain4j/rag/content/aggregator/ContentAggregator\n-   #25 = Class              #142          // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector\n-   #26 = Methodref          #25.#118      // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector.\"<init>\":()V\n-   #27 = Class              #143          // dev/langchain4j/rag/content/injector/ContentInjector\n-   #28 = Methodref          #144.#145     // dev/langchain4j/rag/DefaultRetrievalAugmentor.builder:()Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n-   #29 = Methodref          #146.#147     // dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder.queryTransformer:(Ldev/langchain4j/rag/query/transformer/QueryTransformer;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n-   #30 = Methodref          #146.#148     // dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder.queryRouter:(Ldev/langchain4j/rag/query/router/QueryRouter;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n-   #31 = Methodref          #146.#149     // dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder.contentAggregator:(Ldev/langchain4j/rag/content/aggregator/ContentAggregator;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n-   #32 = Methodref          #146.#150     // dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder.contentInjector:(Ldev/langchain4j/rag/content/injector/ContentInjector;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n-   #33 = Methodref          #146.#151     // dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder.executor:(Ljava/util/concurrent/Executor;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n-   #34 = Methodref          #146.#152     // dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder.build:()Ldev/langchain4j/rag/DefaultRetrievalAugmentor;\n-   #35 = String             #153          // query\n-   #36 = Methodref          #154.#155     // dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-   #37 = Methodref          #156.#157     // dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n-   #38 = InterfaceMethodref #158.#159     // dev/langchain4j/rag/RetrievalAugmentor.augment:(Ldev/langchain4j/data/message/UserMessage;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/data/message/UserMessage;\n-   #39 = Methodref          #154.#160     // dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n-   #40 = Methodref          #161.#162     // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #41 = String             #163          // query\\ncontent 1\\ncontent 2\\ncontent 3\\ncontent 4\\ncontent 1\\ncontent 2\\ncontent 3\\ncontent 4\n-   #42 = Methodref          #164.#165     // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #43 = Methodref          #125.#166     // org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-   #44 = Methodref          #6.#167       // dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n-   #45 = InterfaceMethodref #9.#168       // dev/langchain4j/rag/query/transformer/QueryTransformer.transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n-   #46 = Class              #169          // java/lang/Object\n-   #47 = Methodref          #125.#170     // org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n-   #48 = InterfaceMethodref #21.#171      // dev/langchain4j/rag/query/router/QueryRouter.route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n-   #49 = InterfaceMethodref #16.#172      // dev/langchain4j/rag/content/retriever/ContentRetriever.retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n-   #50 = Class              #173          // java/util/HashMap\n-   #51 = Methodref          #50.#118      // java/util/HashMap.\"<init>\":()V\n-   #52 = Class              #174          // java/util/List\n-   #53 = Methodref          #175.#176     // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-   #54 = InterfaceMethodref #177.#178     // java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-   #55 = InterfaceMethodref #24.#179      // dev/langchain4j/rag/content/aggregator/ContentAggregator.aggregate:(Ljava/util/Map;)Ljava/util/List;\n-   #56 = InterfaceMethodref #27.#180      // dev/langchain4j/rag/content/injector/ContentInjector.inject:(Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n-   #57 = InterfaceMethodref #181.#182     // java/util/stream/Stream.builder:()Ljava/util/stream/Stream$Builder;\n-   #58 = Methodref          #183.#184     // java/util/concurrent/Executors.newCachedThreadPool:()Ljava/util/concurrent/ExecutorService;\n-   #59 = InterfaceMethodref #185.#186     // org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-   #60 = InterfaceMethodref #187.#188     // java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n-   #61 = Methodref          #183.#189     // java/util/concurrent/Executors.newFixedThreadPool:(I)Ljava/util/concurrent/ExecutorService;\n-   #62 = InterfaceMethodref #187.#190     // java/util/stream/Stream$Builder.build:()Ljava/util/stream/Stream;\n-   #63 = Class              #191          // dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n-   #64 = Utf8               TestContentInjector\n-   #65 = Utf8               InnerClasses\n-   #66 = Utf8               TestContentAggregator\n-   #67 = Utf8               TestContentRetriever\n-   #68 = Utf8               TestQueryTransformer\n-   #69 = Utf8               <init>\n-   #70 = Utf8               ()V\n-   #71 = Utf8               Code\n-   #72 = Utf8               LineNumberTable\n-   #73 = Utf8               LocalVariableTable\n-   #74 = Utf8               this\n-   #75 = Utf8               Ldev/langchain4j/rag/DefaultRetrievalAugmentorTest;\n-   #76 = Utf8               should_augment_user_message\n-   #77 = Utf8               (Ljava/util/concurrent/Executor;)V\n-   #78 = Utf8               executor\n-   #79 = Utf8               Ljava/util/concurrent/Executor;\n-   #80 = Utf8               query1\n-   #81 = Utf8               Ldev/langchain4j/rag/query/Query;\n-   #82 = Utf8               query2\n-   #83 = Utf8               queryTransformer\n-   #84 = Utf8               Ldev/langchain4j/rag/query/transformer/QueryTransformer;\n-   #85 = Utf8               content1\n-   #86 = Utf8               Ldev/langchain4j/rag/content/Content;\n-   #87 = Utf8               content2\n-   #88 = Utf8               contentRetriever1\n-   #89 = Utf8               Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n-   #90 = Utf8               content3\n-   #91 = Utf8               content4\n-   #92 = Utf8               contentRetriever2\n-   #93 = Utf8               queryRouter\n-   #94 = Utf8               Ldev/langchain4j/rag/query/router/QueryRouter;\n-   #95 = Utf8               contentAggregator\n-   #96 = Utf8               Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n-   #97 = Utf8               contentInjector\n-   #98 = Utf8               Ldev/langchain4j/rag/content/injector/ContentInjector;\n-   #99 = Utf8               retrievalAugmentor\n-  #100 = Utf8               Ldev/langchain4j/rag/RetrievalAugmentor;\n-  #101 = Utf8               userMessage\n-  #102 = Utf8               Ldev/langchain4j/data/message/UserMessage;\n-  #103 = Utf8               metadata\n-  #104 = Utf8               Ldev/langchain4j/rag/query/Metadata;\n-  #105 = Utf8               augmented\n-  #106 = Utf8               queryToContents\n-  #107 = Utf8               Ljava/util/Map;\n-  #108 = Utf8               LocalVariableTypeTable\n-  #109 = Utf8               Ljava/util/Map<Ldev/langchain4j/rag/query/Query;Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;>;\n-  #110 = Utf8               RuntimeVisibleAnnotations\n-  #111 = Utf8               Lorg/junit/jupiter/params/ParameterizedTest;\n-  #112 = Utf8               Lorg/junit/jupiter/params/provider/MethodSource;\n-  #113 = Utf8               ()Ljava/util/stream/Stream;\n-  #114 = Utf8               Signature\n-  #115 = Utf8               ()Ljava/util/stream/Stream<Lorg/junit/jupiter/params/provider/Arguments;>;\n-  #116 = Utf8               SourceFile\n-  #117 = Utf8               DefaultRetrievalAugmentorTest.java\n-  #118 = NameAndType        #69:#70       // \"<init>\":()V\n-  #119 = Utf8               query 1\n-  #120 = NameAndType        #192:#193     // from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-  #121 = Utf8               query 2\n-  #122 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestQueryTransformer\n-  #123 = Utf8               dev/langchain4j/rag/query/Query\n-  #124 = NameAndType        #69:#194      // \"<init>\":([Ldev/langchain4j/rag/query/Query;)V\n-  #125 = Class              #195          // org/mockito/Mockito\n-  #126 = NameAndType        #196:#197     // spy:(Ljava/lang/Object;)Ljava/lang/Object;\n-  #127 = Utf8               dev/langchain4j/rag/query/transformer/QueryTransformer\n-  #128 = Utf8               content 1\n-  #129 = NameAndType        #192:#198     // from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n-  #130 = Utf8               content 2\n-  #131 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever\n-  #132 = Utf8               dev/langchain4j/rag/content/Content\n-  #133 = NameAndType        #69:#199      // \"<init>\":([Ldev/langchain4j/rag/content/Content;)V\n-  #134 = Utf8               dev/langchain4j/rag/content/retriever/ContentRetriever\n-  #135 = Utf8               content 3\n-  #136 = Utf8               content 4\n-  #137 = Utf8               dev/langchain4j/rag/query/router/DefaultQueryRouter\n-  #138 = NameAndType        #69:#200      // \"<init>\":([Ldev/langchain4j/rag/content/retriever/ContentRetriever;)V\n-  #139 = Utf8               dev/langchain4j/rag/query/router/QueryRouter\n-  #140 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentAggregator\n-  #141 = Utf8               dev/langchain4j/rag/content/aggregator/ContentAggregator\n-  #142 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector\n-  #143 = Utf8               dev/langchain4j/rag/content/injector/ContentInjector\n-  #144 = Class              #201          // dev/langchain4j/rag/DefaultRetrievalAugmentor\n-  #145 = NameAndType        #202:#204     // builder:()Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n-  #146 = Class              #205          // dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder\n-  #147 = NameAndType        #83:#206      // queryTransformer:(Ldev/langchain4j/rag/query/transformer/QueryTransformer;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n-  #148 = NameAndType        #93:#207      // queryRouter:(Ldev/langchain4j/rag/query/router/QueryRouter;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n-  #149 = NameAndType        #95:#208      // contentAggregator:(Ldev/langchain4j/rag/content/aggregator/ContentAggregator;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n-  #150 = NameAndType        #97:#209      // contentInjector:(Ldev/langchain4j/rag/content/injector/ContentInjector;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n-  #151 = NameAndType        #78:#210      // executor:(Ljava/util/concurrent/Executor;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n-  #152 = NameAndType        #211:#212     // build:()Ldev/langchain4j/rag/DefaultRetrievalAugmentor;\n-  #153 = Utf8               query\n-  #154 = Class              #213          // dev/langchain4j/data/message/UserMessage\n-  #155 = NameAndType        #192:#214     // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-  #156 = Class              #215          // dev/langchain4j/rag/query/Metadata\n-  #157 = NameAndType        #192:#216     // from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n-  #158 = Class              #217          // dev/langchain4j/rag/RetrievalAugmentor\n-  #159 = NameAndType        #218:#219     // augment:(Ldev/langchain4j/data/message/UserMessage;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/data/message/UserMessage;\n-  #160 = NameAndType        #220:#221     // text:()Ljava/lang/String;\n-  #161 = Class              #222          // org/assertj/core/api/Assertions\n-  #162 = NameAndType        #223:#224     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #163 = Utf8               query\\ncontent 1\\ncontent 2\\ncontent 3\\ncontent 4\\ncontent 1\\ncontent 2\\ncontent 3\\ncontent 4\n-  #164 = Class              #225          // org/assertj/core/api/AbstractStringAssert\n-  #165 = NameAndType        #226:#224     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #166 = NameAndType        #227:#197     // verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-  #167 = NameAndType        #192:#228     // from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n-  #168 = NameAndType        #229:#230     // transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n-  #169 = Utf8               java/lang/Object\n-  #170 = NameAndType        #231:#232     // verifyNoMoreInteractions:([Ljava/lang/Object;)V\n-  #171 = NameAndType        #233:#230     // route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n-  #172 = NameAndType        #234:#235     // retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n-  #173 = Utf8               java/util/HashMap\n-  #174 = Utf8               java/util/List\n-  #175 = Class              #236          // java/util/Arrays\n-  #176 = NameAndType        #237:#238     // asList:([Ljava/lang/Object;)Ljava/util/List;\n-  #177 = Class              #239          // java/util/Map\n-  #178 = NameAndType        #240:#241     // put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-  #179 = NameAndType        #242:#243     // aggregate:(Ljava/util/Map;)Ljava/util/List;\n-  #180 = NameAndType        #244:#245     // inject:(Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n-  #181 = Class              #246          // java/util/stream/Stream\n-  #182 = NameAndType        #202:#248     // builder:()Ljava/util/stream/Stream$Builder;\n-  #183 = Class              #249          // java/util/concurrent/Executors\n-  #184 = NameAndType        #250:#251     // newCachedThreadPool:()Ljava/util/concurrent/ExecutorService;\n-  #185 = Class              #252          // org/junit/jupiter/params/provider/Arguments\n-  #186 = NameAndType        #253:#254     // of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-  #187 = Class              #255          // java/util/stream/Stream$Builder\n-  #188 = NameAndType        #256:#257     // add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n-  #189 = NameAndType        #258:#259     // newFixedThreadPool:(I)Ljava/util/concurrent/ExecutorService;\n-  #190 = NameAndType        #211:#113     // build:()Ljava/util/stream/Stream;\n-  #191 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n-  #192 = Utf8               from\n-  #193 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-  #194 = Utf8               ([Ldev/langchain4j/rag/query/Query;)V\n-  #195 = Utf8               org/mockito/Mockito\n-  #196 = Utf8               spy\n-  #197 = Utf8               (Ljava/lang/Object;)Ljava/lang/Object;\n-  #198 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n-  #199 = Utf8               ([Ldev/langchain4j/rag/content/Content;)V\n-  #200 = Utf8               ([Ldev/langchain4j/rag/content/retriever/ContentRetriever;)V\n-  #201 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentor\n-  #202 = Utf8               builder\n-  #203 = Utf8               DefaultRetrievalAugmentorBuilder\n-  #204 = Utf8               ()Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n-  #205 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder\n-  #206 = Utf8               (Ldev/langchain4j/rag/query/transformer/QueryTransformer;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n-  #207 = Utf8               (Ldev/langchain4j/rag/query/router/QueryRouter;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n-  #208 = Utf8               (Ldev/langchain4j/rag/content/aggregator/ContentAggregator;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n-  #209 = Utf8               (Ldev/langchain4j/rag/content/injector/ContentInjector;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n-  #210 = Utf8               (Ljava/util/concurrent/Executor;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n-  #211 = Utf8               build\n-  #212 = Utf8               ()Ldev/langchain4j/rag/DefaultRetrievalAugmentor;\n-  #213 = Utf8               dev/langchain4j/data/message/UserMessage\n-  #214 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-  #215 = Utf8               dev/langchain4j/rag/query/Metadata\n-  #216 = Utf8               (Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n-  #217 = Utf8               dev/langchain4j/rag/RetrievalAugmentor\n-  #218 = Utf8               augment\n-  #219 = Utf8               (Ldev/langchain4j/data/message/UserMessage;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/data/message/UserMessage;\n-  #220 = Utf8               text\n-  #221 = Utf8               ()Ljava/lang/String;\n-  #222 = Utf8               org/assertj/core/api/Assertions\n-  #223 = Utf8               assertThat\n-  #224 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #225 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #226 = Utf8               isEqualTo\n-  #227 = Utf8               verify\n-  #228 = Utf8               (Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n-  #229 = Utf8               transform\n-  #230 = Utf8               (Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n-  #231 = Utf8               verifyNoMoreInteractions\n-  #232 = Utf8               ([Ljava/lang/Object;)V\n-  #233 = Utf8               route\n-  #234 = Utf8               retrieve\n-  #235 = Utf8               (Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n-  #236 = Utf8               java/util/Arrays\n-  #237 = Utf8               asList\n-  #238 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n-  #239 = Utf8               java/util/Map\n-  #240 = Utf8               put\n-  #241 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-  #242 = Utf8               aggregate\n-  #243 = Utf8               (Ljava/util/Map;)Ljava/util/List;\n-  #244 = Utf8               inject\n-  #245 = Utf8               (Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n-  #246 = Utf8               java/util/stream/Stream\n-  #247 = Utf8               Builder\n-  #248 = Utf8               ()Ljava/util/stream/Stream$Builder;\n-  #249 = Utf8               java/util/concurrent/Executors\n-  #250 = Utf8               newCachedThreadPool\n-  #251 = Utf8               ()Ljava/util/concurrent/ExecutorService;\n-  #252 = Utf8               org/junit/jupiter/params/provider/Arguments\n-  #253 = Utf8               of\n-  #254 = Utf8               ([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-  #255 = Utf8               java/util/stream/Stream$Builder\n-  #256 = Utf8               add\n-  #257 = Utf8               (Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n-  #258 = Utf8               newFixedThreadPool\n-  #259 = Utf8               (I)Ljava/util/concurrent/ExecutorService;\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = String             #8            // query 1\n+    #8 = Utf8               query 1\n+    #9 = Methodref          #10.#11       // dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+   #10 = Class              #12           // dev/langchain4j/rag/query/Query\n+   #11 = NameAndType        #13:#14       // from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+   #12 = Utf8               dev/langchain4j/rag/query/Query\n+   #13 = Utf8               from\n+   #14 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+   #15 = String             #16           // query 2\n+   #16 = Utf8               query 2\n+   #17 = Class              #18           // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestQueryTransformer\n+   #18 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestQueryTransformer\n+   #19 = Methodref          #17.#20       // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestQueryTransformer.\"<init>\":([Ldev/langchain4j/rag/query/Query;)V\n+   #20 = NameAndType        #5:#21        // \"<init>\":([Ldev/langchain4j/rag/query/Query;)V\n+   #21 = Utf8               ([Ldev/langchain4j/rag/query/Query;)V\n+   #22 = Methodref          #23.#24       // org/mockito/Mockito.spy:(Ljava/lang/Object;)Ljava/lang/Object;\n+   #23 = Class              #25           // org/mockito/Mockito\n+   #24 = NameAndType        #26:#27       // spy:(Ljava/lang/Object;)Ljava/lang/Object;\n+   #25 = Utf8               org/mockito/Mockito\n+   #26 = Utf8               spy\n+   #27 = Utf8               (Ljava/lang/Object;)Ljava/lang/Object;\n+   #28 = Class              #29           // dev/langchain4j/rag/query/transformer/QueryTransformer\n+   #29 = Utf8               dev/langchain4j/rag/query/transformer/QueryTransformer\n+   #30 = String             #31           // content 1\n+   #31 = Utf8               content 1\n+   #32 = Methodref          #33.#34       // dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+   #33 = Class              #35           // dev/langchain4j/rag/content/Content\n+   #34 = NameAndType        #13:#36       // from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+   #35 = Utf8               dev/langchain4j/rag/content/Content\n+   #36 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+   #37 = String             #38           // content 2\n+   #38 = Utf8               content 2\n+   #39 = Class              #40           // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever\n+   #40 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever\n+   #41 = Methodref          #39.#42       // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever.\"<init>\":([Ldev/langchain4j/rag/content/Content;)V\n+   #42 = NameAndType        #5:#43        // \"<init>\":([Ldev/langchain4j/rag/content/Content;)V\n+   #43 = Utf8               ([Ldev/langchain4j/rag/content/Content;)V\n+   #44 = Class              #45           // dev/langchain4j/rag/content/retriever/ContentRetriever\n+   #45 = Utf8               dev/langchain4j/rag/content/retriever/ContentRetriever\n+   #46 = String             #47           // content 3\n+   #47 = Utf8               content 3\n+   #48 = String             #49           // content 4\n+   #49 = Utf8               content 4\n+   #50 = Class              #51           // dev/langchain4j/rag/query/router/DefaultQueryRouter\n+   #51 = Utf8               dev/langchain4j/rag/query/router/DefaultQueryRouter\n+   #52 = Methodref          #50.#53       // dev/langchain4j/rag/query/router/DefaultQueryRouter.\"<init>\":([Ldev/langchain4j/rag/content/retriever/ContentRetriever;)V\n+   #53 = NameAndType        #5:#54        // \"<init>\":([Ldev/langchain4j/rag/content/retriever/ContentRetriever;)V\n+   #54 = Utf8               ([Ldev/langchain4j/rag/content/retriever/ContentRetriever;)V\n+   #55 = Class              #56           // dev/langchain4j/rag/query/router/QueryRouter\n+   #56 = Utf8               dev/langchain4j/rag/query/router/QueryRouter\n+   #57 = Class              #58           // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentAggregator\n+   #58 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentAggregator\n+   #59 = Methodref          #57.#3        // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentAggregator.\"<init>\":()V\n+   #60 = Class              #61           // dev/langchain4j/rag/content/aggregator/ContentAggregator\n+   #61 = Utf8               dev/langchain4j/rag/content/aggregator/ContentAggregator\n+   #62 = Class              #63           // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector\n+   #63 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector\n+   #64 = Methodref          #62.#3        // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector.\"<init>\":()V\n+   #65 = Class              #66           // dev/langchain4j/rag/content/injector/ContentInjector\n+   #66 = Utf8               dev/langchain4j/rag/content/injector/ContentInjector\n+   #67 = Methodref          #68.#69       // dev/langchain4j/rag/DefaultRetrievalAugmentor.builder:()Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n+   #68 = Class              #70           // dev/langchain4j/rag/DefaultRetrievalAugmentor\n+   #69 = NameAndType        #71:#72       // builder:()Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n+   #70 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentor\n+   #71 = Utf8               builder\n+   #72 = Utf8               ()Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n+   #73 = Methodref          #74.#75       // dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder.queryTransformer:(Ldev/langchain4j/rag/query/transformer/QueryTransformer;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n+   #74 = Class              #76           // dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder\n+   #75 = NameAndType        #77:#78       // queryTransformer:(Ldev/langchain4j/rag/query/transformer/QueryTransformer;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n+   #76 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder\n+   #77 = Utf8               queryTransformer\n+   #78 = Utf8               (Ldev/langchain4j/rag/query/transformer/QueryTransformer;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n+   #79 = Methodref          #74.#80       // dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder.queryRouter:(Ldev/langchain4j/rag/query/router/QueryRouter;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n+   #80 = NameAndType        #81:#82       // queryRouter:(Ldev/langchain4j/rag/query/router/QueryRouter;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n+   #81 = Utf8               queryRouter\n+   #82 = Utf8               (Ldev/langchain4j/rag/query/router/QueryRouter;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n+   #83 = Methodref          #74.#84       // dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder.contentAggregator:(Ldev/langchain4j/rag/content/aggregator/ContentAggregator;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n+   #84 = NameAndType        #85:#86       // contentAggregator:(Ldev/langchain4j/rag/content/aggregator/ContentAggregator;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n+   #85 = Utf8               contentAggregator\n+   #86 = Utf8               (Ldev/langchain4j/rag/content/aggregator/ContentAggregator;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n+   #87 = Methodref          #74.#88       // dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder.contentInjector:(Ldev/langchain4j/rag/content/injector/ContentInjector;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n+   #88 = NameAndType        #89:#90       // contentInjector:(Ldev/langchain4j/rag/content/injector/ContentInjector;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n+   #89 = Utf8               contentInjector\n+   #90 = Utf8               (Ldev/langchain4j/rag/content/injector/ContentInjector;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n+   #91 = Methodref          #74.#92       // dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder.executor:(Ljava/util/concurrent/Executor;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n+   #92 = NameAndType        #93:#94       // executor:(Ljava/util/concurrent/Executor;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n+   #93 = Utf8               executor\n+   #94 = Utf8               (Ljava/util/concurrent/Executor;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n+   #95 = Methodref          #74.#96       // dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder.build:()Ldev/langchain4j/rag/DefaultRetrievalAugmentor;\n+   #96 = NameAndType        #97:#98       // build:()Ldev/langchain4j/rag/DefaultRetrievalAugmentor;\n+   #97 = Utf8               build\n+   #98 = Utf8               ()Ldev/langchain4j/rag/DefaultRetrievalAugmentor;\n+   #99 = String             #100          // query\n+  #100 = Utf8               query\n+  #101 = Methodref          #102.#103     // dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+  #102 = Class              #104          // dev/langchain4j/data/message/UserMessage\n+  #103 = NameAndType        #13:#105      // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+  #104 = Utf8               dev/langchain4j/data/message/UserMessage\n+  #105 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+  #106 = Methodref          #107.#108     // dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n+  #107 = Class              #109          // dev/langchain4j/rag/query/Metadata\n+  #108 = NameAndType        #13:#110      // from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n+  #109 = Utf8               dev/langchain4j/rag/query/Metadata\n+  #110 = Utf8               (Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n+  #111 = InterfaceMethodref #112.#113     // dev/langchain4j/rag/RetrievalAugmentor.augment:(Ldev/langchain4j/data/message/UserMessage;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/data/message/UserMessage;\n+  #112 = Class              #114          // dev/langchain4j/rag/RetrievalAugmentor\n+  #113 = NameAndType        #115:#116     // augment:(Ldev/langchain4j/data/message/UserMessage;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/data/message/UserMessage;\n+  #114 = Utf8               dev/langchain4j/rag/RetrievalAugmentor\n+  #115 = Utf8               augment\n+  #116 = Utf8               (Ldev/langchain4j/data/message/UserMessage;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/data/message/UserMessage;\n+  #117 = Methodref          #102.#118     // dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n+  #118 = NameAndType        #119:#120     // text:()Ljava/lang/String;\n+  #119 = Utf8               text\n+  #120 = Utf8               ()Ljava/lang/String;\n+  #121 = Methodref          #122.#123     // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #122 = Class              #124          // org/assertj/core/api/Assertions\n+  #123 = NameAndType        #125:#126     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #124 = Utf8               org/assertj/core/api/Assertions\n+  #125 = Utf8               assertThat\n+  #126 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #127 = String             #128          // query\\ncontent 1\\ncontent 2\\ncontent 3\\ncontent 4\\ncontent 1\\ncontent 2\\ncontent 3\\ncontent 4\n+  #128 = Utf8               query\\ncontent 1\\ncontent 2\\ncontent 3\\ncontent 4\\ncontent 1\\ncontent 2\\ncontent 3\\ncontent 4\n+  #129 = Methodref          #130.#131     // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #130 = Class              #132          // org/assertj/core/api/AbstractStringAssert\n+  #131 = NameAndType        #133:#126     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #132 = Utf8               org/assertj/core/api/AbstractStringAssert\n+  #133 = Utf8               isEqualTo\n+  #134 = Methodref          #23.#135      // org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+  #135 = NameAndType        #136:#27      // verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+  #136 = Utf8               verify\n+  #137 = Methodref          #10.#138      // dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n+  #138 = NameAndType        #13:#139      // from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n+  #139 = Utf8               (Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n+  #140 = InterfaceMethodref #28.#141      // dev/langchain4j/rag/query/transformer/QueryTransformer.transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+  #141 = NameAndType        #142:#143     // transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+  #142 = Utf8               transform\n+  #143 = Utf8               (Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+  #144 = Methodref          #23.#145      // org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+  #145 = NameAndType        #146:#147     // verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+  #146 = Utf8               verifyNoMoreInteractions\n+  #147 = Utf8               ([Ljava/lang/Object;)V\n+  #148 = InterfaceMethodref #55.#149      // dev/langchain4j/rag/query/router/QueryRouter.route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+  #149 = NameAndType        #150:#143     // route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+  #150 = Utf8               route\n+  #151 = InterfaceMethodref #44.#152      // dev/langchain4j/rag/content/retriever/ContentRetriever.retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n+  #152 = NameAndType        #153:#154     // retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n+  #153 = Utf8               retrieve\n+  #154 = Utf8               (Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n+  #155 = Class              #156          // java/util/HashMap\n+  #156 = Utf8               java/util/HashMap\n+  #157 = Methodref          #155.#3       // java/util/HashMap.\"<init>\":()V\n+  #158 = Class              #159          // java/util/List\n+  #159 = Utf8               java/util/List\n+  #160 = Methodref          #161.#162     // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+  #161 = Class              #163          // java/util/Arrays\n+  #162 = NameAndType        #164:#165     // asList:([Ljava/lang/Object;)Ljava/util/List;\n+  #163 = Utf8               java/util/Arrays\n+  #164 = Utf8               asList\n+  #165 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n+  #166 = InterfaceMethodref #167.#168     // java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+  #167 = Class              #169          // java/util/Map\n+  #168 = NameAndType        #170:#171     // put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+  #169 = Utf8               java/util/Map\n+  #170 = Utf8               put\n+  #171 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+  #172 = InterfaceMethodref #60.#173      // dev/langchain4j/rag/content/aggregator/ContentAggregator.aggregate:(Ljava/util/Map;)Ljava/util/List;\n+  #173 = NameAndType        #174:#175     // aggregate:(Ljava/util/Map;)Ljava/util/List;\n+  #174 = Utf8               aggregate\n+  #175 = Utf8               (Ljava/util/Map;)Ljava/util/List;\n+  #176 = InterfaceMethodref #65.#177      // dev/langchain4j/rag/content/injector/ContentInjector.inject:(Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n+  #177 = NameAndType        #178:#179     // inject:(Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n+  #178 = Utf8               inject\n+  #179 = Utf8               (Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n+  #180 = InterfaceMethodref #181.#182     // java/util/stream/Stream.builder:()Ljava/util/stream/Stream$Builder;\n+  #181 = Class              #183          // java/util/stream/Stream\n+  #182 = NameAndType        #71:#184      // builder:()Ljava/util/stream/Stream$Builder;\n+  #183 = Utf8               java/util/stream/Stream\n+  #184 = Utf8               ()Ljava/util/stream/Stream$Builder;\n+  #185 = Methodref          #186.#187     // java/util/concurrent/Executors.newCachedThreadPool:()Ljava/util/concurrent/ExecutorService;\n+  #186 = Class              #188          // java/util/concurrent/Executors\n+  #187 = NameAndType        #189:#190     // newCachedThreadPool:()Ljava/util/concurrent/ExecutorService;\n+  #188 = Utf8               java/util/concurrent/Executors\n+  #189 = Utf8               newCachedThreadPool\n+  #190 = Utf8               ()Ljava/util/concurrent/ExecutorService;\n+  #191 = InterfaceMethodref #192.#193     // org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+  #192 = Class              #194          // org/junit/jupiter/params/provider/Arguments\n+  #193 = NameAndType        #195:#196     // of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+  #194 = Utf8               org/junit/jupiter/params/provider/Arguments\n+  #195 = Utf8               of\n+  #196 = Utf8               ([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+  #197 = InterfaceMethodref #198.#199     // java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+  #198 = Class              #200          // java/util/stream/Stream$Builder\n+  #199 = NameAndType        #201:#202     // add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+  #200 = Utf8               java/util/stream/Stream$Builder\n+  #201 = Utf8               add\n+  #202 = Utf8               (Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+  #203 = Methodref          #186.#204     // java/util/concurrent/Executors.newFixedThreadPool:(I)Ljava/util/concurrent/ExecutorService;\n+  #204 = NameAndType        #205:#206     // newFixedThreadPool:(I)Ljava/util/concurrent/ExecutorService;\n+  #205 = Utf8               newFixedThreadPool\n+  #206 = Utf8               (I)Ljava/util/concurrent/ExecutorService;\n+  #207 = InterfaceMethodref #198.#208     // java/util/stream/Stream$Builder.build:()Ljava/util/stream/Stream;\n+  #208 = NameAndType        #97:#209      // build:()Ljava/util/stream/Stream;\n+  #209 = Utf8               ()Ljava/util/stream/Stream;\n+  #210 = Class              #211          // dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n+  #211 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n+  #212 = Utf8               Code\n+  #213 = Utf8               LineNumberTable\n+  #214 = Utf8               LocalVariableTable\n+  #215 = Utf8               this\n+  #216 = Utf8               Ldev/langchain4j/rag/DefaultRetrievalAugmentorTest;\n+  #217 = Utf8               should_augment_user_message\n+  #218 = Utf8               (Ljava/util/concurrent/Executor;)V\n+  #219 = Utf8               Ljava/util/concurrent/Executor;\n+  #220 = Utf8               query1\n+  #221 = Utf8               Ldev/langchain4j/rag/query/Query;\n+  #222 = Utf8               query2\n+  #223 = Utf8               Ldev/langchain4j/rag/query/transformer/QueryTransformer;\n+  #224 = Utf8               content1\n+  #225 = Utf8               Ldev/langchain4j/rag/content/Content;\n+  #226 = Utf8               content2\n+  #227 = Utf8               contentRetriever1\n+  #228 = Utf8               Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n+  #229 = Utf8               content3\n+  #230 = Utf8               content4\n+  #231 = Utf8               contentRetriever2\n+  #232 = Utf8               Ldev/langchain4j/rag/query/router/QueryRouter;\n+  #233 = Utf8               Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n+  #234 = Utf8               Ldev/langchain4j/rag/content/injector/ContentInjector;\n+  #235 = Utf8               retrievalAugmentor\n+  #236 = Utf8               Ldev/langchain4j/rag/RetrievalAugmentor;\n+  #237 = Utf8               userMessage\n+  #238 = Utf8               Ldev/langchain4j/data/message/UserMessage;\n+  #239 = Utf8               metadata\n+  #240 = Utf8               Ldev/langchain4j/rag/query/Metadata;\n+  #241 = Utf8               augmented\n+  #242 = Utf8               queryToContents\n+  #243 = Utf8               Ljava/util/Map;\n+  #244 = Utf8               LocalVariableTypeTable\n+  #245 = Utf8               Ljava/util/Map<Ldev/langchain4j/rag/query/Query;Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;>;\n+  #246 = Utf8               RuntimeVisibleAnnotations\n+  #247 = Utf8               Lorg/junit/jupiter/params/ParameterizedTest;\n+  #248 = Utf8               Lorg/junit/jupiter/params/provider/MethodSource;\n+  #249 = Utf8               Signature\n+  #250 = Utf8               ()Ljava/util/stream/Stream<Lorg/junit/jupiter/params/provider/Arguments;>;\n+  #251 = Utf8               SourceFile\n+  #252 = Utf8               DefaultRetrievalAugmentorTest.java\n+  #253 = Utf8               InnerClasses\n+  #254 = Utf8               TestQueryTransformer\n+  #255 = Utf8               TestContentRetriever\n+  #256 = Utf8               TestContentAggregator\n+  #257 = Utf8               TestContentInjector\n+  #258 = Utf8               DefaultRetrievalAugmentorBuilder\n+  #259 = Utf8               Builder\n {\n   dev.langchain4j.rag.DefaultRetrievalAugmentorTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -283,304 +283,304 @@\n             0       5     0  this   Ldev/langchain4j/rag/DefaultRetrievalAugmentorTest;\n \n   void should_augment_user_message(java.util.concurrent.Executor);\n     descriptor: (Ljava/util/concurrent/Executor;)V\n     flags: (0x0000)\n     Code:\n       stack=9, locals=19, args_size=2\n-         0: ldc           #2                  // String query 1\n-         2: invokestatic  #3                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+         0: ldc           #7                  // String query 1\n+         2: invokestatic  #9                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n          5: astore_2\n-         6: ldc           #4                  // String query 2\n-         8: invokestatic  #3                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+         6: ldc           #15                 // String query 2\n+         8: invokestatic  #9                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n         11: astore_3\n-        12: new           #5                  // class dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestQueryTransformer\n+        12: new           #17                 // class dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestQueryTransformer\n         15: dup\n         16: iconst_2\n-        17: anewarray     #6                  // class dev/langchain4j/rag/query/Query\n+        17: anewarray     #10                 // class dev/langchain4j/rag/query/Query\n         20: dup\n         21: iconst_0\n         22: aload_2\n         23: aastore\n         24: dup\n         25: iconst_1\n         26: aload_3\n         27: aastore\n-        28: invokespecial #7                  // Method dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestQueryTransformer.\"<init>\":([Ldev/langchain4j/rag/query/Query;)V\n-        31: invokestatic  #8                  // Method org/mockito/Mockito.spy:(Ljava/lang/Object;)Ljava/lang/Object;\n-        34: checkcast     #9                  // class dev/langchain4j/rag/query/transformer/QueryTransformer\n+        28: invokespecial #19                 // Method dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestQueryTransformer.\"<init>\":([Ldev/langchain4j/rag/query/Query;)V\n+        31: invokestatic  #22                 // Method org/mockito/Mockito.spy:(Ljava/lang/Object;)Ljava/lang/Object;\n+        34: checkcast     #28                 // class dev/langchain4j/rag/query/transformer/QueryTransformer\n         37: astore        4\n-        39: ldc           #10                 // String content 1\n-        41: invokestatic  #11                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        39: ldc           #30                 // String content 1\n+        41: invokestatic  #32                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         44: astore        5\n-        46: ldc           #12                 // String content 2\n-        48: invokestatic  #11                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        46: ldc           #37                 // String content 2\n+        48: invokestatic  #32                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         51: astore        6\n-        53: new           #13                 // class dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever\n+        53: new           #39                 // class dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever\n         56: dup\n         57: iconst_2\n-        58: anewarray     #14                 // class dev/langchain4j/rag/content/Content\n+        58: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n         61: dup\n         62: iconst_0\n         63: aload         5\n         65: aastore\n         66: dup\n         67: iconst_1\n         68: aload         6\n         70: aastore\n-        71: invokespecial #15                 // Method dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever.\"<init>\":([Ldev/langchain4j/rag/content/Content;)V\n-        74: invokestatic  #8                  // Method org/mockito/Mockito.spy:(Ljava/lang/Object;)Ljava/lang/Object;\n-        77: checkcast     #16                 // class dev/langchain4j/rag/content/retriever/ContentRetriever\n+        71: invokespecial #41                 // Method dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever.\"<init>\":([Ldev/langchain4j/rag/content/Content;)V\n+        74: invokestatic  #22                 // Method org/mockito/Mockito.spy:(Ljava/lang/Object;)Ljava/lang/Object;\n+        77: checkcast     #44                 // class dev/langchain4j/rag/content/retriever/ContentRetriever\n         80: astore        7\n-        82: ldc           #17                 // String content 3\n-        84: invokestatic  #11                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        82: ldc           #46                 // String content 3\n+        84: invokestatic  #32                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         87: astore        8\n-        89: ldc           #18                 // String content 4\n-        91: invokestatic  #11                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        89: ldc           #48                 // String content 4\n+        91: invokestatic  #32                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         94: astore        9\n-        96: new           #13                 // class dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever\n+        96: new           #39                 // class dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever\n         99: dup\n        100: iconst_2\n-       101: anewarray     #14                 // class dev/langchain4j/rag/content/Content\n+       101: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        104: dup\n        105: iconst_0\n        106: aload         8\n        108: aastore\n        109: dup\n        110: iconst_1\n        111: aload         9\n        113: aastore\n-       114: invokespecial #15                 // Method dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever.\"<init>\":([Ldev/langchain4j/rag/content/Content;)V\n-       117: invokestatic  #8                  // Method org/mockito/Mockito.spy:(Ljava/lang/Object;)Ljava/lang/Object;\n-       120: checkcast     #16                 // class dev/langchain4j/rag/content/retriever/ContentRetriever\n+       114: invokespecial #41                 // Method dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever.\"<init>\":([Ldev/langchain4j/rag/content/Content;)V\n+       117: invokestatic  #22                 // Method org/mockito/Mockito.spy:(Ljava/lang/Object;)Ljava/lang/Object;\n+       120: checkcast     #44                 // class dev/langchain4j/rag/content/retriever/ContentRetriever\n        123: astore        10\n-       125: new           #19                 // class dev/langchain4j/rag/query/router/DefaultQueryRouter\n+       125: new           #50                 // class dev/langchain4j/rag/query/router/DefaultQueryRouter\n        128: dup\n        129: iconst_2\n-       130: anewarray     #16                 // class dev/langchain4j/rag/content/retriever/ContentRetriever\n+       130: anewarray     #44                 // class dev/langchain4j/rag/content/retriever/ContentRetriever\n        133: dup\n        134: iconst_0\n        135: aload         7\n        137: aastore\n        138: dup\n        139: iconst_1\n        140: aload         10\n        142: aastore\n-       143: invokespecial #20                 // Method dev/langchain4j/rag/query/router/DefaultQueryRouter.\"<init>\":([Ldev/langchain4j/rag/content/retriever/ContentRetriever;)V\n-       146: invokestatic  #8                  // Method org/mockito/Mockito.spy:(Ljava/lang/Object;)Ljava/lang/Object;\n-       149: checkcast     #21                 // class dev/langchain4j/rag/query/router/QueryRouter\n+       143: invokespecial #52                 // Method dev/langchain4j/rag/query/router/DefaultQueryRouter.\"<init>\":([Ldev/langchain4j/rag/content/retriever/ContentRetriever;)V\n+       146: invokestatic  #22                 // Method org/mockito/Mockito.spy:(Ljava/lang/Object;)Ljava/lang/Object;\n+       149: checkcast     #55                 // class dev/langchain4j/rag/query/router/QueryRouter\n        152: astore        11\n-       154: new           #22                 // class dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentAggregator\n+       154: new           #57                 // class dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentAggregator\n        157: dup\n-       158: invokespecial #23                 // Method dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentAggregator.\"<init>\":()V\n-       161: invokestatic  #8                  // Method org/mockito/Mockito.spy:(Ljava/lang/Object;)Ljava/lang/Object;\n-       164: checkcast     #24                 // class dev/langchain4j/rag/content/aggregator/ContentAggregator\n+       158: invokespecial #59                 // Method dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentAggregator.\"<init>\":()V\n+       161: invokestatic  #22                 // Method org/mockito/Mockito.spy:(Ljava/lang/Object;)Ljava/lang/Object;\n+       164: checkcast     #60                 // class dev/langchain4j/rag/content/aggregator/ContentAggregator\n        167: astore        12\n-       169: new           #25                 // class dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector\n+       169: new           #62                 // class dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector\n        172: dup\n-       173: invokespecial #26                 // Method dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector.\"<init>\":()V\n-       176: invokestatic  #8                  // Method org/mockito/Mockito.spy:(Ljava/lang/Object;)Ljava/lang/Object;\n-       179: checkcast     #27                 // class dev/langchain4j/rag/content/injector/ContentInjector\n+       173: invokespecial #64                 // Method dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector.\"<init>\":()V\n+       176: invokestatic  #22                 // Method org/mockito/Mockito.spy:(Ljava/lang/Object;)Ljava/lang/Object;\n+       179: checkcast     #65                 // class dev/langchain4j/rag/content/injector/ContentInjector\n        182: astore        13\n-       184: invokestatic  #28                 // Method dev/langchain4j/rag/DefaultRetrievalAugmentor.builder:()Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n+       184: invokestatic  #67                 // Method dev/langchain4j/rag/DefaultRetrievalAugmentor.builder:()Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n        187: aload         4\n-       189: invokevirtual #29                 // Method dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder.queryTransformer:(Ldev/langchain4j/rag/query/transformer/QueryTransformer;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n+       189: invokevirtual #73                 // Method dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder.queryTransformer:(Ldev/langchain4j/rag/query/transformer/QueryTransformer;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n        192: aload         11\n-       194: invokevirtual #30                 // Method dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder.queryRouter:(Ldev/langchain4j/rag/query/router/QueryRouter;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n+       194: invokevirtual #79                 // Method dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder.queryRouter:(Ldev/langchain4j/rag/query/router/QueryRouter;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n        197: aload         12\n-       199: invokevirtual #31                 // Method dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder.contentAggregator:(Ldev/langchain4j/rag/content/aggregator/ContentAggregator;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n+       199: invokevirtual #83                 // Method dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder.contentAggregator:(Ldev/langchain4j/rag/content/aggregator/ContentAggregator;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n        202: aload         13\n-       204: invokevirtual #32                 // Method dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder.contentInjector:(Ldev/langchain4j/rag/content/injector/ContentInjector;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n+       204: invokevirtual #87                 // Method dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder.contentInjector:(Ldev/langchain4j/rag/content/injector/ContentInjector;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n        207: aload_1\n-       208: invokevirtual #33                 // Method dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder.executor:(Ljava/util/concurrent/Executor;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n-       211: invokevirtual #34                 // Method dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder.build:()Ldev/langchain4j/rag/DefaultRetrievalAugmentor;\n+       208: invokevirtual #91                 // Method dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder.executor:(Ljava/util/concurrent/Executor;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n+       211: invokevirtual #95                 // Method dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder.build:()Ldev/langchain4j/rag/DefaultRetrievalAugmentor;\n        214: astore        14\n-       216: ldc           #35                 // String query\n-       218: invokestatic  #36                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+       216: ldc           #99                 // String query\n+       218: invokestatic  #101                // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n        221: astore        15\n        223: aload         15\n        225: aconst_null\n        226: aconst_null\n-       227: invokestatic  #37                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n+       227: invokestatic  #106                // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n        230: astore        16\n        232: aload         14\n        234: aload         15\n        236: aload         16\n-       238: invokeinterface #38,  3           // InterfaceMethod dev/langchain4j/rag/RetrievalAugmentor.augment:(Ldev/langchain4j/data/message/UserMessage;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/data/message/UserMessage;\n+       238: invokeinterface #111,  3          // InterfaceMethod dev/langchain4j/rag/RetrievalAugmentor.augment:(Ldev/langchain4j/data/message/UserMessage;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/data/message/UserMessage;\n        243: astore        17\n        245: aload         17\n-       247: invokevirtual #39                 // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n-       250: invokestatic  #40                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       253: ldc           #41                 // String query\\ncontent 1\\ncontent 2\\ncontent 3\\ncontent 4\\ncontent 1\\ncontent 2\\ncontent 3\\ncontent 4\n-       255: invokevirtual #42                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       247: invokevirtual #117                // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n+       250: invokestatic  #121                // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       253: ldc           #127                // String query\\ncontent 1\\ncontent 2\\ncontent 3\\ncontent 4\\ncontent 1\\ncontent 2\\ncontent 3\\ncontent 4\n+       255: invokevirtual #129                // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n        258: pop\n        259: aload         4\n-       261: invokestatic  #43                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-       264: checkcast     #9                  // class dev/langchain4j/rag/query/transformer/QueryTransformer\n-       267: ldc           #35                 // String query\n+       261: invokestatic  #134                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+       264: checkcast     #28                 // class dev/langchain4j/rag/query/transformer/QueryTransformer\n+       267: ldc           #99                 // String query\n        269: aload         16\n-       271: invokestatic  #44                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n-       274: invokeinterface #45,  2           // InterfaceMethod dev/langchain4j/rag/query/transformer/QueryTransformer.transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+       271: invokestatic  #137                // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n+       274: invokeinterface #140,  2          // InterfaceMethod dev/langchain4j/rag/query/transformer/QueryTransformer.transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n        279: pop\n        280: iconst_1\n-       281: anewarray     #46                 // class java/lang/Object\n+       281: anewarray     #2                  // class java/lang/Object\n        284: dup\n        285: iconst_0\n        286: aload         4\n        288: aastore\n-       289: invokestatic  #47                 // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+       289: invokestatic  #144                // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n        292: aload         11\n-       294: invokestatic  #43                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-       297: checkcast     #21                 // class dev/langchain4j/rag/query/router/QueryRouter\n+       294: invokestatic  #134                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+       297: checkcast     #55                 // class dev/langchain4j/rag/query/router/QueryRouter\n        300: aload_2\n-       301: invokeinterface #48,  2           // InterfaceMethod dev/langchain4j/rag/query/router/QueryRouter.route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+       301: invokeinterface #148,  2          // InterfaceMethod dev/langchain4j/rag/query/router/QueryRouter.route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n        306: pop\n        307: aload         11\n-       309: invokestatic  #43                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-       312: checkcast     #21                 // class dev/langchain4j/rag/query/router/QueryRouter\n+       309: invokestatic  #134                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+       312: checkcast     #55                 // class dev/langchain4j/rag/query/router/QueryRouter\n        315: aload_3\n-       316: invokeinterface #48,  2           // InterfaceMethod dev/langchain4j/rag/query/router/QueryRouter.route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+       316: invokeinterface #148,  2          // InterfaceMethod dev/langchain4j/rag/query/router/QueryRouter.route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n        321: pop\n        322: iconst_1\n-       323: anewarray     #46                 // class java/lang/Object\n+       323: anewarray     #2                  // class java/lang/Object\n        326: dup\n        327: iconst_0\n        328: aload         11\n        330: aastore\n-       331: invokestatic  #47                 // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+       331: invokestatic  #144                // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n        334: aload         7\n-       336: invokestatic  #43                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-       339: checkcast     #16                 // class dev/langchain4j/rag/content/retriever/ContentRetriever\n+       336: invokestatic  #134                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+       339: checkcast     #44                 // class dev/langchain4j/rag/content/retriever/ContentRetriever\n        342: aload_2\n-       343: invokeinterface #49,  2           // InterfaceMethod dev/langchain4j/rag/content/retriever/ContentRetriever.retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n+       343: invokeinterface #151,  2          // InterfaceMethod dev/langchain4j/rag/content/retriever/ContentRetriever.retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n        348: pop\n        349: aload         7\n-       351: invokestatic  #43                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-       354: checkcast     #16                 // class dev/langchain4j/rag/content/retriever/ContentRetriever\n+       351: invokestatic  #134                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+       354: checkcast     #44                 // class dev/langchain4j/rag/content/retriever/ContentRetriever\n        357: aload_3\n-       358: invokeinterface #49,  2           // InterfaceMethod dev/langchain4j/rag/content/retriever/ContentRetriever.retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n+       358: invokeinterface #151,  2          // InterfaceMethod dev/langchain4j/rag/content/retriever/ContentRetriever.retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n        363: pop\n        364: iconst_1\n-       365: anewarray     #46                 // class java/lang/Object\n+       365: anewarray     #2                  // class java/lang/Object\n        368: dup\n        369: iconst_0\n        370: aload         7\n        372: aastore\n-       373: invokestatic  #47                 // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+       373: invokestatic  #144                // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n        376: aload         10\n-       378: invokestatic  #43                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-       381: checkcast     #16                 // class dev/langchain4j/rag/content/retriever/ContentRetriever\n+       378: invokestatic  #134                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+       381: checkcast     #44                 // class dev/langchain4j/rag/content/retriever/ContentRetriever\n        384: aload_2\n-       385: invokeinterface #49,  2           // InterfaceMethod dev/langchain4j/rag/content/retriever/ContentRetriever.retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n+       385: invokeinterface #151,  2          // InterfaceMethod dev/langchain4j/rag/content/retriever/ContentRetriever.retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n        390: pop\n        391: aload         10\n-       393: invokestatic  #43                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-       396: checkcast     #16                 // class dev/langchain4j/rag/content/retriever/ContentRetriever\n+       393: invokestatic  #134                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+       396: checkcast     #44                 // class dev/langchain4j/rag/content/retriever/ContentRetriever\n        399: aload_3\n-       400: invokeinterface #49,  2           // InterfaceMethod dev/langchain4j/rag/content/retriever/ContentRetriever.retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n+       400: invokeinterface #151,  2          // InterfaceMethod dev/langchain4j/rag/content/retriever/ContentRetriever.retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n        405: pop\n        406: iconst_1\n-       407: anewarray     #46                 // class java/lang/Object\n+       407: anewarray     #2                  // class java/lang/Object\n        410: dup\n        411: iconst_0\n        412: aload         10\n        414: aastore\n-       415: invokestatic  #47                 // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n-       418: new           #50                 // class java/util/HashMap\n+       415: invokestatic  #144                // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+       418: new           #155                // class java/util/HashMap\n        421: dup\n-       422: invokespecial #51                 // Method java/util/HashMap.\"<init>\":()V\n+       422: invokespecial #157                // Method java/util/HashMap.\"<init>\":()V\n        425: astore        18\n        427: aload         18\n        429: aload_2\n        430: iconst_2\n-       431: anewarray     #52                 // class java/util/List\n+       431: anewarray     #158                // class java/util/List\n        434: dup\n        435: iconst_0\n        436: iconst_2\n-       437: anewarray     #14                 // class dev/langchain4j/rag/content/Content\n+       437: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        440: dup\n        441: iconst_0\n        442: aload         5\n        444: aastore\n        445: dup\n        446: iconst_1\n        447: aload         6\n        449: aastore\n-       450: invokestatic  #53                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       450: invokestatic  #160                // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        453: aastore\n        454: dup\n        455: iconst_1\n        456: iconst_2\n-       457: anewarray     #14                 // class dev/langchain4j/rag/content/Content\n+       457: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        460: dup\n        461: iconst_0\n        462: aload         8\n        464: aastore\n        465: dup\n        466: iconst_1\n        467: aload         9\n        469: aastore\n-       470: invokestatic  #53                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       470: invokestatic  #160                // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        473: aastore\n-       474: invokestatic  #53                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       477: invokeinterface #54,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+       474: invokestatic  #160                // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       477: invokeinterface #166,  3          // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n        482: pop\n        483: aload         18\n        485: aload_3\n        486: iconst_2\n-       487: anewarray     #52                 // class java/util/List\n+       487: anewarray     #158                // class java/util/List\n        490: dup\n        491: iconst_0\n        492: iconst_2\n-       493: anewarray     #14                 // class dev/langchain4j/rag/content/Content\n+       493: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        496: dup\n        497: iconst_0\n        498: aload         5\n        500: aastore\n        501: dup\n        502: iconst_1\n        503: aload         6\n        505: aastore\n-       506: invokestatic  #53                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       506: invokestatic  #160                // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        509: aastore\n        510: dup\n        511: iconst_1\n        512: iconst_2\n-       513: anewarray     #14                 // class dev/langchain4j/rag/content/Content\n+       513: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        516: dup\n        517: iconst_0\n        518: aload         8\n        520: aastore\n        521: dup\n        522: iconst_1\n        523: aload         9\n        525: aastore\n-       526: invokestatic  #53                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       526: invokestatic  #160                // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        529: aastore\n-       530: invokestatic  #53                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       533: invokeinterface #54,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+       530: invokestatic  #160                // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       533: invokeinterface #166,  3          // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n        538: pop\n        539: aload         12\n-       541: invokestatic  #43                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-       544: checkcast     #24                 // class dev/langchain4j/rag/content/aggregator/ContentAggregator\n+       541: invokestatic  #134                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+       544: checkcast     #60                 // class dev/langchain4j/rag/content/aggregator/ContentAggregator\n        547: aload         18\n-       549: invokeinterface #55,  2           // InterfaceMethod dev/langchain4j/rag/content/aggregator/ContentAggregator.aggregate:(Ljava/util/Map;)Ljava/util/List;\n+       549: invokeinterface #172,  2          // InterfaceMethod dev/langchain4j/rag/content/aggregator/ContentAggregator.aggregate:(Ljava/util/Map;)Ljava/util/List;\n        554: pop\n        555: iconst_1\n-       556: anewarray     #46                 // class java/lang/Object\n+       556: anewarray     #2                  // class java/lang/Object\n        559: dup\n        560: iconst_0\n        561: aload         12\n        563: aastore\n-       564: invokestatic  #47                 // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+       564: invokestatic  #144                // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n        567: aload         13\n-       569: invokestatic  #43                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-       572: checkcast     #27                 // class dev/langchain4j/rag/content/injector/ContentInjector\n+       569: invokestatic  #134                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+       572: checkcast     #65                 // class dev/langchain4j/rag/content/injector/ContentInjector\n        575: bipush        8\n-       577: anewarray     #14                 // class dev/langchain4j/rag/content/Content\n+       577: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        580: dup\n        581: iconst_0\n        582: aload         5\n        584: aastore\n        585: dup\n        586: iconst_1\n        587: aload         6\n@@ -605,25 +605,25 @@\n        611: bipush        6\n        613: aload         8\n        615: aastore\n        616: dup\n        617: bipush        7\n        619: aload         9\n        621: aastore\n-       622: invokestatic  #53                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       622: invokestatic  #160                // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        625: aload         15\n-       627: invokeinterface #56,  3           // InterfaceMethod dev/langchain4j/rag/content/injector/ContentInjector.inject:(Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n+       627: invokeinterface #176,  3          // InterfaceMethod dev/langchain4j/rag/content/injector/ContentInjector.inject:(Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n        632: pop\n        633: iconst_1\n-       634: anewarray     #46                 // class java/lang/Object\n+       634: anewarray     #2                  // class java/lang/Object\n        637: dup\n        638: iconst_0\n        639: aload         13\n        641: aastore\n-       642: invokestatic  #47                 // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+       642: invokestatic  #144                // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n        645: return\n       LineNumberTable:\n         line 38: 0\n         line 39: 6\n         line 40: 12\n         line 42: 39\n         line 43: 46\n@@ -691,83 +691,83 @@\n           232     414    16 metadata   Ldev/langchain4j/rag/query/Metadata;\n           245     401    17 augmented   Ldev/langchain4j/data/message/UserMessage;\n           427     219    18 queryToContents   Ljava/util/Map;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n           427     219    18 queryToContents   Ljava/util/Map<Ldev/langchain4j/rag/query/Query;Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;>;\n     RuntimeVisibleAnnotations:\n-      0: #111()\n+      0: #247()\n         org.junit.jupiter.params.ParameterizedTest\n-      1: #112()\n+      1: #248()\n         org.junit.jupiter.params.provider.MethodSource\n \n   static java.util.stream.Stream<org.junit.jupiter.params.provider.Arguments> should_augment_user_message();\n     descriptor: ()Ljava/util/stream/Stream;\n     flags: (0x0008) ACC_STATIC\n     Code:\n       stack=5, locals=0, args_size=0\n-         0: invokestatic  #57                 // InterfaceMethod java/util/stream/Stream.builder:()Ljava/util/stream/Stream$Builder;\n+         0: invokestatic  #180                // InterfaceMethod java/util/stream/Stream.builder:()Ljava/util/stream/Stream$Builder;\n          3: iconst_1\n-         4: anewarray     #46                 // class java/lang/Object\n+         4: anewarray     #2                  // class java/lang/Object\n          7: dup\n          8: iconst_0\n-         9: invokestatic  #58                 // Method java/util/concurrent/Executors.newCachedThreadPool:()Ljava/util/concurrent/ExecutorService;\n+         9: invokestatic  #185                // Method java/util/concurrent/Executors.newCachedThreadPool:()Ljava/util/concurrent/ExecutorService;\n         12: aastore\n-        13: invokestatic  #59                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-        16: invokeinterface #60,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+        13: invokestatic  #191                // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+        16: invokeinterface #197,  2          // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n         21: iconst_1\n-        22: anewarray     #46                 // class java/lang/Object\n+        22: anewarray     #2                  // class java/lang/Object\n         25: dup\n         26: iconst_0\n         27: iconst_1\n-        28: invokestatic  #61                 // Method java/util/concurrent/Executors.newFixedThreadPool:(I)Ljava/util/concurrent/ExecutorService;\n+        28: invokestatic  #203                // Method java/util/concurrent/Executors.newFixedThreadPool:(I)Ljava/util/concurrent/ExecutorService;\n         31: aastore\n-        32: invokestatic  #59                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-        35: invokeinterface #60,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+        32: invokestatic  #191                // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+        35: invokeinterface #197,  2          // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n         40: iconst_1\n-        41: anewarray     #46                 // class java/lang/Object\n+        41: anewarray     #2                  // class java/lang/Object\n         44: dup\n         45: iconst_0\n         46: iconst_2\n-        47: invokestatic  #61                 // Method java/util/concurrent/Executors.newFixedThreadPool:(I)Ljava/util/concurrent/ExecutorService;\n+        47: invokestatic  #203                // Method java/util/concurrent/Executors.newFixedThreadPool:(I)Ljava/util/concurrent/ExecutorService;\n         50: aastore\n-        51: invokestatic  #59                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-        54: invokeinterface #60,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+        51: invokestatic  #191                // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+        54: invokeinterface #197,  2          // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n         59: iconst_1\n-        60: anewarray     #46                 // class java/lang/Object\n+        60: anewarray     #2                  // class java/lang/Object\n         63: dup\n         64: iconst_0\n         65: iconst_3\n-        66: invokestatic  #61                 // Method java/util/concurrent/Executors.newFixedThreadPool:(I)Ljava/util/concurrent/ExecutorService;\n+        66: invokestatic  #203                // Method java/util/concurrent/Executors.newFixedThreadPool:(I)Ljava/util/concurrent/ExecutorService;\n         69: aastore\n-        70: invokestatic  #59                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-        73: invokeinterface #60,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+        70: invokestatic  #191                // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+        73: invokeinterface #197,  2          // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n         78: iconst_1\n-        79: anewarray     #46                 // class java/lang/Object\n+        79: anewarray     #2                  // class java/lang/Object\n         82: dup\n         83: iconst_0\n         84: iconst_4\n-        85: invokestatic  #61                 // Method java/util/concurrent/Executors.newFixedThreadPool:(I)Ljava/util/concurrent/ExecutorService;\n+        85: invokestatic  #203                // Method java/util/concurrent/Executors.newFixedThreadPool:(I)Ljava/util/concurrent/ExecutorService;\n         88: aastore\n-        89: invokestatic  #59                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-        92: invokeinterface #60,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n-        97: invokeinterface #62,  1           // InterfaceMethod java/util/stream/Stream$Builder.build:()Ljava/util/stream/Stream;\n+        89: invokestatic  #191                // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+        92: invokeinterface #197,  2          // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+        97: invokeinterface #207,  1          // InterfaceMethod java/util/stream/Stream$Builder.build:()Ljava/util/stream/Stream;\n        102: areturn\n       LineNumberTable:\n         line 121: 0\n         line 122: 9\n         line 123: 28\n         line 124: 47\n         line 125: 66\n         line 126: 85\n         line 127: 97\n         line 121: 102\n-    Signature: #115                         // ()Ljava/util/stream/Stream<Lorg/junit/jupiter/params/provider/Arguments;>;\n+    Signature: #250                         // ()Ljava/util/stream/Stream<Lorg/junit/jupiter/params/provider/Arguments;>;\n }\n SourceFile: \"DefaultRetrievalAugmentorTest.java\"\n InnerClasses:\n-  static #64= #25 of #63;                 // TestContentInjector=class dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector of class dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n-  static #66= #22 of #63;                 // TestContentAggregator=class dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentAggregator of class dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n-  static #67= #13 of #63;                 // TestContentRetriever=class dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever of class dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n-  static #68= #5 of #63;                  // TestQueryTransformer=class dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestQueryTransformer of class dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n-  public static #203= #146 of #144;       // DefaultRetrievalAugmentorBuilder=class dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder of class dev/langchain4j/rag/DefaultRetrievalAugmentor\n-  public static #247= #187 of #181;       // Builder=class java/util/stream/Stream$Builder of class java/util/stream/Stream\n+  static #254= #17 of #210;               // TestQueryTransformer=class dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestQueryTransformer of class dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n+  static #255= #39 of #210;               // TestContentRetriever=class dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever of class dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n+  static #256= #57 of #210;               // TestContentAggregator=class dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentAggregator of class dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n+  static #257= #62 of #210;               // TestContentInjector=class dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector of class dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n+  public static #258= #74 of #68;         // DefaultRetrievalAugmentorBuilder=class dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder of class dev/langchain4j/rag/DefaultRetrievalAugmentor\n+  public static #259= #198 of #181;       // Builder=class java/util/stream/Stream$Builder of class java/util/stream/Stream\n"}]}, {"source1": "dev/langchain4j/rag/content/ContentTest.class", "source2": "dev/langchain4j/rag/content/ContentTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,109 +1,109 @@\n-  SHA-256 checksum 5d42acda6e479056e80e48d8321bc587464a73e7ec53a09a6b58345583ac46ed\n+  SHA-256 checksum 01a9a4552e9225692fa4459520d084fd760550cc89c0848cf164f3b7057d2abd\n   Compiled from \"ContentTest.java\"\n class dev.langchain4j.rag.content.ContentTest\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #21                         // dev/langchain4j/rag/content/ContentTest\n-  super_class: #22                        // java/lang/Object\n+  this_class: #70                         // dev/langchain4j/rag/content/ContentTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 0, methods: 5, attributes: 1\n Constant pool:\n-   #1 = Methodref          #22.#48        // java/lang/Object.\"<init>\":()V\n-   #2 = String             #33            // content\n-   #3 = Methodref          #49.#50        // dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n-   #4 = Methodref          #49.#51        // dev/langchain4j/rag/content/Content.textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n-   #5 = Methodref          #52.#53        // dev/langchain4j/data/segment/TextSegment.text:()Ljava/lang/String;\n-   #6 = Methodref          #54.#55        // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #7 = Methodref          #56.#57        // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #8 = String             #58            // text\n-   #9 = Methodref          #52.#59        // dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #10 = Methodref          #49.#60        // dev/langchain4j/rag/content/Content.from:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/rag/content/Content;\n-  #11 = Methodref          #54.#61        // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #12 = Methodref          #15.#62        // org/assertj/core/api/ObjectAssert.isSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #13 = String             #63            // content 2\n-  #14 = Methodref          #15.#64        // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #15 = Class              #65            // org/assertj/core/api/ObjectAssert\n-  #16 = Methodref          #15.#66        // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #17 = Methodref          #15.#67        // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #18 = Methodref          #15.#68        // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #19 = Methodref          #49.#69        // dev/langchain4j/rag/content/Content.toString:()Ljava/lang/String;\n-  #20 = String             #70            // Content { textSegment = TextSegment { text = \\\"content\\\" metadata = {} } }\n-  #21 = Class              #71            // dev/langchain4j/rag/content/ContentTest\n-  #22 = Class              #72            // java/lang/Object\n-  #23 = Utf8               <init>\n-  #24 = Utf8               ()V\n-  #25 = Utf8               Code\n-  #26 = Utf8               LineNumberTable\n-  #27 = Utf8               LocalVariableTable\n-  #28 = Utf8               this\n-  #29 = Utf8               Ldev/langchain4j/rag/content/ContentTest;\n-  #30 = Utf8               test_create_from_string\n-  #31 = Utf8               contentText\n-  #32 = Utf8               Ljava/lang/String;\n-  #33 = Utf8               content\n-  #34 = Utf8               Ldev/langchain4j/rag/content/Content;\n-  #35 = Utf8               RuntimeVisibleAnnotations\n-  #36 = Utf8               Lorg/junit/jupiter/api/Test;\n-  #37 = Utf8               test_create_from_text_segment\n-  #38 = Utf8               segment\n-  #39 = Utf8               Ldev/langchain4j/data/segment/TextSegment;\n-  #40 = Utf8               test_equals_hashCode\n-  #41 = Utf8               content1\n-  #42 = Utf8               content2\n-  #43 = Utf8               content3\n-  #44 = Utf8               test_toString\n-  #45 = Utf8               toString\n-  #46 = Utf8               SourceFile\n-  #47 = Utf8               ContentTest.java\n-  #48 = NameAndType        #23:#24        // \"<init>\":()V\n-  #49 = Class              #73            // dev/langchain4j/rag/content/Content\n-  #50 = NameAndType        #74:#75        // from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n-  #51 = NameAndType        #76:#77        // textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n-  #52 = Class              #78            // dev/langchain4j/data/segment/TextSegment\n-  #53 = NameAndType        #58:#79        // text:()Ljava/lang/String;\n-  #54 = Class              #80            // org/assertj/core/api/Assertions\n-  #55 = NameAndType        #81:#82        // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #56 = Class              #83            // org/assertj/core/api/AbstractStringAssert\n-  #57 = NameAndType        #84:#82        // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #58 = Utf8               text\n-  #59 = NameAndType        #74:#85        // from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #60 = NameAndType        #74:#86        // from:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/rag/content/Content;\n-  #61 = NameAndType        #81:#87        // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #62 = NameAndType        #88:#89        // isSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #63 = Utf8               content 2\n-  #64 = NameAndType        #90:#89        // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #65 = Utf8               org/assertj/core/api/ObjectAssert\n-  #66 = NameAndType        #91:#89        // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #67 = NameAndType        #84:#89        // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #68 = NameAndType        #92:#89        // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #69 = NameAndType        #45:#79        // toString:()Ljava/lang/String;\n-  #70 = Utf8               Content { textSegment = TextSegment { text = \\\"content\\\" metadata = {} } }\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = String             #8             // content\n+   #8 = Utf8               content\n+   #9 = Methodref          #10.#11        // dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+  #10 = Class              #12            // dev/langchain4j/rag/content/Content\n+  #11 = NameAndType        #13:#14        // from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+  #12 = Utf8               dev/langchain4j/rag/content/Content\n+  #13 = Utf8               from\n+  #14 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+  #15 = Methodref          #10.#16        // dev/langchain4j/rag/content/Content.textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n+  #16 = NameAndType        #17:#18        // textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n+  #17 = Utf8               textSegment\n+  #18 = Utf8               ()Ldev/langchain4j/data/segment/TextSegment;\n+  #19 = Methodref          #20.#21        // dev/langchain4j/data/segment/TextSegment.text:()Ljava/lang/String;\n+  #20 = Class              #22            // dev/langchain4j/data/segment/TextSegment\n+  #21 = NameAndType        #23:#24        // text:()Ljava/lang/String;\n+  #22 = Utf8               dev/langchain4j/data/segment/TextSegment\n+  #23 = Utf8               text\n+  #24 = Utf8               ()Ljava/lang/String;\n+  #25 = Methodref          #26.#27        // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #26 = Class              #28            // org/assertj/core/api/Assertions\n+  #27 = NameAndType        #29:#30        // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #28 = Utf8               org/assertj/core/api/Assertions\n+  #29 = Utf8               assertThat\n+  #30 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #31 = Methodref          #32.#33        // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #32 = Class              #34            // org/assertj/core/api/AbstractStringAssert\n+  #33 = NameAndType        #35:#30        // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #34 = Utf8               org/assertj/core/api/AbstractStringAssert\n+  #35 = Utf8               isEqualTo\n+  #36 = String             #23            // text\n+  #37 = Methodref          #20.#38        // dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #38 = NameAndType        #13:#39        // from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #39 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #40 = Methodref          #10.#41        // dev/langchain4j/rag/content/Content.from:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/rag/content/Content;\n+  #41 = NameAndType        #13:#42        // from:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/rag/content/Content;\n+  #42 = Utf8               (Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/rag/content/Content;\n+  #43 = Methodref          #26.#44        // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+  #44 = NameAndType        #29:#45        // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+  #45 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+  #46 = Methodref          #47.#48        // org/assertj/core/api/ObjectAssert.isSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #47 = Class              #49            // org/assertj/core/api/ObjectAssert\n+  #48 = NameAndType        #50:#51        // isSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #49 = Utf8               org/assertj/core/api/ObjectAssert\n+  #50 = Utf8               isSameAs\n+  #51 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #52 = String             #53            // content 2\n+  #53 = Utf8               content 2\n+  #54 = Methodref          #47.#55        // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #55 = NameAndType        #56:#51        // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #56 = Utf8               isNotEqualTo\n+  #57 = Methodref          #47.#58        // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #58 = NameAndType        #59:#51        // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #59 = Utf8               doesNotHaveSameHashCodeAs\n+  #60 = Methodref          #47.#61        // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #61 = NameAndType        #35:#51        // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #62 = Methodref          #47.#63        // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #63 = NameAndType        #64:#51        // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #64 = Utf8               hasSameHashCodeAs\n+  #65 = Methodref          #10.#66        // dev/langchain4j/rag/content/Content.toString:()Ljava/lang/String;\n+  #66 = NameAndType        #67:#24        // toString:()Ljava/lang/String;\n+  #67 = Utf8               toString\n+  #68 = String             #69            // Content { textSegment = TextSegment { text = \\\"content\\\" metadata = {} } }\n+  #69 = Utf8               Content { textSegment = TextSegment { text = \\\"content\\\" metadata = {} } }\n+  #70 = Class              #71            // dev/langchain4j/rag/content/ContentTest\n   #71 = Utf8               dev/langchain4j/rag/content/ContentTest\n-  #72 = Utf8               java/lang/Object\n-  #73 = Utf8               dev/langchain4j/rag/content/Content\n-  #74 = Utf8               from\n-  #75 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n-  #76 = Utf8               textSegment\n-  #77 = Utf8               ()Ldev/langchain4j/data/segment/TextSegment;\n-  #78 = Utf8               dev/langchain4j/data/segment/TextSegment\n-  #79 = Utf8               ()Ljava/lang/String;\n-  #80 = Utf8               org/assertj/core/api/Assertions\n-  #81 = Utf8               assertThat\n-  #82 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #83 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #84 = Utf8               isEqualTo\n-  #85 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #86 = Utf8               (Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/rag/content/Content;\n-  #87 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #88 = Utf8               isSameAs\n-  #89 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #90 = Utf8               isNotEqualTo\n-  #91 = Utf8               doesNotHaveSameHashCodeAs\n-  #92 = Utf8               hasSameHashCodeAs\n+  #72 = Utf8               Code\n+  #73 = Utf8               LineNumberTable\n+  #74 = Utf8               LocalVariableTable\n+  #75 = Utf8               this\n+  #76 = Utf8               Ldev/langchain4j/rag/content/ContentTest;\n+  #77 = Utf8               test_create_from_string\n+  #78 = Utf8               contentText\n+  #79 = Utf8               Ljava/lang/String;\n+  #80 = Utf8               Ldev/langchain4j/rag/content/Content;\n+  #81 = Utf8               RuntimeVisibleAnnotations\n+  #82 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #83 = Utf8               test_create_from_text_segment\n+  #84 = Utf8               segment\n+  #85 = Utf8               Ldev/langchain4j/data/segment/TextSegment;\n+  #86 = Utf8               test_equals_hashCode\n+  #87 = Utf8               content1\n+  #88 = Utf8               content2\n+  #89 = Utf8               content3\n+  #90 = Utf8               test_toString\n+  #91 = Utf8               SourceFile\n+  #92 = Utf8               ContentTest.java\n {\n   dev.langchain4j.rag.content.ContentTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -116,102 +116,102 @@\n             0       5     0  this   Ldev/langchain4j/rag/content/ContentTest;\n \n   void test_create_from_string();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=2, locals=3, args_size=1\n-         0: ldc           #2                  // String content\n+         0: ldc           #7                  // String content\n          2: astore_1\n          3: aload_1\n-         4: invokestatic  #3                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+         4: invokestatic  #9                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n          7: astore_2\n          8: aload_2\n-         9: invokevirtual #4                  // Method dev/langchain4j/rag/content/Content.textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n-        12: invokevirtual #5                  // Method dev/langchain4j/data/segment/TextSegment.text:()Ljava/lang/String;\n-        15: invokestatic  #6                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+         9: invokevirtual #15                 // Method dev/langchain4j/rag/content/Content.textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n+        12: invokevirtual #19                 // Method dev/langchain4j/data/segment/TextSegment.text:()Ljava/lang/String;\n+        15: invokestatic  #25                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         18: aload_1\n-        19: invokevirtual #7                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        19: invokevirtual #31                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         22: pop\n         23: return\n       LineNumberTable:\n         line 14: 0\n         line 17: 3\n         line 20: 8\n         line 21: 23\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      24     0  this   Ldev/langchain4j/rag/content/ContentTest;\n             3      21     1 contentText   Ljava/lang/String;\n             8      16     2 content   Ldev/langchain4j/rag/content/Content;\n     RuntimeVisibleAnnotations:\n-      0: #36()\n+      0: #82()\n         org.junit.jupiter.api.Test\n \n   void test_create_from_text_segment();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=2, locals=3, args_size=1\n-         0: ldc           #8                  // String text\n-         2: invokestatic  #9                  // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+         0: ldc           #36                 // String text\n+         2: invokestatic  #37                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n          5: astore_1\n          6: aload_1\n-         7: invokestatic  #10                 // Method dev/langchain4j/rag/content/Content.from:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/rag/content/Content;\n+         7: invokestatic  #40                 // Method dev/langchain4j/rag/content/Content.from:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/rag/content/Content;\n         10: astore_2\n         11: aload_2\n-        12: invokevirtual #4                  // Method dev/langchain4j/rag/content/Content.textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n-        15: invokestatic  #11                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        12: invokevirtual #15                 // Method dev/langchain4j/rag/content/Content.textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n+        15: invokestatic  #43                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         18: aload_1\n-        19: invokevirtual #12                 // Method org/assertj/core/api/ObjectAssert.isSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        19: invokevirtual #46                 // Method org/assertj/core/api/ObjectAssert.isSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         22: pop\n         23: return\n       LineNumberTable:\n         line 27: 0\n         line 30: 6\n         line 33: 11\n         line 34: 23\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      24     0  this   Ldev/langchain4j/rag/content/ContentTest;\n             6      18     1 segment   Ldev/langchain4j/data/segment/TextSegment;\n            11      13     2 content   Ldev/langchain4j/rag/content/Content;\n     RuntimeVisibleAnnotations:\n-      0: #36()\n+      0: #82()\n         org.junit.jupiter.api.Test\n \n   void test_equals_hashCode();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=2, locals=4, args_size=1\n-         0: ldc           #2                  // String content\n-         2: invokestatic  #3                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+         0: ldc           #7                  // String content\n+         2: invokestatic  #9                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n          5: astore_1\n-         6: ldc           #13                 // String content 2\n-         8: invokestatic  #3                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+         6: ldc           #52                 // String content 2\n+         8: invokestatic  #9                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         11: astore_2\n-        12: ldc           #2                  // String content\n-        14: invokestatic  #3                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        12: ldc           #7                  // String content\n+        14: invokestatic  #9                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         17: astore_3\n         18: aload_1\n-        19: invokestatic  #11                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        19: invokestatic  #43                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         22: aload_2\n-        23: invokevirtual #14                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        26: checkcast     #15                 // class org/assertj/core/api/ObjectAssert\n+        23: invokevirtual #54                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        26: checkcast     #47                 // class org/assertj/core/api/ObjectAssert\n         29: aload_2\n-        30: invokevirtual #16                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        30: invokevirtual #57                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         33: pop\n         34: aload_1\n-        35: invokestatic  #11                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        35: invokestatic  #43                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         38: aload_3\n-        39: invokevirtual #17                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        42: checkcast     #15                 // class org/assertj/core/api/ObjectAssert\n+        39: invokevirtual #60                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        42: checkcast     #47                 // class org/assertj/core/api/ObjectAssert\n         45: aload_3\n-        46: invokevirtual #18                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        46: invokevirtual #62                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         49: pop\n         50: return\n       LineNumberTable:\n         line 40: 0\n         line 41: 6\n         line 42: 12\n         line 45: 18\n@@ -224,43 +224,43 @@\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      51     0  this   Ldev/langchain4j/rag/content/ContentTest;\n             6      45     1 content1   Ldev/langchain4j/rag/content/Content;\n            12      39     2 content2   Ldev/langchain4j/rag/content/Content;\n            18      33     3 content3   Ldev/langchain4j/rag/content/Content;\n     RuntimeVisibleAnnotations:\n-      0: #36()\n+      0: #82()\n         org.junit.jupiter.api.Test\n \n   void test_toString();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=2, locals=3, args_size=1\n-         0: ldc           #2                  // String content\n-         2: invokestatic  #3                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+         0: ldc           #7                  // String content\n+         2: invokestatic  #9                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n          5: astore_1\n          6: aload_1\n-         7: invokevirtual #19                 // Method dev/langchain4j/rag/content/Content.toString:()Ljava/lang/String;\n+         7: invokevirtual #65                 // Method dev/langchain4j/rag/content/Content.toString:()Ljava/lang/String;\n         10: astore_2\n         11: aload_2\n-        12: invokestatic  #6                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        15: ldc           #20                 // String Content { textSegment = TextSegment { text = \\\"content\\\" metadata = {} } }\n-        17: invokevirtual #7                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        12: invokestatic  #25                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        15: ldc           #68                 // String Content { textSegment = TextSegment { text = \\\"content\\\" metadata = {} } }\n+        17: invokevirtual #31                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         20: pop\n         21: return\n       LineNumberTable:\n         line 58: 0\n         line 61: 6\n         line 64: 11\n         line 65: 17\n         line 66: 21\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      22     0  this   Ldev/langchain4j/rag/content/ContentTest;\n             6      16     1 content   Ldev/langchain4j/rag/content/Content;\n            11      11     2 toString   Ljava/lang/String;\n     RuntimeVisibleAnnotations:\n-      0: #36()\n+      0: #82()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"ContentTest.java\"\n"}]}, {"source1": "dev/langchain4j/rag/content/aggregator/DefaultContentAggregatorTest.class", "source2": "dev/langchain4j/rag/content/aggregator/DefaultContentAggregatorTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,217 +1,217 @@\n-  SHA-256 checksum 66aa6e8e1fbdacac66b380c65b2e61e30a36d77715ab6cc4a5a765c1a703374f\n+  SHA-256 checksum 51b454f1e767fd4ad5e65312455256d6be657c8971d11f0fa1d6c3ed2d30480d\n   Compiled from \"DefaultContentAggregatorTest.java\"\n class dev.langchain4j.rag.content.aggregator.DefaultContentAggregatorTest\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #30                         // dev/langchain4j/rag/content/aggregator/DefaultContentAggregatorTest\n-  super_class: #31                        // java/lang/Object\n+  this_class: #11                         // dev/langchain4j/rag/content/aggregator/DefaultContentAggregatorTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 1, methods: 6, attributes: 1\n Constant pool:\n-    #1 = Methodref          #31.#70       // java/lang/Object.\"<init>\":()V\n-    #2 = Class              #71           // dev/langchain4j/rag/content/aggregator/DefaultContentAggregator\n-    #3 = Methodref          #2.#70        // dev/langchain4j/rag/content/aggregator/DefaultContentAggregator.\"<init>\":()V\n-    #4 = Fieldref           #30.#72       // dev/langchain4j/rag/content/aggregator/DefaultContentAggregatorTest.aggregator:Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n-    #5 = String             #42           // query\n-    #6 = Methodref          #73.#74       // dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-    #7 = String             #75           // content 1\n-    #8 = Methodref          #10.#76       // dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n-    #9 = String             #77           // content 2\n-   #10 = Class              #78           // dev/langchain4j/rag/content/Content\n-   #11 = Methodref          #79.#80       // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-   #12 = Methodref          #81.#82       // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-   #13 = Methodref          #81.#83       // java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-   #14 = InterfaceMethodref #84.#85       // dev/langchain4j/rag/content/aggregator/ContentAggregator.aggregate:(Ljava/util/Map;)Ljava/util/List;\n-   #15 = Methodref          #86.#87       // org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-   #16 = Methodref          #88.#89       // org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-   #17 = String             #90           // content 3\n-   #18 = String             #91           // content 4\n-   #19 = Class              #92           // java/util/List\n-   #20 = String             #93           // content\n-   #21 = String             #94           // query 1\n-   #22 = String             #95           // query 2\n-   #23 = String             #96           // content 5\n-   #24 = String             #97           // content 6\n-   #25 = String             #98           // content 7\n-   #26 = String             #99           // content 8\n-   #27 = Class              #100          // java/util/LinkedHashMap\n-   #28 = Methodref          #27.#70       // java/util/LinkedHashMap.\"<init>\":()V\n-   #29 = InterfaceMethodref #101.#102     // java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-   #30 = Class              #103          // dev/langchain4j/rag/content/aggregator/DefaultContentAggregatorTest\n-   #31 = Class              #104          // java/lang/Object\n-   #32 = Utf8               aggregator\n-   #33 = Utf8               Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n-   #34 = Utf8               <init>\n-   #35 = Utf8               ()V\n-   #36 = Utf8               Code\n-   #37 = Utf8               LineNumberTable\n-   #38 = Utf8               LocalVariableTable\n-   #39 = Utf8               this\n-   #40 = Utf8               Ldev/langchain4j/rag/content/aggregator/DefaultContentAggregatorTest;\n-   #41 = Utf8               should_return_same_contents_when_single_query_and_single_contents\n-   #42 = Utf8               query\n-   #43 = Utf8               Ldev/langchain4j/rag/query/Query;\n-   #44 = Utf8               content1\n-   #45 = Utf8               Ldev/langchain4j/rag/content/Content;\n-   #46 = Utf8               content2\n-   #47 = Utf8               queryToContents\n-   #48 = Utf8               Ljava/util/Map;\n-   #49 = Utf8               aggregated\n-   #50 = Utf8               Ljava/util/List;\n-   #51 = Utf8               LocalVariableTypeTable\n-   #52 = Utf8               Ljava/util/Map<Ldev/langchain4j/rag/query/Query;Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;>;\n-   #53 = Utf8               Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n-   #54 = Utf8               RuntimeVisibleAnnotations\n-   #55 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #56 = Utf8               should_fuse_contents_when_single_query_and_multiple_contents\n-   #57 = Utf8               content3\n-   #58 = Utf8               content4\n-   #59 = Utf8               should_fuse_contents_when_single_query_and_multiple_contents_with_repeating_content\n-   #60 = Utf8               should_fuse_contents_when_multiple_queries_and_multiple_contents\n-   #61 = Utf8               query1\n-   #62 = Utf8               query2\n-   #63 = Utf8               content5\n-   #64 = Utf8               content6\n-   #65 = Utf8               content7\n-   #66 = Utf8               content8\n-   #67 = Utf8               should_fuse_contents_when_multiple_queries_and_multiple_contents_with_repeating_content_between_queries\n-   #68 = Utf8               SourceFile\n-   #69 = Utf8               DefaultContentAggregatorTest.java\n-   #70 = NameAndType        #34:#35       // \"<init>\":()V\n-   #71 = Utf8               dev/langchain4j/rag/content/aggregator/DefaultContentAggregator\n-   #72 = NameAndType        #32:#33       // aggregator:Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n-   #73 = Class              #105          // dev/langchain4j/rag/query/Query\n-   #74 = NameAndType        #106:#107     // from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-   #75 = Utf8               content 1\n-   #76 = NameAndType        #106:#108     // from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n-   #77 = Utf8               content 2\n-   #78 = Utf8               dev/langchain4j/rag/content/Content\n-   #79 = Class              #109          // java/util/Arrays\n-   #80 = NameAndType        #110:#111     // asList:([Ljava/lang/Object;)Ljava/util/List;\n-   #81 = Class              #112          // java/util/Collections\n-   #82 = NameAndType        #113:#114     // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-   #83 = NameAndType        #115:#116     // singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-   #84 = Class              #117          // dev/langchain4j/rag/content/aggregator/ContentAggregator\n-   #85 = NameAndType        #118:#119     // aggregate:(Ljava/util/Map;)Ljava/util/List;\n-   #86 = Class              #120          // org/assertj/core/api/Assertions\n-   #87 = NameAndType        #121:#122     // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-   #88 = Class              #123          // org/assertj/core/api/ListAssert\n-   #89 = NameAndType        #124:#125     // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-   #90 = Utf8               content 3\n-   #91 = Utf8               content 4\n-   #92 = Utf8               java/util/List\n-   #93 = Utf8               content\n-   #94 = Utf8               query 1\n-   #95 = Utf8               query 2\n-   #96 = Utf8               content 5\n-   #97 = Utf8               content 6\n-   #98 = Utf8               content 7\n-   #99 = Utf8               content 8\n-  #100 = Utf8               java/util/LinkedHashMap\n-  #101 = Class              #126          // java/util/Map\n-  #102 = NameAndType        #127:#128     // put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-  #103 = Utf8               dev/langchain4j/rag/content/aggregator/DefaultContentAggregatorTest\n-  #104 = Utf8               java/lang/Object\n-  #105 = Utf8               dev/langchain4j/rag/query/Query\n-  #106 = Utf8               from\n-  #107 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-  #108 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n-  #109 = Utf8               java/util/Arrays\n-  #110 = Utf8               asList\n-  #111 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n-  #112 = Utf8               java/util/Collections\n-  #113 = Utf8               singletonList\n-  #114 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n-  #115 = Utf8               singletonMap\n-  #116 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-  #117 = Utf8               dev/langchain4j/rag/content/aggregator/ContentAggregator\n-  #118 = Utf8               aggregate\n-  #119 = Utf8               (Ljava/util/Map;)Ljava/util/List;\n-  #120 = Utf8               org/assertj/core/api/Assertions\n-  #121 = Utf8               assertThat\n-  #122 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #123 = Utf8               org/assertj/core/api/ListAssert\n-  #124 = Utf8               containsExactly\n-  #125 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #126 = Utf8               java/util/Map\n-  #127 = Utf8               put\n-  #128 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Class              #8            // dev/langchain4j/rag/content/aggregator/DefaultContentAggregator\n+    #8 = Utf8               dev/langchain4j/rag/content/aggregator/DefaultContentAggregator\n+    #9 = Methodref          #7.#3         // dev/langchain4j/rag/content/aggregator/DefaultContentAggregator.\"<init>\":()V\n+   #10 = Fieldref           #11.#12       // dev/langchain4j/rag/content/aggregator/DefaultContentAggregatorTest.aggregator:Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n+   #11 = Class              #13           // dev/langchain4j/rag/content/aggregator/DefaultContentAggregatorTest\n+   #12 = NameAndType        #14:#15       // aggregator:Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n+   #13 = Utf8               dev/langchain4j/rag/content/aggregator/DefaultContentAggregatorTest\n+   #14 = Utf8               aggregator\n+   #15 = Utf8               Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n+   #16 = String             #17           // query\n+   #17 = Utf8               query\n+   #18 = Methodref          #19.#20       // dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+   #19 = Class              #21           // dev/langchain4j/rag/query/Query\n+   #20 = NameAndType        #22:#23       // from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+   #21 = Utf8               dev/langchain4j/rag/query/Query\n+   #22 = Utf8               from\n+   #23 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+   #24 = String             #25           // content 1\n+   #25 = Utf8               content 1\n+   #26 = Methodref          #27.#28       // dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+   #27 = Class              #29           // dev/langchain4j/rag/content/Content\n+   #28 = NameAndType        #22:#30       // from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+   #29 = Utf8               dev/langchain4j/rag/content/Content\n+   #30 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+   #31 = String             #32           // content 2\n+   #32 = Utf8               content 2\n+   #33 = Methodref          #34.#35       // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+   #34 = Class              #36           // java/util/Arrays\n+   #35 = NameAndType        #37:#38       // asList:([Ljava/lang/Object;)Ljava/util/List;\n+   #36 = Utf8               java/util/Arrays\n+   #37 = Utf8               asList\n+   #38 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n+   #39 = Methodref          #40.#41       // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+   #40 = Class              #42           // java/util/Collections\n+   #41 = NameAndType        #43:#44       // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+   #42 = Utf8               java/util/Collections\n+   #43 = Utf8               singletonList\n+   #44 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n+   #45 = Methodref          #40.#46       // java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+   #46 = NameAndType        #47:#48       // singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+   #47 = Utf8               singletonMap\n+   #48 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+   #49 = InterfaceMethodref #50.#51       // dev/langchain4j/rag/content/aggregator/ContentAggregator.aggregate:(Ljava/util/Map;)Ljava/util/List;\n+   #50 = Class              #52           // dev/langchain4j/rag/content/aggregator/ContentAggregator\n+   #51 = NameAndType        #53:#54       // aggregate:(Ljava/util/Map;)Ljava/util/List;\n+   #52 = Utf8               dev/langchain4j/rag/content/aggregator/ContentAggregator\n+   #53 = Utf8               aggregate\n+   #54 = Utf8               (Ljava/util/Map;)Ljava/util/List;\n+   #55 = Methodref          #56.#57       // org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+   #56 = Class              #58           // org/assertj/core/api/Assertions\n+   #57 = NameAndType        #59:#60       // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+   #58 = Utf8               org/assertj/core/api/Assertions\n+   #59 = Utf8               assertThat\n+   #60 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+   #61 = Methodref          #62.#63       // org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #62 = Class              #64           // org/assertj/core/api/ListAssert\n+   #63 = NameAndType        #65:#66       // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #64 = Utf8               org/assertj/core/api/ListAssert\n+   #65 = Utf8               containsExactly\n+   #66 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #67 = String             #68           // content 3\n+   #68 = Utf8               content 3\n+   #69 = String             #70           // content 4\n+   #70 = Utf8               content 4\n+   #71 = Class              #72           // java/util/List\n+   #72 = Utf8               java/util/List\n+   #73 = String             #74           // content\n+   #74 = Utf8               content\n+   #75 = String             #76           // query 1\n+   #76 = Utf8               query 1\n+   #77 = String             #78           // query 2\n+   #78 = Utf8               query 2\n+   #79 = String             #80           // content 5\n+   #80 = Utf8               content 5\n+   #81 = String             #82           // content 6\n+   #82 = Utf8               content 6\n+   #83 = String             #84           // content 7\n+   #84 = Utf8               content 7\n+   #85 = String             #86           // content 8\n+   #86 = Utf8               content 8\n+   #87 = Class              #88           // java/util/LinkedHashMap\n+   #88 = Utf8               java/util/LinkedHashMap\n+   #89 = Methodref          #87.#3        // java/util/LinkedHashMap.\"<init>\":()V\n+   #90 = InterfaceMethodref #91.#92       // java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+   #91 = Class              #93           // java/util/Map\n+   #92 = NameAndType        #94:#95       // put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+   #93 = Utf8               java/util/Map\n+   #94 = Utf8               put\n+   #95 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+   #96 = Utf8               Code\n+   #97 = Utf8               LineNumberTable\n+   #98 = Utf8               LocalVariableTable\n+   #99 = Utf8               this\n+  #100 = Utf8               Ldev/langchain4j/rag/content/aggregator/DefaultContentAggregatorTest;\n+  #101 = Utf8               should_return_same_contents_when_single_query_and_single_contents\n+  #102 = Utf8               Ldev/langchain4j/rag/query/Query;\n+  #103 = Utf8               content1\n+  #104 = Utf8               Ldev/langchain4j/rag/content/Content;\n+  #105 = Utf8               content2\n+  #106 = Utf8               queryToContents\n+  #107 = Utf8               Ljava/util/Map;\n+  #108 = Utf8               aggregated\n+  #109 = Utf8               Ljava/util/List;\n+  #110 = Utf8               LocalVariableTypeTable\n+  #111 = Utf8               Ljava/util/Map<Ldev/langchain4j/rag/query/Query;Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;>;\n+  #112 = Utf8               Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n+  #113 = Utf8               RuntimeVisibleAnnotations\n+  #114 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #115 = Utf8               should_fuse_contents_when_single_query_and_multiple_contents\n+  #116 = Utf8               content3\n+  #117 = Utf8               content4\n+  #118 = Utf8               should_fuse_contents_when_single_query_and_multiple_contents_with_repeating_content\n+  #119 = Utf8               should_fuse_contents_when_multiple_queries_and_multiple_contents\n+  #120 = Utf8               query1\n+  #121 = Utf8               query2\n+  #122 = Utf8               content5\n+  #123 = Utf8               content6\n+  #124 = Utf8               content7\n+  #125 = Utf8               content8\n+  #126 = Utf8               should_fuse_contents_when_multiple_queries_and_multiple_contents_with_repeating_content_between_queries\n+  #127 = Utf8               SourceFile\n+  #128 = Utf8               DefaultContentAggregatorTest.java\n {\n   dev.langchain4j.rag.content.aggregator.ContentAggregator aggregator;\n     descriptor: Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n     flags: (0x0000)\n \n   dev.langchain4j.rag.content.aggregator.DefaultContentAggregatorTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=3, locals=1, args_size=1\n          0: aload_0\n          1: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n          4: aload_0\n-         5: new           #2                  // class dev/langchain4j/rag/content/aggregator/DefaultContentAggregator\n+         5: new           #7                  // class dev/langchain4j/rag/content/aggregator/DefaultContentAggregator\n          8: dup\n-         9: invokespecial #3                  // Method dev/langchain4j/rag/content/aggregator/DefaultContentAggregator.\"<init>\":()V\n-        12: putfield      #4                  // Field aggregator:Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n+         9: invokespecial #9                  // Method dev/langchain4j/rag/content/aggregator/DefaultContentAggregator.\"<init>\":()V\n+        12: putfield      #10                 // Field aggregator:Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n         15: return\n       LineNumberTable:\n         line 17: 0\n         line 19: 4\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      16     0  this   Ldev/langchain4j/rag/content/aggregator/DefaultContentAggregatorTest;\n \n   void should_return_same_contents_when_single_query_and_single_contents();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=5, locals=6, args_size=1\n-         0: ldc           #5                  // String query\n-         2: invokestatic  #6                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+         0: ldc           #16                 // String query\n+         2: invokestatic  #18                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n          5: astore_1\n-         6: ldc           #7                  // String content 1\n-         8: invokestatic  #8                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+         6: ldc           #24                 // String content 1\n+         8: invokestatic  #26                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         11: astore_2\n-        12: ldc           #9                  // String content 2\n-        14: invokestatic  #8                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        12: ldc           #31                 // String content 2\n+        14: invokestatic  #26                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         17: astore_3\n         18: aload_1\n         19: iconst_2\n-        20: anewarray     #10                 // class dev/langchain4j/rag/content/Content\n+        20: anewarray     #27                 // class dev/langchain4j/rag/content/Content\n         23: dup\n         24: iconst_0\n         25: aload_2\n         26: aastore\n         27: dup\n         28: iconst_1\n         29: aload_3\n         30: aastore\n-        31: invokestatic  #11                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-        34: invokestatic  #12                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-        37: invokestatic  #13                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+        31: invokestatic  #33                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        34: invokestatic  #39                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+        37: invokestatic  #45                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n         40: astore        4\n         42: aload_0\n-        43: getfield      #4                  // Field aggregator:Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n+        43: getfield      #10                 // Field aggregator:Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n         46: aload         4\n-        48: invokeinterface #14,  2           // InterfaceMethod dev/langchain4j/rag/content/aggregator/ContentAggregator.aggregate:(Ljava/util/Map;)Ljava/util/List;\n+        48: invokeinterface #49,  2           // InterfaceMethod dev/langchain4j/rag/content/aggregator/ContentAggregator.aggregate:(Ljava/util/Map;)Ljava/util/List;\n         53: astore        5\n         55: aload         5\n-        57: invokestatic  #15                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+        57: invokestatic  #55                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n         60: iconst_2\n-        61: anewarray     #10                 // class dev/langchain4j/rag/content/Content\n+        61: anewarray     #27                 // class dev/langchain4j/rag/content/Content\n         64: dup\n         65: iconst_0\n         66: aload_2\n         67: aastore\n         68: dup\n         69: iconst_1\n         70: aload_3\n         71: aastore\n-        72: invokevirtual #16                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+        72: invokevirtual #61                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n         75: pop\n         76: return\n       LineNumberTable:\n         line 25: 0\n         line 26: 6\n         line 27: 12\n         line 29: 18\n@@ -229,80 +229,80 @@\n            42      35     4 queryToContents   Ljava/util/Map;\n            55      22     5 aggregated   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            42      35     4 queryToContents   Ljava/util/Map<Ldev/langchain4j/rag/query/Query;Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;>;\n            55      22     5 aggregated   Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n     RuntimeVisibleAnnotations:\n-      0: #55()\n+      0: #114()\n         org.junit.jupiter.api.Test\n \n   void should_fuse_contents_when_single_query_and_multiple_contents();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=8, locals=8, args_size=1\n-         0: ldc           #5                  // String query\n-         2: invokestatic  #6                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+         0: ldc           #16                 // String query\n+         2: invokestatic  #18                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n          5: astore_1\n-         6: ldc           #7                  // String content 1\n-         8: invokestatic  #8                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+         6: ldc           #24                 // String content 1\n+         8: invokestatic  #26                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         11: astore_2\n-        12: ldc           #9                  // String content 2\n-        14: invokestatic  #8                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        12: ldc           #31                 // String content 2\n+        14: invokestatic  #26                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         17: astore_3\n-        18: ldc           #17                 // String content 3\n-        20: invokestatic  #8                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        18: ldc           #67                 // String content 3\n+        20: invokestatic  #26                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         23: astore        4\n-        25: ldc           #18                 // String content 4\n-        27: invokestatic  #8                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        25: ldc           #69                 // String content 4\n+        27: invokestatic  #26                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         30: astore        5\n         32: aload_1\n         33: iconst_2\n-        34: anewarray     #19                 // class java/util/List\n+        34: anewarray     #71                 // class java/util/List\n         37: dup\n         38: iconst_0\n         39: iconst_2\n-        40: anewarray     #10                 // class dev/langchain4j/rag/content/Content\n+        40: anewarray     #27                 // class dev/langchain4j/rag/content/Content\n         43: dup\n         44: iconst_0\n         45: aload_2\n         46: aastore\n         47: dup\n         48: iconst_1\n         49: aload_3\n         50: aastore\n-        51: invokestatic  #11                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        51: invokestatic  #33                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n         54: aastore\n         55: dup\n         56: iconst_1\n         57: iconst_2\n-        58: anewarray     #10                 // class dev/langchain4j/rag/content/Content\n+        58: anewarray     #27                 // class dev/langchain4j/rag/content/Content\n         61: dup\n         62: iconst_0\n         63: aload         4\n         65: aastore\n         66: dup\n         67: iconst_1\n         68: aload         5\n         70: aastore\n-        71: invokestatic  #11                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        71: invokestatic  #33                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n         74: aastore\n-        75: invokestatic  #11                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-        78: invokestatic  #13                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+        75: invokestatic  #33                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        78: invokestatic  #45                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n         81: astore        6\n         83: aload_0\n-        84: getfield      #4                  // Field aggregator:Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n+        84: getfield      #10                 // Field aggregator:Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n         87: aload         6\n-        89: invokeinterface #14,  2           // InterfaceMethod dev/langchain4j/rag/content/aggregator/ContentAggregator.aggregate:(Ljava/util/Map;)Ljava/util/List;\n+        89: invokeinterface #49,  2           // InterfaceMethod dev/langchain4j/rag/content/aggregator/ContentAggregator.aggregate:(Ljava/util/Map;)Ljava/util/List;\n         94: astore        7\n         96: aload         7\n-        98: invokestatic  #15                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+        98: invokestatic  #55                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n        101: iconst_4\n-       102: anewarray     #10                 // class dev/langchain4j/rag/content/Content\n+       102: anewarray     #27                 // class dev/langchain4j/rag/content/Content\n        105: dup\n        106: iconst_0\n        107: aload_2\n        108: aastore\n        109: dup\n        110: iconst_1\n        111: aload         4\n@@ -311,15 +311,15 @@\n        115: iconst_2\n        116: aload_3\n        117: aastore\n        118: dup\n        119: iconst_3\n        120: aload         5\n        122: aastore\n-       123: invokevirtual #16                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+       123: invokevirtual #61                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n        126: pop\n        127: return\n       LineNumberTable:\n         line 45: 0\n         line 46: 6\n         line 47: 12\n         line 48: 18\n@@ -343,93 +343,93 @@\n            83      45     6 queryToContents   Ljava/util/Map;\n            96      32     7 aggregated   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            83      45     6 queryToContents   Ljava/util/Map<Ldev/langchain4j/rag/query/Query;Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;>;\n            96      32     7 aggregated   Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n     RuntimeVisibleAnnotations:\n-      0: #55()\n+      0: #114()\n         org.junit.jupiter.api.Test\n \n   void should_fuse_contents_when_single_query_and_multiple_contents_with_repeating_content();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=8, locals=8, args_size=1\n-         0: ldc           #5                  // String query\n-         2: invokestatic  #6                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+         0: ldc           #16                 // String query\n+         2: invokestatic  #18                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n          5: astore_1\n-         6: ldc           #7                  // String content 1\n-         8: invokestatic  #8                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+         6: ldc           #24                 // String content 1\n+         8: invokestatic  #26                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         11: astore_2\n-        12: ldc           #20                 // String content\n-        14: invokestatic  #8                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        12: ldc           #73                 // String content\n+        14: invokestatic  #26                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         17: astore_3\n-        18: ldc           #20                 // String content\n-        20: invokestatic  #8                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        18: ldc           #73                 // String content\n+        20: invokestatic  #26                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         23: astore        4\n-        25: ldc           #18                 // String content 4\n-        27: invokestatic  #8                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        25: ldc           #69                 // String content 4\n+        27: invokestatic  #26                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         30: astore        5\n         32: aload_1\n         33: iconst_2\n-        34: anewarray     #19                 // class java/util/List\n+        34: anewarray     #71                 // class java/util/List\n         37: dup\n         38: iconst_0\n         39: iconst_2\n-        40: anewarray     #10                 // class dev/langchain4j/rag/content/Content\n+        40: anewarray     #27                 // class dev/langchain4j/rag/content/Content\n         43: dup\n         44: iconst_0\n         45: aload_2\n         46: aastore\n         47: dup\n         48: iconst_1\n         49: aload_3\n         50: aastore\n-        51: invokestatic  #11                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        51: invokestatic  #33                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n         54: aastore\n         55: dup\n         56: iconst_1\n         57: iconst_2\n-        58: anewarray     #10                 // class dev/langchain4j/rag/content/Content\n+        58: anewarray     #27                 // class dev/langchain4j/rag/content/Content\n         61: dup\n         62: iconst_0\n         63: aload         4\n         65: aastore\n         66: dup\n         67: iconst_1\n         68: aload         5\n         70: aastore\n-        71: invokestatic  #11                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        71: invokestatic  #33                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n         74: aastore\n-        75: invokestatic  #11                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-        78: invokestatic  #13                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+        75: invokestatic  #33                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        78: invokestatic  #45                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n         81: astore        6\n         83: aload_0\n-        84: getfield      #4                  // Field aggregator:Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n+        84: getfield      #10                 // Field aggregator:Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n         87: aload         6\n-        89: invokeinterface #14,  2           // InterfaceMethod dev/langchain4j/rag/content/aggregator/ContentAggregator.aggregate:(Ljava/util/Map;)Ljava/util/List;\n+        89: invokeinterface #49,  2           // InterfaceMethod dev/langchain4j/rag/content/aggregator/ContentAggregator.aggregate:(Ljava/util/Map;)Ljava/util/List;\n         94: astore        7\n         96: aload         7\n-        98: invokestatic  #15                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+        98: invokestatic  #55                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n        101: iconst_3\n-       102: anewarray     #10                 // class dev/langchain4j/rag/content/Content\n+       102: anewarray     #27                 // class dev/langchain4j/rag/content/Content\n        105: dup\n        106: iconst_0\n        107: aload_3\n        108: aastore\n        109: dup\n        110: iconst_1\n        111: aload_2\n        112: aastore\n        113: dup\n        114: iconst_2\n        115: aload         5\n        117: aastore\n-       118: invokevirtual #16                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+       118: invokevirtual #61                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n        121: pop\n        122: return\n       LineNumberTable:\n         line 70: 0\n         line 71: 6\n         line 72: 12\n         line 73: 18\n@@ -454,135 +454,135 @@\n            83      40     6 queryToContents   Ljava/util/Map;\n            96      27     7 aggregated   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            83      40     6 queryToContents   Ljava/util/Map<Ldev/langchain4j/rag/query/Query;Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;>;\n            96      27     7 aggregated   Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n     RuntimeVisibleAnnotations:\n-      0: #55()\n+      0: #114()\n         org.junit.jupiter.api.Test\n \n   void should_fuse_contents_when_multiple_queries_and_multiple_contents();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=9, locals=13, args_size=1\n-         0: ldc           #21                 // String query 1\n-         2: invokestatic  #6                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+         0: ldc           #75                 // String query 1\n+         2: invokestatic  #18                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n          5: astore_1\n-         6: ldc           #7                  // String content 1\n-         8: invokestatic  #8                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+         6: ldc           #24                 // String content 1\n+         8: invokestatic  #26                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         11: astore_2\n-        12: ldc           #9                  // String content 2\n-        14: invokestatic  #8                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        12: ldc           #31                 // String content 2\n+        14: invokestatic  #26                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         17: astore_3\n-        18: ldc           #17                 // String content 3\n-        20: invokestatic  #8                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        18: ldc           #67                 // String content 3\n+        20: invokestatic  #26                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         23: astore        4\n-        25: ldc           #18                 // String content 4\n-        27: invokestatic  #8                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        25: ldc           #69                 // String content 4\n+        27: invokestatic  #26                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         30: astore        5\n-        32: ldc           #22                 // String query 2\n-        34: invokestatic  #6                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+        32: ldc           #77                 // String query 2\n+        34: invokestatic  #18                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n         37: astore        6\n-        39: ldc           #23                 // String content 5\n-        41: invokestatic  #8                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        39: ldc           #79                 // String content 5\n+        41: invokestatic  #26                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         44: astore        7\n-        46: ldc           #24                 // String content 6\n-        48: invokestatic  #8                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        46: ldc           #81                 // String content 6\n+        48: invokestatic  #26                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         51: astore        8\n-        53: ldc           #25                 // String content 7\n-        55: invokestatic  #8                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        53: ldc           #83                 // String content 7\n+        55: invokestatic  #26                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         58: astore        9\n-        60: ldc           #26                 // String content 8\n-        62: invokestatic  #8                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        60: ldc           #85                 // String content 8\n+        62: invokestatic  #26                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         65: astore        10\n-        67: new           #27                 // class java/util/LinkedHashMap\n+        67: new           #87                 // class java/util/LinkedHashMap\n         70: dup\n-        71: invokespecial #28                 // Method java/util/LinkedHashMap.\"<init>\":()V\n+        71: invokespecial #89                 // Method java/util/LinkedHashMap.\"<init>\":()V\n         74: astore        11\n         76: aload         11\n         78: aload_1\n         79: iconst_2\n-        80: anewarray     #19                 // class java/util/List\n+        80: anewarray     #71                 // class java/util/List\n         83: dup\n         84: iconst_0\n         85: iconst_2\n-        86: anewarray     #10                 // class dev/langchain4j/rag/content/Content\n+        86: anewarray     #27                 // class dev/langchain4j/rag/content/Content\n         89: dup\n         90: iconst_0\n         91: aload_2\n         92: aastore\n         93: dup\n         94: iconst_1\n         95: aload_3\n         96: aastore\n-        97: invokestatic  #11                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        97: invokestatic  #33                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        100: aastore\n        101: dup\n        102: iconst_1\n        103: iconst_2\n-       104: anewarray     #10                 // class dev/langchain4j/rag/content/Content\n+       104: anewarray     #27                 // class dev/langchain4j/rag/content/Content\n        107: dup\n        108: iconst_0\n        109: aload         4\n        111: aastore\n        112: dup\n        113: iconst_1\n        114: aload         5\n        116: aastore\n-       117: invokestatic  #11                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       117: invokestatic  #33                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        120: aastore\n-       121: invokestatic  #11                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       124: invokeinterface #29,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+       121: invokestatic  #33                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       124: invokeinterface #90,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n        129: pop\n        130: aload         11\n        132: aload         6\n        134: iconst_2\n-       135: anewarray     #19                 // class java/util/List\n+       135: anewarray     #71                 // class java/util/List\n        138: dup\n        139: iconst_0\n        140: iconst_2\n-       141: anewarray     #10                 // class dev/langchain4j/rag/content/Content\n+       141: anewarray     #27                 // class dev/langchain4j/rag/content/Content\n        144: dup\n        145: iconst_0\n        146: aload         7\n        148: aastore\n        149: dup\n        150: iconst_1\n        151: aload         8\n        153: aastore\n-       154: invokestatic  #11                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       154: invokestatic  #33                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        157: aastore\n        158: dup\n        159: iconst_1\n        160: iconst_2\n-       161: anewarray     #10                 // class dev/langchain4j/rag/content/Content\n+       161: anewarray     #27                 // class dev/langchain4j/rag/content/Content\n        164: dup\n        165: iconst_0\n        166: aload         9\n        168: aastore\n        169: dup\n        170: iconst_1\n        171: aload         10\n        173: aastore\n-       174: invokestatic  #11                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       174: invokestatic  #33                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        177: aastore\n-       178: invokestatic  #11                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       181: invokeinterface #29,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+       178: invokestatic  #33                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       181: invokeinterface #90,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n        186: pop\n        187: aload_0\n-       188: getfield      #4                  // Field aggregator:Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n+       188: getfield      #10                 // Field aggregator:Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n        191: aload         11\n-       193: invokeinterface #14,  2           // InterfaceMethod dev/langchain4j/rag/content/aggregator/ContentAggregator.aggregate:(Ljava/util/Map;)Ljava/util/List;\n+       193: invokeinterface #49,  2           // InterfaceMethod dev/langchain4j/rag/content/aggregator/ContentAggregator.aggregate:(Ljava/util/Map;)Ljava/util/List;\n        198: astore        12\n        200: aload         12\n-       202: invokestatic  #15                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+       202: invokestatic  #55                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n        205: bipush        8\n-       207: anewarray     #10                 // class dev/langchain4j/rag/content/Content\n+       207: anewarray     #27                 // class dev/langchain4j/rag/content/Content\n        210: dup\n        211: iconst_0\n        212: aload_2\n        213: aastore\n        214: dup\n        215: iconst_1\n        216: aload         7\n@@ -607,15 +607,15 @@\n        239: bipush        6\n        241: aload         5\n        243: aastore\n        244: dup\n        245: bipush        7\n        247: aload         10\n        249: aastore\n-       250: invokevirtual #16                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+       250: invokevirtual #61                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n        253: pop\n        254: return\n       LineNumberTable:\n         line 97: 0\n         line 98: 6\n         line 99: 12\n         line 100: 18\n@@ -656,135 +656,135 @@\n            76     179    11 queryToContents   Ljava/util/Map;\n           200      55    12 aggregated   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            76     179    11 queryToContents   Ljava/util/Map<Ldev/langchain4j/rag/query/Query;Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;>;\n           200      55    12 aggregated   Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n     RuntimeVisibleAnnotations:\n-      0: #55()\n+      0: #114()\n         org.junit.jupiter.api.Test\n \n   void should_fuse_contents_when_multiple_queries_and_multiple_contents_with_repeating_content_between_queries();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=9, locals=13, args_size=1\n-         0: ldc           #21                 // String query 1\n-         2: invokestatic  #6                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+         0: ldc           #75                 // String query 1\n+         2: invokestatic  #18                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n          5: astore_1\n-         6: ldc           #20                 // String content\n-         8: invokestatic  #8                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+         6: ldc           #73                 // String content\n+         8: invokestatic  #26                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         11: astore_2\n-        12: ldc           #9                  // String content 2\n-        14: invokestatic  #8                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        12: ldc           #31                 // String content 2\n+        14: invokestatic  #26                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         17: astore_3\n-        18: ldc           #17                 // String content 3\n-        20: invokestatic  #8                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        18: ldc           #67                 // String content 3\n+        20: invokestatic  #26                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         23: astore        4\n-        25: ldc           #18                 // String content 4\n-        27: invokestatic  #8                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        25: ldc           #69                 // String content 4\n+        27: invokestatic  #26                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         30: astore        5\n-        32: ldc           #22                 // String query 2\n-        34: invokestatic  #6                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+        32: ldc           #77                 // String query 2\n+        34: invokestatic  #18                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n         37: astore        6\n-        39: ldc           #23                 // String content 5\n-        41: invokestatic  #8                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        39: ldc           #79                 // String content 5\n+        41: invokestatic  #26                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         44: astore        7\n-        46: ldc           #24                 // String content 6\n-        48: invokestatic  #8                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        46: ldc           #81                 // String content 6\n+        48: invokestatic  #26                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         51: astore        8\n-        53: ldc           #20                 // String content\n-        55: invokestatic  #8                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        53: ldc           #73                 // String content\n+        55: invokestatic  #26                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         58: astore        9\n-        60: ldc           #26                 // String content 8\n-        62: invokestatic  #8                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        60: ldc           #85                 // String content 8\n+        62: invokestatic  #26                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         65: astore        10\n-        67: new           #27                 // class java/util/LinkedHashMap\n+        67: new           #87                 // class java/util/LinkedHashMap\n         70: dup\n-        71: invokespecial #28                 // Method java/util/LinkedHashMap.\"<init>\":()V\n+        71: invokespecial #89                 // Method java/util/LinkedHashMap.\"<init>\":()V\n         74: astore        11\n         76: aload         11\n         78: aload_1\n         79: iconst_2\n-        80: anewarray     #19                 // class java/util/List\n+        80: anewarray     #71                 // class java/util/List\n         83: dup\n         84: iconst_0\n         85: iconst_2\n-        86: anewarray     #10                 // class dev/langchain4j/rag/content/Content\n+        86: anewarray     #27                 // class dev/langchain4j/rag/content/Content\n         89: dup\n         90: iconst_0\n         91: aload_2\n         92: aastore\n         93: dup\n         94: iconst_1\n         95: aload_3\n         96: aastore\n-        97: invokestatic  #11                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        97: invokestatic  #33                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        100: aastore\n        101: dup\n        102: iconst_1\n        103: iconst_2\n-       104: anewarray     #10                 // class dev/langchain4j/rag/content/Content\n+       104: anewarray     #27                 // class dev/langchain4j/rag/content/Content\n        107: dup\n        108: iconst_0\n        109: aload         4\n        111: aastore\n        112: dup\n        113: iconst_1\n        114: aload         5\n        116: aastore\n-       117: invokestatic  #11                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       117: invokestatic  #33                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        120: aastore\n-       121: invokestatic  #11                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       124: invokeinterface #29,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+       121: invokestatic  #33                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       124: invokeinterface #90,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n        129: pop\n        130: aload         11\n        132: aload         6\n        134: iconst_2\n-       135: anewarray     #19                 // class java/util/List\n+       135: anewarray     #71                 // class java/util/List\n        138: dup\n        139: iconst_0\n        140: iconst_2\n-       141: anewarray     #10                 // class dev/langchain4j/rag/content/Content\n+       141: anewarray     #27                 // class dev/langchain4j/rag/content/Content\n        144: dup\n        145: iconst_0\n        146: aload         7\n        148: aastore\n        149: dup\n        150: iconst_1\n        151: aload         8\n        153: aastore\n-       154: invokestatic  #11                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       154: invokestatic  #33                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        157: aastore\n        158: dup\n        159: iconst_1\n        160: iconst_2\n-       161: anewarray     #10                 // class dev/langchain4j/rag/content/Content\n+       161: anewarray     #27                 // class dev/langchain4j/rag/content/Content\n        164: dup\n        165: iconst_0\n        166: aload         9\n        168: aastore\n        169: dup\n        170: iconst_1\n        171: aload         10\n        173: aastore\n-       174: invokestatic  #11                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       174: invokestatic  #33                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        177: aastore\n-       178: invokestatic  #11                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       181: invokeinterface #29,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+       178: invokestatic  #33                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       181: invokeinterface #90,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n        186: pop\n        187: aload_0\n-       188: getfield      #4                  // Field aggregator:Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n+       188: getfield      #10                 // Field aggregator:Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n        191: aload         11\n-       193: invokeinterface #14,  2           // InterfaceMethod dev/langchain4j/rag/content/aggregator/ContentAggregator.aggregate:(Ljava/util/Map;)Ljava/util/List;\n+       193: invokeinterface #49,  2           // InterfaceMethod dev/langchain4j/rag/content/aggregator/ContentAggregator.aggregate:(Ljava/util/Map;)Ljava/util/List;\n        198: astore        12\n        200: aload         12\n-       202: invokestatic  #15                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+       202: invokestatic  #55                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n        205: bipush        7\n-       207: anewarray     #10                 // class dev/langchain4j/rag/content/Content\n+       207: anewarray     #27                 // class dev/langchain4j/rag/content/Content\n        210: dup\n        211: iconst_0\n        212: aload_2\n        213: aastore\n        214: dup\n        215: iconst_1\n        216: aload         7\n@@ -805,15 +805,15 @@\n        234: iconst_5\n        235: aload         5\n        237: aastore\n        238: dup\n        239: bipush        6\n        241: aload         10\n        243: aastore\n-       244: invokevirtual #16                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+       244: invokevirtual #61                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n        247: pop\n        248: return\n       LineNumberTable:\n         line 138: 0\n         line 139: 6\n         line 140: 12\n         line 141: 18\n@@ -854,11 +854,11 @@\n            76     173    11 queryToContents   Ljava/util/Map;\n           200      49    12 aggregated   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            76     173    11 queryToContents   Ljava/util/Map<Ldev/langchain4j/rag/query/Query;Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;>;\n           200      49    12 aggregated   Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n     RuntimeVisibleAnnotations:\n-      0: #55()\n+      0: #114()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"DefaultContentAggregatorTest.java\"\n"}]}, {"source1": "dev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest.class", "source2": "dev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,344 +1,344 @@\n-  SHA-256 checksum 14a7aa258f330c81f37335084cfa9c7070b2601914c98e619d854b4e2720935c\n+  SHA-256 checksum 1b368fee53ab9986cbdd63d8e7f83039c371e552a965d31f3a25f0e956a287c4\n   Compiled from \"ReRankingContentAggregatorTest.java\"\n class dev.langchain4j.rag.content.aggregator.ReRankingContentAggregatorTest\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #81                         // dev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest\n-  super_class: #32                        // java/lang/Object\n+  this_class: #240                        // dev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 0, methods: 9, attributes: 3\n Constant pool:\n-    #1 = Methodref          #32.#144      // java/lang/Object.\"<init>\":()V\n-    #2 = String             #93           // query\n-    #3 = Methodref          #77.#145      // dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-    #4 = String             #146          // content 1\n-    #5 = Methodref          #7.#147       // dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n-    #6 = String             #148          // content 2\n-    #7 = Class              #149          // dev/langchain4j/rag/content/Content\n-    #8 = Methodref          #150.#151     // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-    #9 = Methodref          #152.#153     // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-   #10 = Methodref          #152.#154     // java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-   #11 = Class              #155          // dev/langchain4j/model/scoring/ScoringModel\n-   #12 = Methodref          #156.#157     // org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-   #13 = Methodref          #158.#159     // org/mockito/ArgumentMatchers.any:()Ljava/lang/Object;\n-   #14 = Class              #160          // java/util/List\n-   #15 = Class              #161          // java/lang/String\n-   #16 = InterfaceMethodref #11.#162      // dev/langchain4j/model/scoring/ScoringModel.scoreAll:(Ljava/util/List;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n-   #17 = Methodref          #156.#163     // org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n-   #18 = Class              #164          // java/lang/Double\n-   #19 = Double             0.5d\n-   #21 = Methodref          #18.#165      // java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-   #22 = Double             0.7d\n-   #24 = Methodref          #166.#167     // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-   #25 = InterfaceMethodref #168.#169     // org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n-   #26 = InterfaceMethodref #170.#171     // java/util/function/Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;\n-   #27 = Class              #172          // dev/langchain4j/rag/content/aggregator/ContentAggregator\n-   #28 = InterfaceMethodref #27.#173      // dev/langchain4j/rag/content/aggregator/ContentAggregator.aggregate:(Ljava/util/Map;)Ljava/util/List;\n-   #29 = Methodref          #174.#175     // org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-   #30 = Methodref          #176.#177     // org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-   #31 = InterfaceMethodref #178.#179     // java/util/stream/Stream.builder:()Ljava/util/stream/Stream$Builder;\n-   #32 = Class              #180          // java/lang/Object\n-   #33 = InvokeDynamic      #0:#186       // #0:apply:()Ljava/util/function/Function;\n-   #34 = InterfaceMethodref #187.#188     // org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-   #35 = InterfaceMethodref #189.#190     // java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n-   #36 = InvokeDynamic      #1:#186       // #1:apply:()Ljava/util/function/Function;\n-   #37 = InterfaceMethodref #189.#192     // java/util/stream/Stream$Builder.build:()Ljava/util/stream/Stream;\n-   #38 = String             #193          // content\n-   #39 = String             #194          // content 4\n-   #40 = Class              #195          // dev/langchain4j/data/segment/TextSegment\n-   #41 = Methodref          #7.#196       // dev/langchain4j/rag/content/Content.textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n-   #42 = Methodref          #77.#197      // dev/langchain4j/rag/query/Query.text:()Ljava/lang/String;\n-   #43 = Double             0.9d\n-   #45 = Class              #198          // dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator\n-   #46 = Methodref          #45.#199      // dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator.\"<init>\":(Ldev/langchain4j/model/scoring/ScoringModel;)V\n-   #47 = Class              #200          // java/util/HashMap\n-   #48 = Methodref          #47.#144      // java/util/HashMap.\"<init>\":()V\n-   #49 = String             #201          // query 1\n-   #50 = InterfaceMethodref #202.#203     // java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-   #51 = String             #204          // query 2\n-   #52 = InvokeDynamic      #2:#207       // #2:call:(Ldev/langchain4j/rag/content/aggregator/ContentAggregator;Ljava/util/Map;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #53 = Methodref          #174.#208     // org/assertj/core/api/Assertions.assertThatThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/AbstractThrowableAssert;\n-   #54 = Class              #209          // java/lang/IllegalArgumentException\n-   #55 = Methodref          #56.#210      // org/assertj/core/api/AbstractThrowableAssert.isExactlyInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n-   #56 = Class              #211          // org/assertj/core/api/AbstractThrowableAssert\n-   #57 = String             #212          // The \\'queryToContents\\' contains 2 queries, making the re-ranking ambiguous. Because there are multiple queries, it is unclear which one should be used for re-ranking. Please provide a \\'querySelector\\' in the constructor/builder.\n-   #58 = Methodref          #56.#213      // org/assertj/core/api/AbstractThrowableAssert.hasMessage:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractThrowableAssert;\n-   #59 = InvokeDynamic      #3:#186       // #3:apply:()Ljava/util/function/Function;\n-   #60 = Double             0.4d\n-   #62 = String             #216          // content 3\n-   #63 = String             #217          // content 5\n-   #64 = String             #218          // content 8\n-   #65 = Class              #219          // java/util/LinkedHashMap\n-   #66 = Methodref          #65.#144      // java/util/LinkedHashMap.\"<init>\":()V\n-   #67 = Double             0.6d\n-   #69 = Double             0.2d\n-   #71 = Double             0.3d\n-   #73 = Methodref          #45.#220      // dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator.\"<init>\":(Ldev/langchain4j/model/scoring/ScoringModel;Ljava/util/function/Function;Ljava/lang/Double;)V\n-   #74 = InterfaceMethodref #202.#221     // java/util/Map.keySet:()Ljava/util/Set;\n-   #75 = InterfaceMethodref #222.#223     // java/util/Set.iterator:()Ljava/util/Iterator;\n-   #76 = InterfaceMethodref #224.#225     // java/util/Iterator.next:()Ljava/lang/Object;\n-   #77 = Class              #226          // dev/langchain4j/rag/query/Query\n-   #78 = Methodref          #45.#227      // dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator.builder:()Ldev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder;\n-   #79 = Methodref          #228.#229     // dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder.scoringModel:(Ldev/langchain4j/model/scoring/ScoringModel;)Ldev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder;\n-   #80 = Methodref          #228.#230     // dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder.build:()Ldev/langchain4j/rag/content/aggregator/ReRankingContentAggregator;\n-   #81 = Class              #231          // dev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest\n-   #82 = Utf8               <init>\n-   #83 = Utf8               ()V\n-   #84 = Utf8               Code\n-   #85 = Utf8               LineNumberTable\n-   #86 = Utf8               LocalVariableTable\n-   #87 = Utf8               this\n-   #88 = Utf8               Ldev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest;\n-   #89 = Utf8               should_rerank_when_single_query_and_single_contents\n-   #90 = Utf8               (Ljava/util/function/Function;)V\n-   #91 = Utf8               contentAggregatorProvider\n-   #92 = Utf8               Ljava/util/function/Function;\n-   #93 = Utf8               query\n-   #94 = Utf8               Ldev/langchain4j/rag/query/Query;\n-   #95 = Utf8               content1\n-   #96 = Utf8               Ldev/langchain4j/rag/content/Content;\n-   #97 = Utf8               content2\n-   #98 = Utf8               queryToContents\n-   #99 = Utf8               Ljava/util/Map;\n-  #100 = Utf8               scoringModel\n-  #101 = Utf8               Ldev/langchain4j/model/scoring/ScoringModel;\n-  #102 = Utf8               aggregator\n-  #103 = Utf8               Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n-  #104 = Utf8               aggregated\n-  #105 = Utf8               Ljava/util/List;\n-  #106 = Utf8               LocalVariableTypeTable\n-  #107 = Utf8               Ljava/util/function/Function<Ldev/langchain4j/model/scoring/ScoringModel;Ldev/langchain4j/rag/content/aggregator/ContentAggregator;>;\n-  #108 = Utf8               Ljava/util/Map<Ldev/langchain4j/rag/query/Query;Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;>;\n-  #109 = Utf8               Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n-  #110 = Utf8               Signature\n-  #111 = Utf8               (Ljava/util/function/Function<Ldev/langchain4j/model/scoring/ScoringModel;Ldev/langchain4j/rag/content/aggregator/ContentAggregator;>;)V\n-  #112 = Utf8               RuntimeVisibleAnnotations\n-  #113 = Utf8               Lorg/junit/jupiter/params/ParameterizedTest;\n-  #114 = Utf8               Lorg/junit/jupiter/params/provider/MethodSource;\n-  #115 = Utf8               ()Ljava/util/stream/Stream;\n-  #116 = Utf8               ()Ljava/util/stream/Stream<Lorg/junit/jupiter/params/provider/Arguments;>;\n-  #117 = Utf8               should_fuse_then_rerank_when_single_query_and_multiple_contents\n-  #118 = Utf8               content3\n-  #119 = Utf8               content4\n-  #120 = Utf8               Lorg/junit/jupiter/api/Test;\n-  #121 = Utf8               should_fail_when_multiple_queries_with_default_query_selector\n-  #122 = Utf8               should_fuse_then_rerank_against_first_query_then_filter_by_minScore\n-  #123 = Utf8               querySelector\n-  #124 = Utf8               minScore\n-  #125 = Utf8               D\n-  #126 = Utf8               query1\n-  #127 = Utf8               query2\n-  #128 = Utf8               content5\n-  #129 = Utf8               content6\n-  #130 = Utf8               content7\n-  #131 = Utf8               content8\n-  #132 = Utf8               Ljava/util/function/Function<Ljava/util/Map<Ldev/langchain4j/rag/query/Query;Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;>;Ldev/langchain4j/rag/query/Query;>;\n-  #133 = Utf8               lambda$should_fuse_then_rerank_against_first_query_then_filter_by_minScore$2\n-  #134 = Utf8               (Ljava/util/Map;)Ldev/langchain4j/rag/query/Query;\n-  #135 = Utf8               q\n-  #136 = Utf8               lambda$should_fail_when_multiple_queries_with_default_query_selector$1\n-  #137 = Utf8               (Ldev/langchain4j/rag/content/aggregator/ContentAggregator;Ljava/util/Map;)V\n-  #138 = Utf8               Exceptions\n-  #139 = Class              #232          // java/lang/Throwable\n-  #140 = Utf8               lambda$should_rerank_when_single_query_and_single_contents$0\n-  #141 = Utf8               (Ldev/langchain4j/model/scoring/ScoringModel;)Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n-  #142 = Utf8               SourceFile\n-  #143 = Utf8               ReRankingContentAggregatorTest.java\n-  #144 = NameAndType        #82:#83       // \"<init>\":()V\n-  #145 = NameAndType        #233:#234     // from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-  #146 = Utf8               content 1\n-  #147 = NameAndType        #233:#235     // from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n-  #148 = Utf8               content 2\n-  #149 = Utf8               dev/langchain4j/rag/content/Content\n-  #150 = Class              #236          // java/util/Arrays\n-  #151 = NameAndType        #237:#238     // asList:([Ljava/lang/Object;)Ljava/util/List;\n-  #152 = Class              #239          // java/util/Collections\n-  #153 = NameAndType        #240:#241     // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-  #154 = NameAndType        #242:#243     // singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-  #155 = Utf8               dev/langchain4j/model/scoring/ScoringModel\n-  #156 = Class              #244          // org/mockito/Mockito\n-  #157 = NameAndType        #245:#246     // mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-  #158 = Class              #247          // org/mockito/ArgumentMatchers\n-  #159 = NameAndType        #248:#249     // any:()Ljava/lang/Object;\n-  #160 = Utf8               java/util/List\n-  #161 = Utf8               java/lang/String\n-  #162 = NameAndType        #250:#251     // scoreAll:(Ljava/util/List;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n-  #163 = NameAndType        #252:#253     // when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n-  #164 = Utf8               java/lang/Double\n-  #165 = NameAndType        #254:#255     // valueOf:(D)Ljava/lang/Double;\n-  #166 = Class              #256          // dev/langchain4j/model/output/Response\n-  #167 = NameAndType        #233:#257     // from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-  #168 = Class              #258          // org/mockito/stubbing/OngoingStubbing\n-  #169 = NameAndType        #259:#253     // thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n-  #170 = Class              #260          // java/util/function/Function\n-  #171 = NameAndType        #261:#262     // apply:(Ljava/lang/Object;)Ljava/lang/Object;\n-  #172 = Utf8               dev/langchain4j/rag/content/aggregator/ContentAggregator\n-  #173 = NameAndType        #263:#264     // aggregate:(Ljava/util/Map;)Ljava/util/List;\n-  #174 = Class              #265          // org/assertj/core/api/Assertions\n-  #175 = NameAndType        #266:#267     // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #176 = Class              #268          // org/assertj/core/api/ListAssert\n-  #177 = NameAndType        #269:#270     // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #178 = Class              #271          // java/util/stream/Stream\n-  #179 = NameAndType        #272:#275     // builder:()Ljava/util/stream/Stream$Builder;\n-  #180 = Utf8               java/lang/Object\n-  #181 = Utf8               BootstrapMethods\n-  #182 = MethodHandle       6:#276        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #183 = MethodType         #262          //  (Ljava/lang/Object;)Ljava/lang/Object;\n-  #184 = MethodHandle       8:#46         // REF_newInvokeSpecial dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator.\"<init>\":(Ldev/langchain4j/model/scoring/ScoringModel;)V\n-  #185 = MethodType         #141          //  (Ldev/langchain4j/model/scoring/ScoringModel;)Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n-  #186 = NameAndType        #261:#277     // apply:()Ljava/util/function/Function;\n-  #187 = Class              #278          // org/junit/jupiter/params/provider/Arguments\n-  #188 = NameAndType        #279:#280     // of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-  #189 = Class              #281          // java/util/stream/Stream$Builder\n-  #190 = NameAndType        #282:#283     // add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n-  #191 = MethodHandle       6:#284        // REF_invokeStatic dev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest.lambda$should_rerank_when_single_query_and_single_contents$0:(Ldev/langchain4j/model/scoring/ScoringModel;)Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n-  #192 = NameAndType        #285:#115     // build:()Ljava/util/stream/Stream;\n-  #193 = Utf8               content\n-  #194 = Utf8               content 4\n-  #195 = Utf8               dev/langchain4j/data/segment/TextSegment\n-  #196 = NameAndType        #286:#287     // textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n-  #197 = NameAndType        #288:#289     // text:()Ljava/lang/String;\n-  #198 = Utf8               dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator\n-  #199 = NameAndType        #82:#290      // \"<init>\":(Ldev/langchain4j/model/scoring/ScoringModel;)V\n-  #200 = Utf8               java/util/HashMap\n-  #201 = Utf8               query 1\n-  #202 = Class              #291          // java/util/Map\n-  #203 = NameAndType        #292:#293     // put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-  #204 = Utf8               query 2\n-  #205 = MethodType         #83           //  ()V\n-  #206 = MethodHandle       6:#294        // REF_invokeStatic dev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest.lambda$should_fail_when_multiple_queries_with_default_query_selector$1:(Ldev/langchain4j/rag/content/aggregator/ContentAggregator;Ljava/util/Map;)V\n-  #207 = NameAndType        #295:#298     // call:(Ldev/langchain4j/rag/content/aggregator/ContentAggregator;Ljava/util/Map;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-  #208 = NameAndType        #299:#300     // assertThatThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/AbstractThrowableAssert;\n-  #209 = Utf8               java/lang/IllegalArgumentException\n-  #210 = NameAndType        #301:#302     // isExactlyInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n-  #211 = Utf8               org/assertj/core/api/AbstractThrowableAssert\n-  #212 = Utf8               The \\'queryToContents\\' contains 2 queries, making the re-ranking ambiguous. Because there are multiple queries, it is unclear which one should be used for re-ranking. Please provide a \\'querySelector\\' in the constructor/builder.\n-  #213 = NameAndType        #303:#304     // hasMessage:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractThrowableAssert;\n-  #214 = MethodHandle       6:#305        // REF_invokeStatic dev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest.lambda$should_fuse_then_rerank_against_first_query_then_filter_by_minScore$2:(Ljava/util/Map;)Ldev/langchain4j/rag/query/Query;\n-  #215 = MethodType         #134          //  (Ljava/util/Map;)Ldev/langchain4j/rag/query/Query;\n-  #216 = Utf8               content 3\n-  #217 = Utf8               content 5\n-  #218 = Utf8               content 8\n-  #219 = Utf8               java/util/LinkedHashMap\n-  #220 = NameAndType        #82:#306      // \"<init>\":(Ldev/langchain4j/model/scoring/ScoringModel;Ljava/util/function/Function;Ljava/lang/Double;)V\n-  #221 = NameAndType        #307:#308     // keySet:()Ljava/util/Set;\n-  #222 = Class              #309          // java/util/Set\n-  #223 = NameAndType        #310:#311     // iterator:()Ljava/util/Iterator;\n-  #224 = Class              #312          // java/util/Iterator\n-  #225 = NameAndType        #313:#249     // next:()Ljava/lang/Object;\n-  #226 = Utf8               dev/langchain4j/rag/query/Query\n-  #227 = NameAndType        #272:#315     // builder:()Ldev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder;\n-  #228 = Class              #316          // dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder\n-  #229 = NameAndType        #100:#317     // scoringModel:(Ldev/langchain4j/model/scoring/ScoringModel;)Ldev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder;\n-  #230 = NameAndType        #285:#318     // build:()Ldev/langchain4j/rag/content/aggregator/ReRankingContentAggregator;\n-  #231 = Utf8               dev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest\n-  #232 = Utf8               java/lang/Throwable\n-  #233 = Utf8               from\n-  #234 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-  #235 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n-  #236 = Utf8               java/util/Arrays\n-  #237 = Utf8               asList\n-  #238 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n-  #239 = Utf8               java/util/Collections\n-  #240 = Utf8               singletonList\n-  #241 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n-  #242 = Utf8               singletonMap\n-  #243 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-  #244 = Utf8               org/mockito/Mockito\n-  #245 = Utf8               mock\n-  #246 = Utf8               (Ljava/lang/Class;)Ljava/lang/Object;\n-  #247 = Utf8               org/mockito/ArgumentMatchers\n-  #248 = Utf8               any\n-  #249 = Utf8               ()Ljava/lang/Object;\n-  #250 = Utf8               scoreAll\n-  #251 = Utf8               (Ljava/util/List;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n-  #252 = Utf8               when\n-  #253 = Utf8               (Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n-  #254 = Utf8               valueOf\n-  #255 = Utf8               (D)Ljava/lang/Double;\n-  #256 = Utf8               dev/langchain4j/model/output/Response\n-  #257 = Utf8               (Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-  #258 = Utf8               org/mockito/stubbing/OngoingStubbing\n-  #259 = Utf8               thenReturn\n-  #260 = Utf8               java/util/function/Function\n-  #261 = Utf8               apply\n-  #262 = Utf8               (Ljava/lang/Object;)Ljava/lang/Object;\n-  #263 = Utf8               aggregate\n-  #264 = Utf8               (Ljava/util/Map;)Ljava/util/List;\n-  #265 = Utf8               org/assertj/core/api/Assertions\n-  #266 = Utf8               assertThat\n-  #267 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #268 = Utf8               org/assertj/core/api/ListAssert\n-  #269 = Utf8               containsExactly\n-  #270 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #271 = Utf8               java/util/stream/Stream\n-  #272 = Utf8               builder\n-  #273 = Utf8               Builder\n-  #274 = Utf8               InnerClasses\n-  #275 = Utf8               ()Ljava/util/stream/Stream$Builder;\n-  #276 = Methodref          #319.#320     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #277 = Utf8               ()Ljava/util/function/Function;\n-  #278 = Utf8               org/junit/jupiter/params/provider/Arguments\n-  #279 = Utf8               of\n-  #280 = Utf8               ([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-  #281 = Utf8               java/util/stream/Stream$Builder\n-  #282 = Utf8               add\n-  #283 = Utf8               (Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n-  #284 = Methodref          #81.#321      // dev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest.lambda$should_rerank_when_single_query_and_single_contents$0:(Ldev/langchain4j/model/scoring/ScoringModel;)Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n-  #285 = Utf8               build\n-  #286 = Utf8               textSegment\n-  #287 = Utf8               ()Ldev/langchain4j/data/segment/TextSegment;\n-  #288 = Utf8               text\n-  #289 = Utf8               ()Ljava/lang/String;\n-  #290 = Utf8               (Ldev/langchain4j/model/scoring/ScoringModel;)V\n-  #291 = Utf8               java/util/Map\n-  #292 = Utf8               put\n-  #293 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-  #294 = Methodref          #81.#322      // dev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest.lambda$should_fail_when_multiple_queries_with_default_query_selector$1:(Ldev/langchain4j/rag/content/aggregator/ContentAggregator;Ljava/util/Map;)V\n-  #295 = Utf8               call\n-  #296 = Class              #324          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #297 = Utf8               ThrowingCallable\n-  #298 = Utf8               (Ldev/langchain4j/rag/content/aggregator/ContentAggregator;Ljava/util/Map;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-  #299 = Utf8               assertThatThrownBy\n-  #300 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/AbstractThrowableAssert;\n-  #301 = Utf8               isExactlyInstanceOf\n-  #302 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n-  #303 = Utf8               hasMessage\n-  #304 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractThrowableAssert;\n-  #305 = Methodref          #81.#325      // dev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest.lambda$should_fuse_then_rerank_against_first_query_then_filter_by_minScore$2:(Ljava/util/Map;)Ldev/langchain4j/rag/query/Query;\n-  #306 = Utf8               (Ldev/langchain4j/model/scoring/ScoringModel;Ljava/util/function/Function;Ljava/lang/Double;)V\n-  #307 = Utf8               keySet\n-  #308 = Utf8               ()Ljava/util/Set;\n-  #309 = Utf8               java/util/Set\n-  #310 = Utf8               iterator\n-  #311 = Utf8               ()Ljava/util/Iterator;\n-  #312 = Utf8               java/util/Iterator\n-  #313 = Utf8               next\n-  #314 = Utf8               ReRankingContentAggregatorBuilder\n-  #315 = Utf8               ()Ldev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder;\n-  #316 = Utf8               dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder\n-  #317 = Utf8               (Ldev/langchain4j/model/scoring/ScoringModel;)Ldev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder;\n-  #318 = Utf8               ()Ldev/langchain4j/rag/content/aggregator/ReRankingContentAggregator;\n-  #319 = Class              #326          // java/lang/invoke/LambdaMetafactory\n-  #320 = NameAndType        #327:#330     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #321 = NameAndType        #140:#141     // lambda$should_rerank_when_single_query_and_single_contents$0:(Ldev/langchain4j/model/scoring/ScoringModel;)Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n-  #322 = NameAndType        #136:#137     // lambda$should_fail_when_multiple_queries_with_default_query_selector$1:(Ldev/langchain4j/rag/content/aggregator/ContentAggregator;Ljava/util/Map;)V\n-  #323 = Class              #331          // org/assertj/core/api/ThrowableAssert\n-  #324 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #325 = NameAndType        #133:#134     // lambda$should_fuse_then_rerank_against_first_query_then_filter_by_minScore$2:(Ljava/util/Map;)Ldev/langchain4j/rag/query/Query;\n-  #326 = Utf8               java/lang/invoke/LambdaMetafactory\n-  #327 = Utf8               metafactory\n-  #328 = Class              #333          // java/lang/invoke/MethodHandles$Lookup\n-  #329 = Utf8               Lookup\n-  #330 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #331 = Utf8               org/assertj/core/api/ThrowableAssert\n-  #332 = Class              #334          // java/lang/invoke/MethodHandles\n-  #333 = Utf8               java/lang/invoke/MethodHandles$Lookup\n-  #334 = Utf8               java/lang/invoke/MethodHandles\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = String             #8            // query\n+    #8 = Utf8               query\n+    #9 = Methodref          #10.#11       // dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+   #10 = Class              #12           // dev/langchain4j/rag/query/Query\n+   #11 = NameAndType        #13:#14       // from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+   #12 = Utf8               dev/langchain4j/rag/query/Query\n+   #13 = Utf8               from\n+   #14 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+   #15 = String             #16           // content 1\n+   #16 = Utf8               content 1\n+   #17 = Methodref          #18.#19       // dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+   #18 = Class              #20           // dev/langchain4j/rag/content/Content\n+   #19 = NameAndType        #13:#21       // from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+   #20 = Utf8               dev/langchain4j/rag/content/Content\n+   #21 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+   #22 = String             #23           // content 2\n+   #23 = Utf8               content 2\n+   #24 = Methodref          #25.#26       // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+   #25 = Class              #27           // java/util/Arrays\n+   #26 = NameAndType        #28:#29       // asList:([Ljava/lang/Object;)Ljava/util/List;\n+   #27 = Utf8               java/util/Arrays\n+   #28 = Utf8               asList\n+   #29 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n+   #30 = Methodref          #31.#32       // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+   #31 = Class              #33           // java/util/Collections\n+   #32 = NameAndType        #34:#35       // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+   #33 = Utf8               java/util/Collections\n+   #34 = Utf8               singletonList\n+   #35 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n+   #36 = Methodref          #31.#37       // java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+   #37 = NameAndType        #38:#39       // singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+   #38 = Utf8               singletonMap\n+   #39 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+   #40 = Class              #41           // dev/langchain4j/model/scoring/ScoringModel\n+   #41 = Utf8               dev/langchain4j/model/scoring/ScoringModel\n+   #42 = Methodref          #43.#44       // org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+   #43 = Class              #45           // org/mockito/Mockito\n+   #44 = NameAndType        #46:#47       // mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+   #45 = Utf8               org/mockito/Mockito\n+   #46 = Utf8               mock\n+   #47 = Utf8               (Ljava/lang/Class;)Ljava/lang/Object;\n+   #48 = Methodref          #49.#50       // org/mockito/ArgumentMatchers.any:()Ljava/lang/Object;\n+   #49 = Class              #51           // org/mockito/ArgumentMatchers\n+   #50 = NameAndType        #52:#53       // any:()Ljava/lang/Object;\n+   #51 = Utf8               org/mockito/ArgumentMatchers\n+   #52 = Utf8               any\n+   #53 = Utf8               ()Ljava/lang/Object;\n+   #54 = Class              #55           // java/util/List\n+   #55 = Utf8               java/util/List\n+   #56 = Class              #57           // java/lang/String\n+   #57 = Utf8               java/lang/String\n+   #58 = InterfaceMethodref #40.#59       // dev/langchain4j/model/scoring/ScoringModel.scoreAll:(Ljava/util/List;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+   #59 = NameAndType        #60:#61       // scoreAll:(Ljava/util/List;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+   #60 = Utf8               scoreAll\n+   #61 = Utf8               (Ljava/util/List;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+   #62 = Methodref          #43.#63       // org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+   #63 = NameAndType        #64:#65       // when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+   #64 = Utf8               when\n+   #65 = Utf8               (Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+   #66 = Class              #67           // java/lang/Double\n+   #67 = Utf8               java/lang/Double\n+   #68 = Double             0.5d\n+   #70 = Methodref          #66.#71       // java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+   #71 = NameAndType        #72:#73       // valueOf:(D)Ljava/lang/Double;\n+   #72 = Utf8               valueOf\n+   #73 = Utf8               (D)Ljava/lang/Double;\n+   #74 = Double             0.7d\n+   #76 = Methodref          #77.#78       // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+   #77 = Class              #79           // dev/langchain4j/model/output/Response\n+   #78 = NameAndType        #13:#80       // from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+   #79 = Utf8               dev/langchain4j/model/output/Response\n+   #80 = Utf8               (Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+   #81 = InterfaceMethodref #82.#83       // org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+   #82 = Class              #84           // org/mockito/stubbing/OngoingStubbing\n+   #83 = NameAndType        #85:#65       // thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+   #84 = Utf8               org/mockito/stubbing/OngoingStubbing\n+   #85 = Utf8               thenReturn\n+   #86 = InterfaceMethodref #87.#88       // java/util/function/Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;\n+   #87 = Class              #89           // java/util/function/Function\n+   #88 = NameAndType        #90:#91       // apply:(Ljava/lang/Object;)Ljava/lang/Object;\n+   #89 = Utf8               java/util/function/Function\n+   #90 = Utf8               apply\n+   #91 = Utf8               (Ljava/lang/Object;)Ljava/lang/Object;\n+   #92 = Class              #93           // dev/langchain4j/rag/content/aggregator/ContentAggregator\n+   #93 = Utf8               dev/langchain4j/rag/content/aggregator/ContentAggregator\n+   #94 = InterfaceMethodref #92.#95       // dev/langchain4j/rag/content/aggregator/ContentAggregator.aggregate:(Ljava/util/Map;)Ljava/util/List;\n+   #95 = NameAndType        #96:#97       // aggregate:(Ljava/util/Map;)Ljava/util/List;\n+   #96 = Utf8               aggregate\n+   #97 = Utf8               (Ljava/util/Map;)Ljava/util/List;\n+   #98 = Methodref          #99.#100      // org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+   #99 = Class              #101          // org/assertj/core/api/Assertions\n+  #100 = NameAndType        #102:#103     // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #101 = Utf8               org/assertj/core/api/Assertions\n+  #102 = Utf8               assertThat\n+  #103 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #104 = Methodref          #105.#106     // org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #105 = Class              #107          // org/assertj/core/api/ListAssert\n+  #106 = NameAndType        #108:#109     // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #107 = Utf8               org/assertj/core/api/ListAssert\n+  #108 = Utf8               containsExactly\n+  #109 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #110 = InterfaceMethodref #111.#112     // java/util/stream/Stream.builder:()Ljava/util/stream/Stream$Builder;\n+  #111 = Class              #113          // java/util/stream/Stream\n+  #112 = NameAndType        #114:#115     // builder:()Ljava/util/stream/Stream$Builder;\n+  #113 = Utf8               java/util/stream/Stream\n+  #114 = Utf8               builder\n+  #115 = Utf8               ()Ljava/util/stream/Stream$Builder;\n+  #116 = InvokeDynamic      #0:#117       // #0:apply:()Ljava/util/function/Function;\n+  #117 = NameAndType        #90:#118      // apply:()Ljava/util/function/Function;\n+  #118 = Utf8               ()Ljava/util/function/Function;\n+  #119 = InterfaceMethodref #120.#121     // org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+  #120 = Class              #122          // org/junit/jupiter/params/provider/Arguments\n+  #121 = NameAndType        #123:#124     // of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+  #122 = Utf8               org/junit/jupiter/params/provider/Arguments\n+  #123 = Utf8               of\n+  #124 = Utf8               ([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+  #125 = InterfaceMethodref #126.#127     // java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+  #126 = Class              #128          // java/util/stream/Stream$Builder\n+  #127 = NameAndType        #129:#130     // add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+  #128 = Utf8               java/util/stream/Stream$Builder\n+  #129 = Utf8               add\n+  #130 = Utf8               (Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+  #131 = InvokeDynamic      #1:#117       // #1:apply:()Ljava/util/function/Function;\n+  #132 = InterfaceMethodref #126.#133     // java/util/stream/Stream$Builder.build:()Ljava/util/stream/Stream;\n+  #133 = NameAndType        #134:#135     // build:()Ljava/util/stream/Stream;\n+  #134 = Utf8               build\n+  #135 = Utf8               ()Ljava/util/stream/Stream;\n+  #136 = String             #137          // content\n+  #137 = Utf8               content\n+  #138 = String             #139          // content 4\n+  #139 = Utf8               content 4\n+  #140 = Class              #141          // dev/langchain4j/data/segment/TextSegment\n+  #141 = Utf8               dev/langchain4j/data/segment/TextSegment\n+  #142 = Methodref          #18.#143      // dev/langchain4j/rag/content/Content.textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n+  #143 = NameAndType        #144:#145     // textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n+  #144 = Utf8               textSegment\n+  #145 = Utf8               ()Ldev/langchain4j/data/segment/TextSegment;\n+  #146 = Methodref          #10.#147      // dev/langchain4j/rag/query/Query.text:()Ljava/lang/String;\n+  #147 = NameAndType        #148:#149     // text:()Ljava/lang/String;\n+  #148 = Utf8               text\n+  #149 = Utf8               ()Ljava/lang/String;\n+  #150 = Double             0.9d\n+  #152 = Class              #153          // dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator\n+  #153 = Utf8               dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator\n+  #154 = Methodref          #152.#155     // dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator.\"<init>\":(Ldev/langchain4j/model/scoring/ScoringModel;)V\n+  #155 = NameAndType        #5:#156       // \"<init>\":(Ldev/langchain4j/model/scoring/ScoringModel;)V\n+  #156 = Utf8               (Ldev/langchain4j/model/scoring/ScoringModel;)V\n+  #157 = Class              #158          // java/util/HashMap\n+  #158 = Utf8               java/util/HashMap\n+  #159 = Methodref          #157.#3       // java/util/HashMap.\"<init>\":()V\n+  #160 = String             #161          // query 1\n+  #161 = Utf8               query 1\n+  #162 = InterfaceMethodref #163.#164     // java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+  #163 = Class              #165          // java/util/Map\n+  #164 = NameAndType        #166:#167     // put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+  #165 = Utf8               java/util/Map\n+  #166 = Utf8               put\n+  #167 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+  #168 = String             #169          // query 2\n+  #169 = Utf8               query 2\n+  #170 = InvokeDynamic      #2:#171       // #2:call:(Ldev/langchain4j/rag/content/aggregator/ContentAggregator;Ljava/util/Map;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+  #171 = NameAndType        #172:#173     // call:(Ldev/langchain4j/rag/content/aggregator/ContentAggregator;Ljava/util/Map;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+  #172 = Utf8               call\n+  #173 = Utf8               (Ldev/langchain4j/rag/content/aggregator/ContentAggregator;Ljava/util/Map;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+  #174 = Methodref          #99.#175      // org/assertj/core/api/Assertions.assertThatThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/AbstractThrowableAssert;\n+  #175 = NameAndType        #176:#177     // assertThatThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/AbstractThrowableAssert;\n+  #176 = Utf8               assertThatThrownBy\n+  #177 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/AbstractThrowableAssert;\n+  #178 = Class              #179          // java/lang/IllegalArgumentException\n+  #179 = Utf8               java/lang/IllegalArgumentException\n+  #180 = Methodref          #181.#182     // org/assertj/core/api/AbstractThrowableAssert.isExactlyInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+  #181 = Class              #183          // org/assertj/core/api/AbstractThrowableAssert\n+  #182 = NameAndType        #184:#185     // isExactlyInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+  #183 = Utf8               org/assertj/core/api/AbstractThrowableAssert\n+  #184 = Utf8               isExactlyInstanceOf\n+  #185 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+  #186 = String             #187          // The \\'queryToContents\\' contains 2 queries, making the re-ranking ambiguous. Because there are multiple queries, it is unclear which one should be used for re-ranking. Please provide a \\'querySelector\\' in the constructor/builder.\n+  #187 = Utf8               The \\'queryToContents\\' contains 2 queries, making the re-ranking ambiguous. Because there are multiple queries, it is unclear which one should be used for re-ranking. Please provide a \\'querySelector\\' in the constructor/builder.\n+  #188 = Methodref          #181.#189     // org/assertj/core/api/AbstractThrowableAssert.hasMessage:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractThrowableAssert;\n+  #189 = NameAndType        #190:#191     // hasMessage:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractThrowableAssert;\n+  #190 = Utf8               hasMessage\n+  #191 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractThrowableAssert;\n+  #192 = InvokeDynamic      #3:#117       // #3:apply:()Ljava/util/function/Function;\n+  #193 = Double             0.4d\n+  #195 = String             #196          // content 3\n+  #196 = Utf8               content 3\n+  #197 = String             #198          // content 5\n+  #198 = Utf8               content 5\n+  #199 = String             #200          // content 8\n+  #200 = Utf8               content 8\n+  #201 = Class              #202          // java/util/LinkedHashMap\n+  #202 = Utf8               java/util/LinkedHashMap\n+  #203 = Methodref          #201.#3       // java/util/LinkedHashMap.\"<init>\":()V\n+  #204 = Double             0.6d\n+  #206 = Double             0.2d\n+  #208 = Double             0.3d\n+  #210 = Methodref          #152.#211     // dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator.\"<init>\":(Ldev/langchain4j/model/scoring/ScoringModel;Ljava/util/function/Function;Ljava/lang/Double;)V\n+  #211 = NameAndType        #5:#212       // \"<init>\":(Ldev/langchain4j/model/scoring/ScoringModel;Ljava/util/function/Function;Ljava/lang/Double;)V\n+  #212 = Utf8               (Ldev/langchain4j/model/scoring/ScoringModel;Ljava/util/function/Function;Ljava/lang/Double;)V\n+  #213 = InterfaceMethodref #163.#214     // java/util/Map.keySet:()Ljava/util/Set;\n+  #214 = NameAndType        #215:#216     // keySet:()Ljava/util/Set;\n+  #215 = Utf8               keySet\n+  #216 = Utf8               ()Ljava/util/Set;\n+  #217 = InterfaceMethodref #218.#219     // java/util/Set.iterator:()Ljava/util/Iterator;\n+  #218 = Class              #220          // java/util/Set\n+  #219 = NameAndType        #221:#222     // iterator:()Ljava/util/Iterator;\n+  #220 = Utf8               java/util/Set\n+  #221 = Utf8               iterator\n+  #222 = Utf8               ()Ljava/util/Iterator;\n+  #223 = InterfaceMethodref #224.#225     // java/util/Iterator.next:()Ljava/lang/Object;\n+  #224 = Class              #226          // java/util/Iterator\n+  #225 = NameAndType        #227:#53      // next:()Ljava/lang/Object;\n+  #226 = Utf8               java/util/Iterator\n+  #227 = Utf8               next\n+  #228 = Methodref          #152.#229     // dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator.builder:()Ldev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder;\n+  #229 = NameAndType        #114:#230     // builder:()Ldev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder;\n+  #230 = Utf8               ()Ldev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder;\n+  #231 = Methodref          #232.#233     // dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder.scoringModel:(Ldev/langchain4j/model/scoring/ScoringModel;)Ldev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder;\n+  #232 = Class              #234          // dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder\n+  #233 = NameAndType        #235:#236     // scoringModel:(Ldev/langchain4j/model/scoring/ScoringModel;)Ldev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder;\n+  #234 = Utf8               dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder\n+  #235 = Utf8               scoringModel\n+  #236 = Utf8               (Ldev/langchain4j/model/scoring/ScoringModel;)Ldev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder;\n+  #237 = Methodref          #232.#238     // dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder.build:()Ldev/langchain4j/rag/content/aggregator/ReRankingContentAggregator;\n+  #238 = NameAndType        #134:#239     // build:()Ldev/langchain4j/rag/content/aggregator/ReRankingContentAggregator;\n+  #239 = Utf8               ()Ldev/langchain4j/rag/content/aggregator/ReRankingContentAggregator;\n+  #240 = Class              #241          // dev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest\n+  #241 = Utf8               dev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest\n+  #242 = Utf8               Code\n+  #243 = Utf8               LineNumberTable\n+  #244 = Utf8               LocalVariableTable\n+  #245 = Utf8               this\n+  #246 = Utf8               Ldev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest;\n+  #247 = Utf8               should_rerank_when_single_query_and_single_contents\n+  #248 = Utf8               (Ljava/util/function/Function;)V\n+  #249 = Utf8               contentAggregatorProvider\n+  #250 = Utf8               Ljava/util/function/Function;\n+  #251 = Utf8               Ldev/langchain4j/rag/query/Query;\n+  #252 = Utf8               content1\n+  #253 = Utf8               Ldev/langchain4j/rag/content/Content;\n+  #254 = Utf8               content2\n+  #255 = Utf8               queryToContents\n+  #256 = Utf8               Ljava/util/Map;\n+  #257 = Utf8               Ldev/langchain4j/model/scoring/ScoringModel;\n+  #258 = Utf8               aggregator\n+  #259 = Utf8               Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n+  #260 = Utf8               aggregated\n+  #261 = Utf8               Ljava/util/List;\n+  #262 = Utf8               LocalVariableTypeTable\n+  #263 = Utf8               Ljava/util/function/Function<Ldev/langchain4j/model/scoring/ScoringModel;Ldev/langchain4j/rag/content/aggregator/ContentAggregator;>;\n+  #264 = Utf8               Ljava/util/Map<Ldev/langchain4j/rag/query/Query;Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;>;\n+  #265 = Utf8               Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n+  #266 = Utf8               Signature\n+  #267 = Utf8               (Ljava/util/function/Function<Ldev/langchain4j/model/scoring/ScoringModel;Ldev/langchain4j/rag/content/aggregator/ContentAggregator;>;)V\n+  #268 = Utf8               RuntimeVisibleAnnotations\n+  #269 = Utf8               Lorg/junit/jupiter/params/ParameterizedTest;\n+  #270 = Utf8               Lorg/junit/jupiter/params/provider/MethodSource;\n+  #271 = Utf8               ()Ljava/util/stream/Stream<Lorg/junit/jupiter/params/provider/Arguments;>;\n+  #272 = Utf8               should_fuse_then_rerank_when_single_query_and_multiple_contents\n+  #273 = Utf8               content3\n+  #274 = Utf8               content4\n+  #275 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #276 = Utf8               should_fail_when_multiple_queries_with_default_query_selector\n+  #277 = Utf8               should_fuse_then_rerank_against_first_query_then_filter_by_minScore\n+  #278 = Utf8               querySelector\n+  #279 = Utf8               minScore\n+  #280 = Utf8               D\n+  #281 = Utf8               query1\n+  #282 = Utf8               query2\n+  #283 = Utf8               content5\n+  #284 = Utf8               content6\n+  #285 = Utf8               content7\n+  #286 = Utf8               content8\n+  #287 = Utf8               Ljava/util/function/Function<Ljava/util/Map<Ldev/langchain4j/rag/query/Query;Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;>;Ldev/langchain4j/rag/query/Query;>;\n+  #288 = Utf8               lambda$should_fuse_then_rerank_against_first_query_then_filter_by_minScore$2\n+  #289 = Utf8               (Ljava/util/Map;)Ldev/langchain4j/rag/query/Query;\n+  #290 = Utf8               q\n+  #291 = Utf8               lambda$should_fail_when_multiple_queries_with_default_query_selector$1\n+  #292 = Utf8               (Ldev/langchain4j/rag/content/aggregator/ContentAggregator;Ljava/util/Map;)V\n+  #293 = Utf8               Exceptions\n+  #294 = Class              #295          // java/lang/Throwable\n+  #295 = Utf8               java/lang/Throwable\n+  #296 = Utf8               lambda$should_rerank_when_single_query_and_single_contents$0\n+  #297 = Utf8               (Ldev/langchain4j/model/scoring/ScoringModel;)Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n+  #298 = Utf8               SourceFile\n+  #299 = Utf8               ReRankingContentAggregatorTest.java\n+  #300 = Utf8               BootstrapMethods\n+  #301 = MethodHandle       6:#302        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #302 = Methodref          #303.#304     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #303 = Class              #305          // java/lang/invoke/LambdaMetafactory\n+  #304 = NameAndType        #306:#307     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #305 = Utf8               java/lang/invoke/LambdaMetafactory\n+  #306 = Utf8               metafactory\n+  #307 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #308 = MethodType         #91           //  (Ljava/lang/Object;)Ljava/lang/Object;\n+  #309 = MethodHandle       8:#154        // REF_newInvokeSpecial dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator.\"<init>\":(Ldev/langchain4j/model/scoring/ScoringModel;)V\n+  #310 = MethodType         #297          //  (Ldev/langchain4j/model/scoring/ScoringModel;)Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n+  #311 = MethodHandle       6:#312        // REF_invokeStatic dev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest.lambda$should_rerank_when_single_query_and_single_contents$0:(Ldev/langchain4j/model/scoring/ScoringModel;)Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n+  #312 = Methodref          #240.#313     // dev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest.lambda$should_rerank_when_single_query_and_single_contents$0:(Ldev/langchain4j/model/scoring/ScoringModel;)Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n+  #313 = NameAndType        #296:#297     // lambda$should_rerank_when_single_query_and_single_contents$0:(Ldev/langchain4j/model/scoring/ScoringModel;)Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n+  #314 = MethodType         #6            //  ()V\n+  #315 = MethodHandle       6:#316        // REF_invokeStatic dev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest.lambda$should_fail_when_multiple_queries_with_default_query_selector$1:(Ldev/langchain4j/rag/content/aggregator/ContentAggregator;Ljava/util/Map;)V\n+  #316 = Methodref          #240.#317     // dev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest.lambda$should_fail_when_multiple_queries_with_default_query_selector$1:(Ldev/langchain4j/rag/content/aggregator/ContentAggregator;Ljava/util/Map;)V\n+  #317 = NameAndType        #291:#292     // lambda$should_fail_when_multiple_queries_with_default_query_selector$1:(Ldev/langchain4j/rag/content/aggregator/ContentAggregator;Ljava/util/Map;)V\n+  #318 = MethodHandle       6:#319        // REF_invokeStatic dev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest.lambda$should_fuse_then_rerank_against_first_query_then_filter_by_minScore$2:(Ljava/util/Map;)Ldev/langchain4j/rag/query/Query;\n+  #319 = Methodref          #240.#320     // dev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest.lambda$should_fuse_then_rerank_against_first_query_then_filter_by_minScore$2:(Ljava/util/Map;)Ldev/langchain4j/rag/query/Query;\n+  #320 = NameAndType        #288:#289     // lambda$should_fuse_then_rerank_against_first_query_then_filter_by_minScore$2:(Ljava/util/Map;)Ldev/langchain4j/rag/query/Query;\n+  #321 = MethodType         #289          //  (Ljava/util/Map;)Ldev/langchain4j/rag/query/Query;\n+  #322 = Utf8               InnerClasses\n+  #323 = Utf8               Builder\n+  #324 = Class              #325          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n+  #325 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n+  #326 = Class              #327          // org/assertj/core/api/ThrowableAssert\n+  #327 = Utf8               org/assertj/core/api/ThrowableAssert\n+  #328 = Utf8               ThrowingCallable\n+  #329 = Utf8               ReRankingContentAggregatorBuilder\n+  #330 = Class              #331          // java/lang/invoke/MethodHandles$Lookup\n+  #331 = Utf8               java/lang/invoke/MethodHandles$Lookup\n+  #332 = Class              #333          // java/lang/invoke/MethodHandles\n+  #333 = Utf8               java/lang/invoke/MethodHandles\n+  #334 = Utf8               Lookup\n {\n   dev.langchain4j.rag.content.aggregator.ReRankingContentAggregatorTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -351,87 +351,87 @@\n             0       5     0  this   Ldev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest;\n \n   void should_rerank_when_single_query_and_single_contents(java.util.function.Function<dev.langchain4j.model.scoring.ScoringModel, dev.langchain4j.rag.content.aggregator.ContentAggregator>);\n     descriptor: (Ljava/util/function/Function;)V\n     flags: (0x0000)\n     Code:\n       stack=6, locals=9, args_size=2\n-         0: ldc           #2                  // String query\n-         2: invokestatic  #3                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+         0: ldc           #7                  // String query\n+         2: invokestatic  #9                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n          5: astore_2\n-         6: ldc           #4                  // String content 1\n-         8: invokestatic  #5                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+         6: ldc           #15                 // String content 1\n+         8: invokestatic  #17                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         11: astore_3\n-        12: ldc           #6                  // String content 2\n-        14: invokestatic  #5                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        12: ldc           #22                 // String content 2\n+        14: invokestatic  #17                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         17: astore        4\n         19: aload_2\n         20: iconst_2\n-        21: anewarray     #7                  // class dev/langchain4j/rag/content/Content\n+        21: anewarray     #18                 // class dev/langchain4j/rag/content/Content\n         24: dup\n         25: iconst_0\n         26: aload_3\n         27: aastore\n         28: dup\n         29: iconst_1\n         30: aload         4\n         32: aastore\n-        33: invokestatic  #8                  // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-        36: invokestatic  #9                  // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-        39: invokestatic  #10                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+        33: invokestatic  #24                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        36: invokestatic  #30                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+        39: invokestatic  #36                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n         42: astore        5\n-        44: ldc           #11                 // class dev/langchain4j/model/scoring/ScoringModel\n-        46: invokestatic  #12                 // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-        49: checkcast     #11                 // class dev/langchain4j/model/scoring/ScoringModel\n+        44: ldc           #40                 // class dev/langchain4j/model/scoring/ScoringModel\n+        46: invokestatic  #42                 // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+        49: checkcast     #40                 // class dev/langchain4j/model/scoring/ScoringModel\n         52: astore        6\n         54: aload         6\n-        56: invokestatic  #13                 // Method org/mockito/ArgumentMatchers.any:()Ljava/lang/Object;\n-        59: checkcast     #14                 // class java/util/List\n-        62: invokestatic  #13                 // Method org/mockito/ArgumentMatchers.any:()Ljava/lang/Object;\n-        65: checkcast     #15                 // class java/lang/String\n-        68: invokeinterface #16,  3           // InterfaceMethod dev/langchain4j/model/scoring/ScoringModel.scoreAll:(Ljava/util/List;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n-        73: invokestatic  #17                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+        56: invokestatic  #48                 // Method org/mockito/ArgumentMatchers.any:()Ljava/lang/Object;\n+        59: checkcast     #54                 // class java/util/List\n+        62: invokestatic  #48                 // Method org/mockito/ArgumentMatchers.any:()Ljava/lang/Object;\n+        65: checkcast     #56                 // class java/lang/String\n+        68: invokeinterface #58,  3           // InterfaceMethod dev/langchain4j/model/scoring/ScoringModel.scoreAll:(Ljava/util/List;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+        73: invokestatic  #62                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n         76: iconst_2\n-        77: anewarray     #18                 // class java/lang/Double\n+        77: anewarray     #66                 // class java/lang/Double\n         80: dup\n         81: iconst_0\n-        82: ldc2_w        #19                 // double 0.5d\n-        85: invokestatic  #21                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+        82: ldc2_w        #68                 // double 0.5d\n+        85: invokestatic  #70                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n         88: aastore\n         89: dup\n         90: iconst_1\n-        91: ldc2_w        #22                 // double 0.7d\n-        94: invokestatic  #21                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+        91: ldc2_w        #74                 // double 0.7d\n+        94: invokestatic  #70                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n         97: aastore\n-        98: invokestatic  #8                  // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       101: invokestatic  #24                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-       104: invokeinterface #25,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+        98: invokestatic  #24                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       101: invokestatic  #76                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+       104: invokeinterface #81,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        109: pop\n        110: aload_1\n        111: aload         6\n-       113: invokeinterface #26,  2           // InterfaceMethod java/util/function/Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;\n-       118: checkcast     #27                 // class dev/langchain4j/rag/content/aggregator/ContentAggregator\n+       113: invokeinterface #86,  2           // InterfaceMethod java/util/function/Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;\n+       118: checkcast     #92                 // class dev/langchain4j/rag/content/aggregator/ContentAggregator\n        121: astore        7\n        123: aload         7\n        125: aload         5\n-       127: invokeinterface #28,  2           // InterfaceMethod dev/langchain4j/rag/content/aggregator/ContentAggregator.aggregate:(Ljava/util/Map;)Ljava/util/List;\n+       127: invokeinterface #94,  2           // InterfaceMethod dev/langchain4j/rag/content/aggregator/ContentAggregator.aggregate:(Ljava/util/Map;)Ljava/util/List;\n        132: astore        8\n        134: aload         8\n-       136: invokestatic  #29                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+       136: invokestatic  #98                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n        139: iconst_2\n-       140: anewarray     #7                  // class dev/langchain4j/rag/content/Content\n+       140: anewarray     #18                 // class dev/langchain4j/rag/content/Content\n        143: dup\n        144: iconst_0\n        145: aload         4\n        147: aastore\n        148: dup\n        149: iconst_1\n        150: aload_3\n        151: aastore\n-       152: invokevirtual #30                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+       152: invokevirtual #104                // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n        155: pop\n        156: return\n       LineNumberTable:\n         line 34: 0\n         line 36: 6\n         line 37: 12\n         line 39: 19\n@@ -455,181 +455,181 @@\n           123      34     7 aggregator   Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n           134      23     8 aggregated   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0     157     1 contentAggregatorProvider   Ljava/util/function/Function<Ldev/langchain4j/model/scoring/ScoringModel;Ldev/langchain4j/rag/content/aggregator/ContentAggregator;>;\n            44     113     5 queryToContents   Ljava/util/Map<Ldev/langchain4j/rag/query/Query;Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;>;\n           134      23     8 aggregated   Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n-    Signature: #111                         // (Ljava/util/function/Function<Ldev/langchain4j/model/scoring/ScoringModel;Ldev/langchain4j/rag/content/aggregator/ContentAggregator;>;)V\n+    Signature: #267                         // (Ljava/util/function/Function<Ldev/langchain4j/model/scoring/ScoringModel;Ldev/langchain4j/rag/content/aggregator/ContentAggregator;>;)V\n     RuntimeVisibleAnnotations:\n-      0: #113()\n+      0: #269()\n         org.junit.jupiter.params.ParameterizedTest\n-      1: #114()\n+      1: #270()\n         org.junit.jupiter.params.provider.MethodSource\n \n   static java.util.stream.Stream<org.junit.jupiter.params.provider.Arguments> should_rerank_when_single_query_and_single_contents();\n     descriptor: ()Ljava/util/stream/Stream;\n     flags: (0x0008) ACC_STATIC\n     Code:\n       stack=5, locals=0, args_size=0\n-         0: invokestatic  #31                 // InterfaceMethod java/util/stream/Stream.builder:()Ljava/util/stream/Stream$Builder;\n+         0: invokestatic  #110                // InterfaceMethod java/util/stream/Stream.builder:()Ljava/util/stream/Stream$Builder;\n          3: iconst_1\n-         4: anewarray     #32                 // class java/lang/Object\n+         4: anewarray     #2                  // class java/lang/Object\n          7: dup\n          8: iconst_0\n-         9: invokedynamic #33,  0             // InvokeDynamic #0:apply:()Ljava/util/function/Function;\n+         9: invokedynamic #116,  0            // InvokeDynamic #0:apply:()Ljava/util/function/Function;\n         14: aastore\n-        15: invokestatic  #34                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-        18: invokeinterface #35,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+        15: invokestatic  #119                // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+        18: invokeinterface #125,  2          // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n         23: iconst_1\n-        24: anewarray     #32                 // class java/lang/Object\n+        24: anewarray     #2                  // class java/lang/Object\n         27: dup\n         28: iconst_0\n-        29: invokedynamic #36,  0             // InvokeDynamic #1:apply:()Ljava/util/function/Function;\n+        29: invokedynamic #131,  0            // InvokeDynamic #1:apply:()Ljava/util/function/Function;\n         34: aastore\n-        35: invokestatic  #34                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-        38: invokeinterface #35,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n-        43: invokeinterface #37,  1           // InterfaceMethod java/util/stream/Stream$Builder.build:()Ljava/util/stream/Stream;\n+        35: invokestatic  #119                // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+        38: invokeinterface #125,  2          // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+        43: invokeinterface #132,  1          // InterfaceMethod java/util/stream/Stream$Builder.build:()Ljava/util/stream/Stream;\n         48: areturn\n       LineNumberTable:\n         line 57: 0\n         line 58: 15\n         line 61: 35\n         line 67: 43\n         line 57: 48\n-    Signature: #116                         // ()Ljava/util/stream/Stream<Lorg/junit/jupiter/params/provider/Arguments;>;\n+    Signature: #271                         // ()Ljava/util/stream/Stream<Lorg/junit/jupiter/params/provider/Arguments;>;\n \n   void should_fuse_then_rerank_when_single_query_and_multiple_contents();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=8, locals=10, args_size=1\n-         0: ldc           #2                  // String query\n-         2: invokestatic  #3                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+         0: ldc           #7                  // String query\n+         2: invokestatic  #9                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n          5: astore_1\n-         6: ldc           #4                  // String content 1\n-         8: invokestatic  #5                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+         6: ldc           #15                 // String content 1\n+         8: invokestatic  #17                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         11: astore_2\n-        12: ldc           #38                 // String content\n-        14: invokestatic  #5                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        12: ldc           #136                // String content\n+        14: invokestatic  #17                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         17: astore_3\n-        18: ldc           #38                 // String content\n-        20: invokestatic  #5                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        18: ldc           #136                // String content\n+        20: invokestatic  #17                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         23: astore        4\n-        25: ldc           #39                 // String content 4\n-        27: invokestatic  #5                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        25: ldc           #138                // String content 4\n+        27: invokestatic  #17                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         30: astore        5\n         32: aload_1\n         33: iconst_2\n-        34: anewarray     #14                 // class java/util/List\n+        34: anewarray     #54                 // class java/util/List\n         37: dup\n         38: iconst_0\n         39: iconst_2\n-        40: anewarray     #7                  // class dev/langchain4j/rag/content/Content\n+        40: anewarray     #18                 // class dev/langchain4j/rag/content/Content\n         43: dup\n         44: iconst_0\n         45: aload_2\n         46: aastore\n         47: dup\n         48: iconst_1\n         49: aload_3\n         50: aastore\n-        51: invokestatic  #8                  // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        51: invokestatic  #24                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n         54: aastore\n         55: dup\n         56: iconst_1\n         57: iconst_2\n-        58: anewarray     #7                  // class dev/langchain4j/rag/content/Content\n+        58: anewarray     #18                 // class dev/langchain4j/rag/content/Content\n         61: dup\n         62: iconst_0\n         63: aload         4\n         65: aastore\n         66: dup\n         67: iconst_1\n         68: aload         5\n         70: aastore\n-        71: invokestatic  #8                  // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        71: invokestatic  #24                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n         74: aastore\n-        75: invokestatic  #8                  // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-        78: invokestatic  #10                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+        75: invokestatic  #24                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        78: invokestatic  #36                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n         81: astore        6\n-        83: ldc           #11                 // class dev/langchain4j/model/scoring/ScoringModel\n-        85: invokestatic  #12                 // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-        88: checkcast     #11                 // class dev/langchain4j/model/scoring/ScoringModel\n+        83: ldc           #40                 // class dev/langchain4j/model/scoring/ScoringModel\n+        85: invokestatic  #42                 // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+        88: checkcast     #40                 // class dev/langchain4j/model/scoring/ScoringModel\n         91: astore        7\n         93: aload         7\n         95: iconst_3\n-        96: anewarray     #40                 // class dev/langchain4j/data/segment/TextSegment\n+        96: anewarray     #140                // class dev/langchain4j/data/segment/TextSegment\n         99: dup\n        100: iconst_0\n        101: aload_3\n-       102: invokevirtual #41                 // Method dev/langchain4j/rag/content/Content.textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n+       102: invokevirtual #142                // Method dev/langchain4j/rag/content/Content.textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n        105: aastore\n        106: dup\n        107: iconst_1\n        108: aload_2\n-       109: invokevirtual #41                 // Method dev/langchain4j/rag/content/Content.textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n+       109: invokevirtual #142                // Method dev/langchain4j/rag/content/Content.textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n        112: aastore\n        113: dup\n        114: iconst_2\n        115: aload         5\n-       117: invokevirtual #41                 // Method dev/langchain4j/rag/content/Content.textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n+       117: invokevirtual #142                // Method dev/langchain4j/rag/content/Content.textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n        120: aastore\n-       121: invokestatic  #8                  // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       121: invokestatic  #24                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        124: aload_1\n-       125: invokevirtual #42                 // Method dev/langchain4j/rag/query/Query.text:()Ljava/lang/String;\n-       128: invokeinterface #16,  3           // InterfaceMethod dev/langchain4j/model/scoring/ScoringModel.scoreAll:(Ljava/util/List;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n-       133: invokestatic  #17                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       125: invokevirtual #146                // Method dev/langchain4j/rag/query/Query.text:()Ljava/lang/String;\n+       128: invokeinterface #58,  3           // InterfaceMethod dev/langchain4j/model/scoring/ScoringModel.scoreAll:(Ljava/util/List;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+       133: invokestatic  #62                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        136: iconst_3\n-       137: anewarray     #18                 // class java/lang/Double\n+       137: anewarray     #66                 // class java/lang/Double\n        140: dup\n        141: iconst_0\n-       142: ldc2_w        #19                 // double 0.5d\n-       145: invokestatic  #21                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+       142: ldc2_w        #68                 // double 0.5d\n+       145: invokestatic  #70                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n        148: aastore\n        149: dup\n        150: iconst_1\n-       151: ldc2_w        #22                 // double 0.7d\n-       154: invokestatic  #21                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+       151: ldc2_w        #74                 // double 0.7d\n+       154: invokestatic  #70                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n        157: aastore\n        158: dup\n        159: iconst_2\n-       160: ldc2_w        #43                 // double 0.9d\n-       163: invokestatic  #21                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+       160: ldc2_w        #150                // double 0.9d\n+       163: invokestatic  #70                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n        166: aastore\n-       167: invokestatic  #8                  // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       170: invokestatic  #24                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-       173: invokeinterface #25,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       167: invokestatic  #24                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       170: invokestatic  #76                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+       173: invokeinterface #81,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        178: pop\n-       179: new           #45                 // class dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator\n+       179: new           #152                // class dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator\n        182: dup\n        183: aload         7\n-       185: invokespecial #46                 // Method dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator.\"<init>\":(Ldev/langchain4j/model/scoring/ScoringModel;)V\n+       185: invokespecial #154                // Method dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator.\"<init>\":(Ldev/langchain4j/model/scoring/ScoringModel;)V\n        188: astore        8\n        190: aload         8\n        192: aload         6\n-       194: invokeinterface #28,  2           // InterfaceMethod dev/langchain4j/rag/content/aggregator/ContentAggregator.aggregate:(Ljava/util/Map;)Ljava/util/List;\n+       194: invokeinterface #94,  2           // InterfaceMethod dev/langchain4j/rag/content/aggregator/ContentAggregator.aggregate:(Ljava/util/Map;)Ljava/util/List;\n        199: astore        9\n        201: aload         9\n-       203: invokestatic  #29                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+       203: invokestatic  #98                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n        206: iconst_3\n-       207: anewarray     #7                  // class dev/langchain4j/rag/content/Content\n+       207: anewarray     #18                 // class dev/langchain4j/rag/content/Content\n        210: dup\n        211: iconst_0\n        212: aload         5\n        214: aastore\n        215: dup\n        216: iconst_1\n        217: aload_2\n        218: aastore\n        219: dup\n        220: iconst_2\n        221: aload_3\n        222: aastore\n-       223: invokevirtual #30                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+       223: invokevirtual #104                // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n        226: pop\n        227: return\n       LineNumberTable:\n         line 74: 0\n         line 76: 6\n         line 77: 12\n         line 79: 18\n@@ -669,56 +669,56 @@\n           190      38     8 aggregator   Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n           201      27     9 aggregated   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            83     145     6 queryToContents   Ljava/util/Map<Ldev/langchain4j/rag/query/Query;Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;>;\n           201      27     9 aggregated   Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n     RuntimeVisibleAnnotations:\n-      0: #120()\n+      0: #275()\n         org.junit.jupiter.api.Test\n \n   void should_fail_when_multiple_queries_with_default_query_selector();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=3, locals=4, args_size=1\n-         0: new           #47                 // class java/util/HashMap\n+         0: new           #157                // class java/util/HashMap\n          3: dup\n-         4: invokespecial #48                 // Method java/util/HashMap.\"<init>\":()V\n+         4: invokespecial #159                // Method java/util/HashMap.\"<init>\":()V\n          7: astore_1\n          8: aload_1\n-         9: ldc           #49                 // String query 1\n-        11: invokestatic  #3                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+         9: ldc           #160                // String query 1\n+        11: invokestatic  #9                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n         14: aconst_null\n-        15: invokeinterface #50,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+        15: invokeinterface #162,  3          // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n         20: pop\n         21: aload_1\n-        22: ldc           #51                 // String query 2\n-        24: invokestatic  #3                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+        22: ldc           #168                // String query 2\n+        24: invokestatic  #9                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n         27: aconst_null\n-        28: invokeinterface #50,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+        28: invokeinterface #162,  3          // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n         33: pop\n-        34: ldc           #11                 // class dev/langchain4j/model/scoring/ScoringModel\n-        36: invokestatic  #12                 // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-        39: checkcast     #11                 // class dev/langchain4j/model/scoring/ScoringModel\n+        34: ldc           #40                 // class dev/langchain4j/model/scoring/ScoringModel\n+        36: invokestatic  #42                 // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+        39: checkcast     #40                 // class dev/langchain4j/model/scoring/ScoringModel\n         42: astore_2\n-        43: new           #45                 // class dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator\n+        43: new           #152                // class dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator\n         46: dup\n         47: aload_2\n-        48: invokespecial #46                 // Method dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator.\"<init>\":(Ldev/langchain4j/model/scoring/ScoringModel;)V\n+        48: invokespecial #154                // Method dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator.\"<init>\":(Ldev/langchain4j/model/scoring/ScoringModel;)V\n         51: astore_3\n         52: aload_3\n         53: aload_1\n-        54: invokedynamic #52,  0             // InvokeDynamic #2:call:(Ldev/langchain4j/rag/content/aggregator/ContentAggregator;Ljava/util/Map;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-        59: invokestatic  #53                 // Method org/assertj/core/api/Assertions.assertThatThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/AbstractThrowableAssert;\n-        62: ldc           #54                 // class java/lang/IllegalArgumentException\n-        64: invokevirtual #55                 // Method org/assertj/core/api/AbstractThrowableAssert.isExactlyInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n-        67: checkcast     #56                 // class org/assertj/core/api/AbstractThrowableAssert\n-        70: ldc           #57                 // String The \\'queryToContents\\' contains 2 queries, making the re-ranking ambiguous. Because there are multiple queries, it is unclear which one should be used for re-ranking. Please provide a \\'querySelector\\' in the constructor/builder.\n-        72: invokevirtual #58                 // Method org/assertj/core/api/AbstractThrowableAssert.hasMessage:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractThrowableAssert;\n+        54: invokedynamic #170,  0            // InvokeDynamic #2:call:(Ldev/langchain4j/rag/content/aggregator/ContentAggregator;Ljava/util/Map;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+        59: invokestatic  #174                // Method org/assertj/core/api/Assertions.assertThatThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/AbstractThrowableAssert;\n+        62: ldc           #178                // class java/lang/IllegalArgumentException\n+        64: invokevirtual #180                // Method org/assertj/core/api/AbstractThrowableAssert.isExactlyInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+        67: checkcast     #181                // class org/assertj/core/api/AbstractThrowableAssert\n+        70: ldc           #186                // String The \\'queryToContents\\' contains 2 queries, making the re-ranking ambiguous. Because there are multiple queries, it is unclear which one should be used for re-ranking. Please provide a \\'querySelector\\' in the constructor/builder.\n+        72: invokevirtual #188                // Method org/assertj/core/api/AbstractThrowableAssert.hasMessage:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractThrowableAssert;\n         75: pop\n         76: return\n       LineNumberTable:\n         line 116: 0\n         line 117: 8\n         line 118: 21\n         line 120: 34\n@@ -733,227 +733,227 @@\n             8      69     1 queryToContents   Ljava/util/Map;\n            43      34     2 scoringModel   Ldev/langchain4j/model/scoring/ScoringModel;\n            52      25     3 aggregator   Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             8      69     1 queryToContents   Ljava/util/Map<Ldev/langchain4j/rag/query/Query;Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;>;\n     RuntimeVisibleAnnotations:\n-      0: #120()\n+      0: #275()\n         org.junit.jupiter.api.Test\n \n   void should_fuse_then_rerank_against_first_query_then_filter_by_minScore();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=9, locals=18, args_size=1\n-         0: invokedynamic #59,  0             // InvokeDynamic #3:apply:()Ljava/util/function/Function;\n+         0: invokedynamic #192,  0            // InvokeDynamic #3:apply:()Ljava/util/function/Function;\n          5: astore_1\n-         6: ldc2_w        #60                 // double 0.4d\n+         6: ldc2_w        #193                // double 0.4d\n          9: dstore_2\n-        10: ldc           #49                 // String query 1\n-        12: invokestatic  #3                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+        10: ldc           #160                // String query 1\n+        12: invokestatic  #9                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n         15: astore        4\n-        17: ldc           #38                 // String content\n-        19: invokestatic  #5                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        17: ldc           #136                // String content\n+        19: invokestatic  #17                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         22: astore        5\n-        24: ldc           #6                  // String content 2\n-        26: invokestatic  #5                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        24: ldc           #22                 // String content 2\n+        26: invokestatic  #17                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         29: astore        6\n-        31: ldc           #62                 // String content 3\n-        33: invokestatic  #5                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        31: ldc           #195                // String content 3\n+        33: invokestatic  #17                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         36: astore        7\n-        38: ldc           #38                 // String content\n-        40: invokestatic  #5                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        38: ldc           #136                // String content\n+        40: invokestatic  #17                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         43: astore        8\n-        45: ldc           #51                 // String query 2\n-        47: invokestatic  #3                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+        45: ldc           #168                // String query 2\n+        47: invokestatic  #9                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n         50: astore        9\n-        52: ldc           #63                 // String content 5\n-        54: invokestatic  #5                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        52: ldc           #197                // String content 5\n+        54: invokestatic  #17                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         57: astore        10\n-        59: ldc           #38                 // String content\n-        61: invokestatic  #5                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        59: ldc           #136                // String content\n+        61: invokestatic  #17                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         64: astore        11\n-        66: ldc           #38                 // String content\n-        68: invokestatic  #5                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        66: ldc           #136                // String content\n+        68: invokestatic  #17                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         71: astore        12\n-        73: ldc           #64                 // String content 8\n-        75: invokestatic  #5                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        73: ldc           #199                // String content 8\n+        75: invokestatic  #17                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         78: astore        13\n-        80: new           #65                 // class java/util/LinkedHashMap\n+        80: new           #201                // class java/util/LinkedHashMap\n         83: dup\n-        84: invokespecial #66                 // Method java/util/LinkedHashMap.\"<init>\":()V\n+        84: invokespecial #203                // Method java/util/LinkedHashMap.\"<init>\":()V\n         87: astore        14\n         89: aload         14\n         91: aload         4\n         93: iconst_2\n-        94: anewarray     #14                 // class java/util/List\n+        94: anewarray     #54                 // class java/util/List\n         97: dup\n         98: iconst_0\n         99: iconst_2\n-       100: anewarray     #7                  // class dev/langchain4j/rag/content/Content\n+       100: anewarray     #18                 // class dev/langchain4j/rag/content/Content\n        103: dup\n        104: iconst_0\n        105: aload         5\n        107: aastore\n        108: dup\n        109: iconst_1\n        110: aload         6\n        112: aastore\n-       113: invokestatic  #8                  // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       113: invokestatic  #24                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        116: aastore\n        117: dup\n        118: iconst_1\n        119: iconst_2\n-       120: anewarray     #7                  // class dev/langchain4j/rag/content/Content\n+       120: anewarray     #18                 // class dev/langchain4j/rag/content/Content\n        123: dup\n        124: iconst_0\n        125: aload         7\n        127: aastore\n        128: dup\n        129: iconst_1\n        130: aload         8\n        132: aastore\n-       133: invokestatic  #8                  // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       133: invokestatic  #24                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        136: aastore\n-       137: invokestatic  #8                  // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       140: invokeinterface #50,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+       137: invokestatic  #24                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       140: invokeinterface #162,  3          // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n        145: pop\n        146: aload         14\n        148: aload         9\n        150: iconst_2\n-       151: anewarray     #14                 // class java/util/List\n+       151: anewarray     #54                 // class java/util/List\n        154: dup\n        155: iconst_0\n        156: iconst_2\n-       157: anewarray     #7                  // class dev/langchain4j/rag/content/Content\n+       157: anewarray     #18                 // class dev/langchain4j/rag/content/Content\n        160: dup\n        161: iconst_0\n        162: aload         10\n        164: aastore\n        165: dup\n        166: iconst_1\n        167: aload         11\n        169: aastore\n-       170: invokestatic  #8                  // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       170: invokestatic  #24                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        173: aastore\n        174: dup\n        175: iconst_1\n        176: iconst_2\n-       177: anewarray     #7                  // class dev/langchain4j/rag/content/Content\n+       177: anewarray     #18                 // class dev/langchain4j/rag/content/Content\n        180: dup\n        181: iconst_0\n        182: aload         12\n        184: aastore\n        185: dup\n        186: iconst_1\n        187: aload         13\n        189: aastore\n-       190: invokestatic  #8                  // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       190: invokestatic  #24                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        193: aastore\n-       194: invokestatic  #8                  // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       197: invokeinterface #50,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+       194: invokestatic  #24                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       197: invokeinterface #162,  3          // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n        202: pop\n-       203: ldc           #11                 // class dev/langchain4j/model/scoring/ScoringModel\n-       205: invokestatic  #12                 // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-       208: checkcast     #11                 // class dev/langchain4j/model/scoring/ScoringModel\n+       203: ldc           #40                 // class dev/langchain4j/model/scoring/ScoringModel\n+       205: invokestatic  #42                 // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+       208: checkcast     #40                 // class dev/langchain4j/model/scoring/ScoringModel\n        211: astore        15\n        213: aload         15\n        215: iconst_5\n-       216: anewarray     #40                 // class dev/langchain4j/data/segment/TextSegment\n+       216: anewarray     #140                // class dev/langchain4j/data/segment/TextSegment\n        219: dup\n        220: iconst_0\n        221: aload         5\n-       223: invokevirtual #41                 // Method dev/langchain4j/rag/content/Content.textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n+       223: invokevirtual #142                // Method dev/langchain4j/rag/content/Content.textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n        226: aastore\n        227: dup\n        228: iconst_1\n        229: aload         7\n-       231: invokevirtual #41                 // Method dev/langchain4j/rag/content/Content.textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n+       231: invokevirtual #142                // Method dev/langchain4j/rag/content/Content.textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n        234: aastore\n        235: dup\n        236: iconst_2\n        237: aload         10\n-       239: invokevirtual #41                 // Method dev/langchain4j/rag/content/Content.textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n+       239: invokevirtual #142                // Method dev/langchain4j/rag/content/Content.textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n        242: aastore\n        243: dup\n        244: iconst_3\n        245: aload         6\n-       247: invokevirtual #41                 // Method dev/langchain4j/rag/content/Content.textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n+       247: invokevirtual #142                // Method dev/langchain4j/rag/content/Content.textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n        250: aastore\n        251: dup\n        252: iconst_4\n        253: aload         13\n-       255: invokevirtual #41                 // Method dev/langchain4j/rag/content/Content.textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n+       255: invokevirtual #142                // Method dev/langchain4j/rag/content/Content.textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n        258: aastore\n-       259: invokestatic  #8                  // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       259: invokestatic  #24                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        262: aload         4\n-       264: invokevirtual #42                 // Method dev/langchain4j/rag/query/Query.text:()Ljava/lang/String;\n-       267: invokeinterface #16,  3           // InterfaceMethod dev/langchain4j/model/scoring/ScoringModel.scoreAll:(Ljava/util/List;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n-       272: invokestatic  #17                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       264: invokevirtual #146                // Method dev/langchain4j/rag/query/Query.text:()Ljava/lang/String;\n+       267: invokeinterface #58,  3           // InterfaceMethod dev/langchain4j/model/scoring/ScoringModel.scoreAll:(Ljava/util/List;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+       272: invokestatic  #62                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        275: iconst_5\n-       276: anewarray     #18                 // class java/lang/Double\n+       276: anewarray     #66                 // class java/lang/Double\n        279: dup\n        280: iconst_0\n-       281: ldc2_w        #67                 // double 0.6d\n-       284: invokestatic  #21                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+       281: ldc2_w        #204                // double 0.6d\n+       284: invokestatic  #70                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n        287: aastore\n        288: dup\n        289: iconst_1\n-       290: ldc2_w        #69                 // double 0.2d\n-       293: invokestatic  #21                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+       290: ldc2_w        #206                // double 0.2d\n+       293: invokestatic  #70                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n        296: aastore\n        297: dup\n        298: iconst_2\n-       299: ldc2_w        #71                 // double 0.3d\n-       302: invokestatic  #21                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+       299: ldc2_w        #208                // double 0.3d\n+       302: invokestatic  #70                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n        305: aastore\n        306: dup\n        307: iconst_3\n-       308: ldc2_w        #60                 // double 0.4d\n-       311: invokestatic  #21                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+       308: ldc2_w        #193                // double 0.4d\n+       311: invokestatic  #70                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n        314: aastore\n        315: dup\n        316: iconst_4\n-       317: ldc2_w        #19                 // double 0.5d\n-       320: invokestatic  #21                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+       317: ldc2_w        #68                 // double 0.5d\n+       320: invokestatic  #70                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n        323: aastore\n-       324: invokestatic  #8                  // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       327: invokestatic  #24                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-       330: invokeinterface #25,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       324: invokestatic  #24                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       327: invokestatic  #76                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+       330: invokeinterface #81,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        335: pop\n-       336: new           #45                 // class dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator\n+       336: new           #152                // class dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator\n        339: dup\n        340: aload         15\n        342: aload_1\n        343: dload_2\n-       344: invokestatic  #21                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-       347: invokespecial #73                 // Method dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator.\"<init>\":(Ldev/langchain4j/model/scoring/ScoringModel;Ljava/util/function/Function;Ljava/lang/Double;)V\n+       344: invokestatic  #70                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+       347: invokespecial #210                // Method dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator.\"<init>\":(Ldev/langchain4j/model/scoring/ScoringModel;Ljava/util/function/Function;Ljava/lang/Double;)V\n        350: astore        16\n        352: aload         16\n        354: aload         14\n-       356: invokeinterface #28,  2           // InterfaceMethod dev/langchain4j/rag/content/aggregator/ContentAggregator.aggregate:(Ljava/util/Map;)Ljava/util/List;\n+       356: invokeinterface #94,  2           // InterfaceMethod dev/langchain4j/rag/content/aggregator/ContentAggregator.aggregate:(Ljava/util/Map;)Ljava/util/List;\n        361: astore        17\n        363: aload         17\n-       365: invokestatic  #29                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+       365: invokestatic  #98                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n        368: iconst_3\n-       369: anewarray     #7                  // class dev/langchain4j/rag/content/Content\n+       369: anewarray     #18                 // class dev/langchain4j/rag/content/Content\n        372: dup\n        373: iconst_0\n        374: aload         5\n        376: aastore\n        377: dup\n        378: iconst_1\n        379: aload         13\n        381: aastore\n        382: dup\n        383: iconst_2\n        384: aload         6\n        386: aastore\n-       387: invokevirtual #30                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+       387: invokevirtual #104                // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n        390: pop\n        391: return\n       LineNumberTable:\n         line 135: 0\n         line 138: 6\n         line 140: 10\n         line 142: 17\n@@ -1017,42 +1017,42 @@\n           363      29    17 aggregated   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             6     386     1 querySelector   Ljava/util/function/Function<Ljava/util/Map<Ldev/langchain4j/rag/query/Query;Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;>;Ldev/langchain4j/rag/query/Query;>;\n            89     303    14 queryToContents   Ljava/util/Map<Ldev/langchain4j/rag/query/Query;Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;>;\n           363      29    17 aggregated   Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n     RuntimeVisibleAnnotations:\n-      0: #120()\n+      0: #275()\n         org.junit.jupiter.api.Test\n \n   private static dev.langchain4j.rag.query.Query lambda$should_fuse_then_rerank_against_first_query_then_filter_by_minScore$2(java.util.Map);\n     descriptor: (Ljava/util/Map;)Ldev/langchain4j/rag/query/Query;\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n-         1: invokeinterface #74,  1           // InterfaceMethod java/util/Map.keySet:()Ljava/util/Set;\n-         6: invokeinterface #75,  1           // InterfaceMethod java/util/Set.iterator:()Ljava/util/Iterator;\n-        11: invokeinterface #76,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;\n-        16: checkcast     #77                 // class dev/langchain4j/rag/query/Query\n+         1: invokeinterface #213,  1          // InterfaceMethod java/util/Map.keySet:()Ljava/util/Set;\n+         6: invokeinterface #217,  1          // InterfaceMethod java/util/Set.iterator:()Ljava/util/Iterator;\n+        11: invokeinterface #223,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;\n+        16: checkcast     #10                 // class dev/langchain4j/rag/query/Query\n         19: areturn\n       LineNumberTable:\n         line 136: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      20     0     q   Ljava/util/Map;\n \n   private static void lambda$should_fail_when_multiple_queries_with_default_query_selector$1(dev.langchain4j.rag.content.aggregator.ContentAggregator, java.util.Map) throws java.lang.Throwable;\n     descriptor: (Ldev/langchain4j/rag/content/aggregator/ContentAggregator;Ljava/util/Map;)V\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: invokeinterface #28,  2           // InterfaceMethod dev/langchain4j/rag/content/aggregator/ContentAggregator.aggregate:(Ljava/util/Map;)Ljava/util/List;\n+         2: invokeinterface #94,  2           // InterfaceMethod dev/langchain4j/rag/content/aggregator/ContentAggregator.aggregate:(Ljava/util/Map;)Ljava/util/List;\n          7: pop\n          8: return\n       LineNumberTable:\n         line 124: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       9     0 aggregator   Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n@@ -1061,48 +1061,48 @@\n       throws java.lang.Throwable\n \n   private static dev.langchain4j.rag.content.aggregator.ContentAggregator lambda$should_rerank_when_single_query_and_single_contents$0(dev.langchain4j.model.scoring.ScoringModel);\n     descriptor: (Ldev/langchain4j/model/scoring/ScoringModel;)Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=2, locals=1, args_size=1\n-         0: invokestatic  #78                 // Method dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator.builder:()Ldev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder;\n+         0: invokestatic  #228                // Method dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator.builder:()Ldev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder;\n          3: aload_0\n-         4: invokevirtual #79                 // Method dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder.scoringModel:(Ldev/langchain4j/model/scoring/ScoringModel;)Ldev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder;\n-         7: invokevirtual #80                 // Method dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder.build:()Ldev/langchain4j/rag/content/aggregator/ReRankingContentAggregator;\n+         4: invokevirtual #231                // Method dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder.scoringModel:(Ldev/langchain4j/model/scoring/ScoringModel;)Ldev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder;\n+         7: invokevirtual #237                // Method dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder.build:()Ldev/langchain4j/rag/content/aggregator/ReRankingContentAggregator;\n         10: areturn\n       LineNumberTable:\n         line 63: 0\n         line 64: 4\n         line 65: 7\n         line 63: 10\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      11     0 scoringModel   Ldev/langchain4j/model/scoring/ScoringModel;\n }\n SourceFile: \"ReRankingContentAggregatorTest.java\"\n-InnerClasses:\n-  public static #273= #189 of #178;       // Builder=class java/util/stream/Stream$Builder of class java/util/stream/Stream\n-  public static #297= #296 of #323;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n-  public static #314= #228 of #45;        // ReRankingContentAggregatorBuilder=class dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder of class dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator\n-  public static final #329= #328 of #332; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n BootstrapMethods:\n-  0: #182 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  0: #301 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #183 (Ljava/lang/Object;)Ljava/lang/Object;\n-      #184 REF_newInvokeSpecial dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator.\"<init>\":(Ldev/langchain4j/model/scoring/ScoringModel;)V\n-      #185 (Ldev/langchain4j/model/scoring/ScoringModel;)Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n-  1: #182 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #308 (Ljava/lang/Object;)Ljava/lang/Object;\n+      #309 REF_newInvokeSpecial dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator.\"<init>\":(Ldev/langchain4j/model/scoring/ScoringModel;)V\n+      #310 (Ldev/langchain4j/model/scoring/ScoringModel;)Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n+  1: #301 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #183 (Ljava/lang/Object;)Ljava/lang/Object;\n-      #191 REF_invokeStatic dev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest.lambda$should_rerank_when_single_query_and_single_contents$0:(Ldev/langchain4j/model/scoring/ScoringModel;)Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n-      #185 (Ldev/langchain4j/model/scoring/ScoringModel;)Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n-  2: #182 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #308 (Ljava/lang/Object;)Ljava/lang/Object;\n+      #311 REF_invokeStatic dev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest.lambda$should_rerank_when_single_query_and_single_contents$0:(Ldev/langchain4j/model/scoring/ScoringModel;)Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n+      #310 (Ldev/langchain4j/model/scoring/ScoringModel;)Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n+  2: #301 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #205 ()V\n-      #206 REF_invokeStatic dev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest.lambda$should_fail_when_multiple_queries_with_default_query_selector$1:(Ldev/langchain4j/rag/content/aggregator/ContentAggregator;Ljava/util/Map;)V\n-      #205 ()V\n-  3: #182 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #314 ()V\n+      #315 REF_invokeStatic dev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest.lambda$should_fail_when_multiple_queries_with_default_query_selector$1:(Ldev/langchain4j/rag/content/aggregator/ContentAggregator;Ljava/util/Map;)V\n+      #314 ()V\n+  3: #301 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #183 (Ljava/lang/Object;)Ljava/lang/Object;\n-      #214 REF_invokeStatic dev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest.lambda$should_fuse_then_rerank_against_first_query_then_filter_by_minScore$2:(Ljava/util/Map;)Ldev/langchain4j/rag/query/Query;\n-      #215 (Ljava/util/Map;)Ldev/langchain4j/rag/query/Query;\n+      #308 (Ljava/lang/Object;)Ljava/lang/Object;\n+      #318 REF_invokeStatic dev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest.lambda$should_fuse_then_rerank_against_first_query_then_filter_by_minScore$2:(Ljava/util/Map;)Ldev/langchain4j/rag/query/Query;\n+      #321 (Ljava/util/Map;)Ldev/langchain4j/rag/query/Query;\n+InnerClasses:\n+  public static #323= #126 of #111;       // Builder=class java/util/stream/Stream$Builder of class java/util/stream/Stream\n+  public static #328= #324 of #326;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n+  public static #329= #232 of #152;       // ReRankingContentAggregatorBuilder=class dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder of class dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator\n+  public static final #334= #330 of #332; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n"}]}, {"source1": "dev/langchain4j/rag/content/aggregator/ReciprocalRankFuserTest.class", "source2": "dev/langchain4j/rag/content/aggregator/ReciprocalRankFuserTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,127 +1,127 @@\n-  SHA-256 checksum 5d8784061f7bccc566c90b34430dfcbd7654a68450b297b12fb41553edc1015a\n+  SHA-256 checksum a56c03ba638701cb108b2b8e6c81bc14502fafd76b25a01fb519afda460a05a6\n   Compiled from \"ReciprocalRankFuserTest.java\"\n class dev.langchain4j.rag.content.aggregator.ReciprocalRankFuserTest\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #23                         // dev/langchain4j/rag/content/aggregator/ReciprocalRankFuserTest\n-  super_class: #6                         // java/lang/Object\n+  this_class: #36                         // dev/langchain4j/rag/content/aggregator/ReciprocalRankFuserTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 4, methods: 5, attributes: 2\n Constant pool:\n-    #1 = Methodref          #6.#59        // java/lang/Object.\"<init>\":()V\n-    #2 = Methodref          #60.#61       // dev/langchain4j/rag/content/aggregator/ReciprocalRankFuser.fuse:(Ljava/util/Collection;)Ljava/util/List;\n-    #3 = Methodref          #62.#63       // org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-    #4 = Methodref          #64.#65       // org/assertj/core/api/ListAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n-    #5 = InterfaceMethodref #66.#67       // java/util/stream/Stream.builder:()Ljava/util/stream/Stream$Builder;\n-    #6 = Class              #68           // java/lang/Object\n-    #7 = Class              #69           // java/util/List\n-    #8 = Class              #70           // dev/langchain4j/rag/content/Content\n-    #9 = Methodref          #23.#71       // dev/langchain4j/rag/content/aggregator/ReciprocalRankFuserTest.list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n-   #10 = Methodref          #72.#73       // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-   #11 = InterfaceMethodref #74.#75       // org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-   #12 = InterfaceMethodref #76.#77       // java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n-   #13 = Fieldref           #23.#78       // dev/langchain4j/rag/content/aggregator/ReciprocalRankFuserTest.A:Ldev/langchain4j/rag/content/Content;\n-   #14 = Fieldref           #23.#79       // dev/langchain4j/rag/content/aggregator/ReciprocalRankFuserTest.B:Ldev/langchain4j/rag/content/Content;\n-   #15 = Fieldref           #23.#80       // dev/langchain4j/rag/content/aggregator/ReciprocalRankFuserTest.C:Ldev/langchain4j/rag/content/Content;\n-   #16 = Fieldref           #23.#81       // dev/langchain4j/rag/content/aggregator/ReciprocalRankFuserTest.D:Ldev/langchain4j/rag/content/Content;\n-   #17 = InterfaceMethodref #76.#82       // java/util/stream/Stream$Builder.build:()Ljava/util/stream/Stream;\n-   #18 = String             #24           // A\n-   #19 = Methodref          #8.#83        // dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n-   #20 = String             #26           // B\n-   #21 = String             #27           // C\n-   #22 = String             #28           // D\n-   #23 = Class              #84           // dev/langchain4j/rag/content/aggregator/ReciprocalRankFuserTest\n-   #24 = Utf8               A\n-   #25 = Utf8               Ldev/langchain4j/rag/content/Content;\n-   #26 = Utf8               B\n-   #27 = Utf8               C\n-   #28 = Utf8               D\n-   #29 = Utf8               <init>\n-   #30 = Utf8               ()V\n-   #31 = Utf8               Code\n-   #32 = Utf8               LineNumberTable\n-   #33 = Utf8               LocalVariableTable\n-   #34 = Utf8               this\n-   #35 = Utf8               Ldev/langchain4j/rag/content/aggregator/ReciprocalRankFuserTest;\n-   #36 = Utf8               should_fuse\n-   #37 = Utf8               (Ljava/util/Collection;Ljava/util/List;)V\n-   #38 = Utf8               contents\n-   #39 = Utf8               Ljava/util/Collection;\n-   #40 = Utf8               expected\n-   #41 = Utf8               Ljava/util/List;\n-   #42 = Utf8               LocalVariableTypeTable\n-   #43 = Utf8               Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;\n-   #44 = Utf8               Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n-   #45 = Utf8               Signature\n-   #46 = Utf8               (Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;)V\n-   #47 = Utf8               RuntimeVisibleAnnotations\n-   #48 = Utf8               Lorg/junit/jupiter/params/ParameterizedTest;\n-   #49 = Utf8               Lorg/junit/jupiter/params/provider/MethodSource;\n-   #50 = Utf8               ()Ljava/util/stream/Stream;\n-   #51 = Utf8               ()Ljava/util/stream/Stream<Lorg/junit/jupiter/params/provider/Arguments;>;\n-   #52 = Utf8               list\n-   #53 = Utf8               ([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n-   #54 = Utf8               [Ldev/langchain4j/rag/content/Content;\n-   #55 = Utf8               ([Ldev/langchain4j/rag/content/Content;)Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n-   #56 = Utf8               <clinit>\n-   #57 = Utf8               SourceFile\n-   #58 = Utf8               ReciprocalRankFuserTest.java\n-   #59 = NameAndType        #29:#30       // \"<init>\":()V\n-   #60 = Class              #85           // dev/langchain4j/rag/content/aggregator/ReciprocalRankFuser\n-   #61 = NameAndType        #86:#87       // fuse:(Ljava/util/Collection;)Ljava/util/List;\n-   #62 = Class              #88           // org/assertj/core/api/Assertions\n-   #63 = NameAndType        #89:#90       // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-   #64 = Class              #91           // org/assertj/core/api/ListAssert\n-   #65 = NameAndType        #92:#93       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n-   #66 = Class              #94           // java/util/stream/Stream\n-   #67 = NameAndType        #95:#98       // builder:()Ljava/util/stream/Stream$Builder;\n-   #68 = Utf8               java/lang/Object\n-   #69 = Utf8               java/util/List\n-   #70 = Utf8               dev/langchain4j/rag/content/Content\n-   #71 = NameAndType        #52:#53       // list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n-   #72 = Class              #99           // java/util/Arrays\n-   #73 = NameAndType        #100:#101     // asList:([Ljava/lang/Object;)Ljava/util/List;\n-   #74 = Class              #102          // org/junit/jupiter/params/provider/Arguments\n-   #75 = NameAndType        #103:#104     // of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-   #76 = Class              #105          // java/util/stream/Stream$Builder\n-   #77 = NameAndType        #106:#107     // add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n-   #78 = NameAndType        #24:#25       // A:Ldev/langchain4j/rag/content/Content;\n-   #79 = NameAndType        #26:#25       // B:Ldev/langchain4j/rag/content/Content;\n-   #80 = NameAndType        #27:#25       // C:Ldev/langchain4j/rag/content/Content;\n-   #81 = NameAndType        #28:#25       // D:Ldev/langchain4j/rag/content/Content;\n-   #82 = NameAndType        #108:#50      // build:()Ljava/util/stream/Stream;\n-   #83 = NameAndType        #109:#110     // from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n-   #84 = Utf8               dev/langchain4j/rag/content/aggregator/ReciprocalRankFuserTest\n-   #85 = Utf8               dev/langchain4j/rag/content/aggregator/ReciprocalRankFuser\n-   #86 = Utf8               fuse\n-   #87 = Utf8               (Ljava/util/Collection;)Ljava/util/List;\n-   #88 = Utf8               org/assertj/core/api/Assertions\n-   #89 = Utf8               assertThat\n-   #90 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-   #91 = Utf8               org/assertj/core/api/ListAssert\n-   #92 = Utf8               isEqualTo\n-   #93 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n-   #94 = Utf8               java/util/stream/Stream\n-   #95 = Utf8               builder\n-   #96 = Utf8               Builder\n-   #97 = Utf8               InnerClasses\n-   #98 = Utf8               ()Ljava/util/stream/Stream$Builder;\n-   #99 = Utf8               java/util/Arrays\n-  #100 = Utf8               asList\n-  #101 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n-  #102 = Utf8               org/junit/jupiter/params/provider/Arguments\n-  #103 = Utf8               of\n-  #104 = Utf8               ([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-  #105 = Utf8               java/util/stream/Stream$Builder\n-  #106 = Utf8               add\n-  #107 = Utf8               (Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n-  #108 = Utf8               build\n-  #109 = Utf8               from\n-  #110 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Methodref          #8.#9         // dev/langchain4j/rag/content/aggregator/ReciprocalRankFuser.fuse:(Ljava/util/Collection;)Ljava/util/List;\n+    #8 = Class              #10           // dev/langchain4j/rag/content/aggregator/ReciprocalRankFuser\n+    #9 = NameAndType        #11:#12       // fuse:(Ljava/util/Collection;)Ljava/util/List;\n+   #10 = Utf8               dev/langchain4j/rag/content/aggregator/ReciprocalRankFuser\n+   #11 = Utf8               fuse\n+   #12 = Utf8               (Ljava/util/Collection;)Ljava/util/List;\n+   #13 = Methodref          #14.#15       // org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+   #14 = Class              #16           // org/assertj/core/api/Assertions\n+   #15 = NameAndType        #17:#18       // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+   #16 = Utf8               org/assertj/core/api/Assertions\n+   #17 = Utf8               assertThat\n+   #18 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+   #19 = Methodref          #20.#21       // org/assertj/core/api/ListAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n+   #20 = Class              #22           // org/assertj/core/api/ListAssert\n+   #21 = NameAndType        #23:#24       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n+   #22 = Utf8               org/assertj/core/api/ListAssert\n+   #23 = Utf8               isEqualTo\n+   #24 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n+   #25 = InterfaceMethodref #26.#27       // java/util/stream/Stream.builder:()Ljava/util/stream/Stream$Builder;\n+   #26 = Class              #28           // java/util/stream/Stream\n+   #27 = NameAndType        #29:#30       // builder:()Ljava/util/stream/Stream$Builder;\n+   #28 = Utf8               java/util/stream/Stream\n+   #29 = Utf8               builder\n+   #30 = Utf8               ()Ljava/util/stream/Stream$Builder;\n+   #31 = Class              #32           // java/util/List\n+   #32 = Utf8               java/util/List\n+   #33 = Class              #34           // dev/langchain4j/rag/content/Content\n+   #34 = Utf8               dev/langchain4j/rag/content/Content\n+   #35 = Methodref          #36.#37       // dev/langchain4j/rag/content/aggregator/ReciprocalRankFuserTest.list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+   #36 = Class              #38           // dev/langchain4j/rag/content/aggregator/ReciprocalRankFuserTest\n+   #37 = NameAndType        #39:#40       // list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+   #38 = Utf8               dev/langchain4j/rag/content/aggregator/ReciprocalRankFuserTest\n+   #39 = Utf8               list\n+   #40 = Utf8               ([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+   #41 = Methodref          #42.#43       // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+   #42 = Class              #44           // java/util/Arrays\n+   #43 = NameAndType        #45:#46       // asList:([Ljava/lang/Object;)Ljava/util/List;\n+   #44 = Utf8               java/util/Arrays\n+   #45 = Utf8               asList\n+   #46 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n+   #47 = InterfaceMethodref #48.#49       // org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+   #48 = Class              #50           // org/junit/jupiter/params/provider/Arguments\n+   #49 = NameAndType        #51:#52       // of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+   #50 = Utf8               org/junit/jupiter/params/provider/Arguments\n+   #51 = Utf8               of\n+   #52 = Utf8               ([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+   #53 = InterfaceMethodref #54.#55       // java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+   #54 = Class              #56           // java/util/stream/Stream$Builder\n+   #55 = NameAndType        #57:#58       // add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+   #56 = Utf8               java/util/stream/Stream$Builder\n+   #57 = Utf8               add\n+   #58 = Utf8               (Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+   #59 = Fieldref           #36.#60       // dev/langchain4j/rag/content/aggregator/ReciprocalRankFuserTest.A:Ldev/langchain4j/rag/content/Content;\n+   #60 = NameAndType        #61:#62       // A:Ldev/langchain4j/rag/content/Content;\n+   #61 = Utf8               A\n+   #62 = Utf8               Ldev/langchain4j/rag/content/Content;\n+   #63 = Fieldref           #36.#64       // dev/langchain4j/rag/content/aggregator/ReciprocalRankFuserTest.B:Ldev/langchain4j/rag/content/Content;\n+   #64 = NameAndType        #65:#62       // B:Ldev/langchain4j/rag/content/Content;\n+   #65 = Utf8               B\n+   #66 = Fieldref           #36.#67       // dev/langchain4j/rag/content/aggregator/ReciprocalRankFuserTest.C:Ldev/langchain4j/rag/content/Content;\n+   #67 = NameAndType        #68:#62       // C:Ldev/langchain4j/rag/content/Content;\n+   #68 = Utf8               C\n+   #69 = Fieldref           #36.#70       // dev/langchain4j/rag/content/aggregator/ReciprocalRankFuserTest.D:Ldev/langchain4j/rag/content/Content;\n+   #70 = NameAndType        #71:#62       // D:Ldev/langchain4j/rag/content/Content;\n+   #71 = Utf8               D\n+   #72 = InterfaceMethodref #54.#73       // java/util/stream/Stream$Builder.build:()Ljava/util/stream/Stream;\n+   #73 = NameAndType        #74:#75       // build:()Ljava/util/stream/Stream;\n+   #74 = Utf8               build\n+   #75 = Utf8               ()Ljava/util/stream/Stream;\n+   #76 = String             #61           // A\n+   #77 = Methodref          #33.#78       // dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+   #78 = NameAndType        #79:#80       // from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+   #79 = Utf8               from\n+   #80 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+   #81 = String             #65           // B\n+   #82 = String             #68           // C\n+   #83 = String             #71           // D\n+   #84 = Utf8               Code\n+   #85 = Utf8               LineNumberTable\n+   #86 = Utf8               LocalVariableTable\n+   #87 = Utf8               this\n+   #88 = Utf8               Ldev/langchain4j/rag/content/aggregator/ReciprocalRankFuserTest;\n+   #89 = Utf8               should_fuse\n+   #90 = Utf8               (Ljava/util/Collection;Ljava/util/List;)V\n+   #91 = Utf8               contents\n+   #92 = Utf8               Ljava/util/Collection;\n+   #93 = Utf8               expected\n+   #94 = Utf8               Ljava/util/List;\n+   #95 = Utf8               LocalVariableTypeTable\n+   #96 = Utf8               Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;\n+   #97 = Utf8               Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n+   #98 = Utf8               Signature\n+   #99 = Utf8               (Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;)V\n+  #100 = Utf8               RuntimeVisibleAnnotations\n+  #101 = Utf8               Lorg/junit/jupiter/params/ParameterizedTest;\n+  #102 = Utf8               Lorg/junit/jupiter/params/provider/MethodSource;\n+  #103 = Utf8               ()Ljava/util/stream/Stream<Lorg/junit/jupiter/params/provider/Arguments;>;\n+  #104 = Utf8               [Ldev/langchain4j/rag/content/Content;\n+  #105 = Utf8               ([Ldev/langchain4j/rag/content/Content;)Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n+  #106 = Utf8               <clinit>\n+  #107 = Utf8               SourceFile\n+  #108 = Utf8               ReciprocalRankFuserTest.java\n+  #109 = Utf8               InnerClasses\n+  #110 = Utf8               Builder\n {\n   private static final dev.langchain4j.rag.content.Content A;\n     descriptor: Ldev/langchain4j/rag/content/Content;\n     flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL\n \n   private static final dev.langchain4j.rag.content.Content B;\n     descriptor: Ldev/langchain4j/rag/content/Content;\n@@ -151,698 +151,698 @@\n \n   void should_fuse(java.util.Collection<java.util.List<dev.langchain4j.rag.content.Content>>, java.util.List<dev.langchain4j.rag.content.Content>);\n     descriptor: (Ljava/util/Collection;Ljava/util/List;)V\n     flags: (0x0000)\n     Code:\n       stack=2, locals=3, args_size=3\n          0: aload_1\n-         1: invokestatic  #2                  // Method dev/langchain4j/rag/content/aggregator/ReciprocalRankFuser.fuse:(Ljava/util/Collection;)Ljava/util/List;\n-         4: invokestatic  #3                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+         1: invokestatic  #7                  // Method dev/langchain4j/rag/content/aggregator/ReciprocalRankFuser.fuse:(Ljava/util/Collection;)Ljava/util/List;\n+         4: invokestatic  #13                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n          7: aload_2\n-         8: invokevirtual #4                  // Method org/assertj/core/api/ListAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n+         8: invokevirtual #19                 // Method org/assertj/core/api/ListAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n         11: pop\n         12: return\n       LineNumberTable:\n         line 26: 0\n         line 27: 12\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      13     0  this   Ldev/langchain4j/rag/content/aggregator/ReciprocalRankFuserTest;\n             0      13     1 contents   Ljava/util/Collection;\n             0      13     2 expected   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0      13     1 contents   Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;\n             0      13     2 expected   Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n-    Signature: #46                          // (Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;)V\n+    Signature: #99                          // (Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;)V\n     RuntimeVisibleAnnotations:\n-      0: #48()\n+      0: #101()\n         org.junit.jupiter.params.ParameterizedTest\n-      1: #49()\n+      1: #102()\n         org.junit.jupiter.params.provider.MethodSource\n \n   public static java.util.stream.Stream<org.junit.jupiter.params.provider.Arguments> should_fuse();\n     descriptor: ()Ljava/util/stream/Stream;\n     flags: (0x0009) ACC_PUBLIC, ACC_STATIC\n     Code:\n       stack=11, locals=0, args_size=0\n-         0: invokestatic  #5                  // InterfaceMethod java/util/stream/Stream.builder:()Ljava/util/stream/Stream$Builder;\n+         0: invokestatic  #25                 // InterfaceMethod java/util/stream/Stream.builder:()Ljava/util/stream/Stream$Builder;\n          3: iconst_2\n-         4: anewarray     #6                  // class java/lang/Object\n+         4: anewarray     #2                  // class java/lang/Object\n          7: dup\n          8: iconst_0\n          9: iconst_2\n-        10: anewarray     #7                  // class java/util/List\n+        10: anewarray     #31                 // class java/util/List\n         13: dup\n         14: iconst_0\n         15: iconst_0\n-        16: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n-        19: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+        16: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n+        19: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n         22: aastore\n         23: dup\n         24: iconst_1\n         25: iconst_0\n-        26: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n-        29: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+        26: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n+        29: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n         32: aastore\n-        33: invokestatic  #10                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        33: invokestatic  #41                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n         36: aastore\n         37: dup\n         38: iconst_1\n         39: iconst_0\n-        40: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n-        43: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+        40: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n+        43: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n         46: aastore\n-        47: invokestatic  #11                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-        50: invokeinterface #12,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+        47: invokestatic  #47                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+        50: invokeinterface #53,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n         55: iconst_2\n-        56: anewarray     #6                  // class java/lang/Object\n+        56: anewarray     #2                  // class java/lang/Object\n         59: dup\n         60: iconst_0\n         61: iconst_2\n-        62: anewarray     #7                  // class java/util/List\n+        62: anewarray     #31                 // class java/util/List\n         65: dup\n         66: iconst_0\n         67: iconst_0\n-        68: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n-        71: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+        68: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n+        71: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n         74: aastore\n         75: dup\n         76: iconst_1\n         77: iconst_1\n-        78: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+        78: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n         81: dup\n         82: iconst_0\n-        83: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+        83: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n         86: aastore\n-        87: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+        87: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n         90: aastore\n-        91: invokestatic  #10                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        91: invokestatic  #41                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n         94: aastore\n         95: dup\n         96: iconst_1\n         97: iconst_1\n-        98: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+        98: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        101: dup\n        102: iconst_0\n-       103: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       103: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        106: aastore\n-       107: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+       107: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n        110: aastore\n-       111: invokestatic  #11                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-       114: invokeinterface #12,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+       111: invokestatic  #47                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+       114: invokeinterface #53,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n        119: iconst_2\n-       120: anewarray     #6                  // class java/lang/Object\n+       120: anewarray     #2                  // class java/lang/Object\n        123: dup\n        124: iconst_0\n        125: iconst_2\n-       126: anewarray     #7                  // class java/util/List\n+       126: anewarray     #31                 // class java/util/List\n        129: dup\n        130: iconst_0\n        131: iconst_1\n-       132: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       132: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        135: dup\n        136: iconst_0\n-       137: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       137: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        140: aastore\n-       141: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+       141: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n        144: aastore\n        145: dup\n        146: iconst_1\n        147: iconst_0\n-       148: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n-       151: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+       148: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n+       151: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n        154: aastore\n-       155: invokestatic  #10                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       155: invokestatic  #41                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        158: aastore\n        159: dup\n        160: iconst_1\n        161: iconst_1\n-       162: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       162: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        165: dup\n        166: iconst_0\n-       167: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       167: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        170: aastore\n-       171: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+       171: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n        174: aastore\n-       175: invokestatic  #11                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-       178: invokeinterface #12,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+       175: invokestatic  #47                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+       178: invokeinterface #53,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n        183: iconst_2\n-       184: anewarray     #6                  // class java/lang/Object\n+       184: anewarray     #2                  // class java/lang/Object\n        187: dup\n        188: iconst_0\n        189: iconst_2\n-       190: anewarray     #7                  // class java/util/List\n+       190: anewarray     #31                 // class java/util/List\n        193: dup\n        194: iconst_0\n        195: iconst_1\n-       196: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       196: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        199: dup\n        200: iconst_0\n-       201: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       201: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        204: aastore\n-       205: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+       205: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n        208: aastore\n        209: dup\n        210: iconst_1\n        211: iconst_1\n-       212: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       212: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        215: dup\n        216: iconst_0\n-       217: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       217: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        220: aastore\n-       221: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+       221: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n        224: aastore\n-       225: invokestatic  #10                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       225: invokestatic  #41                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        228: aastore\n        229: dup\n        230: iconst_1\n        231: iconst_1\n-       232: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       232: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        235: dup\n        236: iconst_0\n-       237: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       237: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        240: aastore\n-       241: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+       241: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n        244: aastore\n-       245: invokestatic  #11                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-       248: invokeinterface #12,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+       245: invokestatic  #47                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+       248: invokeinterface #53,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n        253: iconst_2\n-       254: anewarray     #6                  // class java/lang/Object\n+       254: anewarray     #2                  // class java/lang/Object\n        257: dup\n        258: iconst_0\n        259: iconst_2\n-       260: anewarray     #7                  // class java/util/List\n+       260: anewarray     #31                 // class java/util/List\n        263: dup\n        264: iconst_0\n        265: iconst_1\n-       266: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       266: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        269: dup\n        270: iconst_0\n-       271: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       271: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        274: aastore\n-       275: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+       275: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n        278: aastore\n        279: dup\n        280: iconst_1\n        281: iconst_1\n-       282: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       282: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        285: dup\n        286: iconst_0\n-       287: getstatic     #14                 // Field B:Ldev/langchain4j/rag/content/Content;\n+       287: getstatic     #63                 // Field B:Ldev/langchain4j/rag/content/Content;\n        290: aastore\n-       291: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+       291: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n        294: aastore\n-       295: invokestatic  #10                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       295: invokestatic  #41                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        298: aastore\n        299: dup\n        300: iconst_1\n        301: iconst_2\n-       302: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       302: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        305: dup\n        306: iconst_0\n-       307: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       307: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        310: aastore\n        311: dup\n        312: iconst_1\n-       313: getstatic     #14                 // Field B:Ldev/langchain4j/rag/content/Content;\n+       313: getstatic     #63                 // Field B:Ldev/langchain4j/rag/content/Content;\n        316: aastore\n-       317: invokestatic  #10                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       317: invokestatic  #41                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        320: aastore\n-       321: invokestatic  #11                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-       324: invokeinterface #12,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+       321: invokestatic  #47                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+       324: invokeinterface #53,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n        329: iconst_2\n-       330: anewarray     #6                  // class java/lang/Object\n+       330: anewarray     #2                  // class java/lang/Object\n        333: dup\n        334: iconst_0\n        335: iconst_2\n-       336: anewarray     #7                  // class java/util/List\n+       336: anewarray     #31                 // class java/util/List\n        339: dup\n        340: iconst_0\n        341: iconst_1\n-       342: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       342: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        345: dup\n        346: iconst_0\n-       347: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       347: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        350: aastore\n-       351: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+       351: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n        354: aastore\n        355: dup\n        356: iconst_1\n        357: iconst_2\n-       358: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       358: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        361: dup\n        362: iconst_0\n-       363: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       363: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        366: aastore\n        367: dup\n        368: iconst_1\n-       369: getstatic     #14                 // Field B:Ldev/langchain4j/rag/content/Content;\n+       369: getstatic     #63                 // Field B:Ldev/langchain4j/rag/content/Content;\n        372: aastore\n-       373: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+       373: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n        376: aastore\n-       377: invokestatic  #10                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       377: invokestatic  #41                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        380: aastore\n        381: dup\n        382: iconst_1\n        383: iconst_2\n-       384: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       384: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        387: dup\n        388: iconst_0\n-       389: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       389: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        392: aastore\n        393: dup\n        394: iconst_1\n-       395: getstatic     #14                 // Field B:Ldev/langchain4j/rag/content/Content;\n+       395: getstatic     #63                 // Field B:Ldev/langchain4j/rag/content/Content;\n        398: aastore\n-       399: invokestatic  #10                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       399: invokestatic  #41                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        402: aastore\n-       403: invokestatic  #11                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-       406: invokeinterface #12,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+       403: invokestatic  #47                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+       406: invokeinterface #53,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n        411: iconst_2\n-       412: anewarray     #6                  // class java/lang/Object\n+       412: anewarray     #2                  // class java/lang/Object\n        415: dup\n        416: iconst_0\n        417: iconst_2\n-       418: anewarray     #7                  // class java/util/List\n+       418: anewarray     #31                 // class java/util/List\n        421: dup\n        422: iconst_0\n        423: iconst_1\n-       424: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       424: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        427: dup\n        428: iconst_0\n-       429: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       429: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        432: aastore\n-       433: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+       433: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n        436: aastore\n        437: dup\n        438: iconst_1\n        439: iconst_2\n-       440: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       440: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        443: dup\n        444: iconst_0\n-       445: getstatic     #14                 // Field B:Ldev/langchain4j/rag/content/Content;\n+       445: getstatic     #63                 // Field B:Ldev/langchain4j/rag/content/Content;\n        448: aastore\n        449: dup\n        450: iconst_1\n-       451: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       451: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        454: aastore\n-       455: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+       455: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n        458: aastore\n-       459: invokestatic  #10                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       459: invokestatic  #41                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        462: aastore\n        463: dup\n        464: iconst_1\n        465: iconst_2\n-       466: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       466: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        469: dup\n        470: iconst_0\n-       471: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       471: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        474: aastore\n        475: dup\n        476: iconst_1\n-       477: getstatic     #14                 // Field B:Ldev/langchain4j/rag/content/Content;\n+       477: getstatic     #63                 // Field B:Ldev/langchain4j/rag/content/Content;\n        480: aastore\n-       481: invokestatic  #10                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       481: invokestatic  #41                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        484: aastore\n-       485: invokestatic  #11                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-       488: invokeinterface #12,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+       485: invokestatic  #47                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+       488: invokeinterface #53,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n        493: iconst_2\n-       494: anewarray     #6                  // class java/lang/Object\n+       494: anewarray     #2                  // class java/lang/Object\n        497: dup\n        498: iconst_0\n        499: iconst_2\n-       500: anewarray     #7                  // class java/util/List\n+       500: anewarray     #31                 // class java/util/List\n        503: dup\n        504: iconst_0\n        505: iconst_2\n-       506: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       506: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        509: dup\n        510: iconst_0\n-       511: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       511: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        514: aastore\n        515: dup\n        516: iconst_1\n-       517: getstatic     #14                 // Field B:Ldev/langchain4j/rag/content/Content;\n+       517: getstatic     #63                 // Field B:Ldev/langchain4j/rag/content/Content;\n        520: aastore\n-       521: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+       521: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n        524: aastore\n        525: dup\n        526: iconst_1\n        527: iconst_1\n-       528: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       528: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        531: dup\n        532: iconst_0\n-       533: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       533: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        536: aastore\n-       537: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+       537: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n        540: aastore\n-       541: invokestatic  #10                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       541: invokestatic  #41                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        544: aastore\n        545: dup\n        546: iconst_1\n        547: iconst_2\n-       548: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       548: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        551: dup\n        552: iconst_0\n-       553: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       553: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        556: aastore\n        557: dup\n        558: iconst_1\n-       559: getstatic     #14                 // Field B:Ldev/langchain4j/rag/content/Content;\n+       559: getstatic     #63                 // Field B:Ldev/langchain4j/rag/content/Content;\n        562: aastore\n-       563: invokestatic  #10                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       563: invokestatic  #41                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        566: aastore\n-       567: invokestatic  #11                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-       570: invokeinterface #12,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+       567: invokestatic  #47                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+       570: invokeinterface #53,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n        575: iconst_2\n-       576: anewarray     #6                  // class java/lang/Object\n+       576: anewarray     #2                  // class java/lang/Object\n        579: dup\n        580: iconst_0\n        581: iconst_2\n-       582: anewarray     #7                  // class java/util/List\n+       582: anewarray     #31                 // class java/util/List\n        585: dup\n        586: iconst_0\n        587: iconst_2\n-       588: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       588: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        591: dup\n        592: iconst_0\n-       593: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       593: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        596: aastore\n        597: dup\n        598: iconst_1\n-       599: getstatic     #14                 // Field B:Ldev/langchain4j/rag/content/Content;\n+       599: getstatic     #63                 // Field B:Ldev/langchain4j/rag/content/Content;\n        602: aastore\n-       603: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+       603: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n        606: aastore\n        607: dup\n        608: iconst_1\n        609: iconst_1\n-       610: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       610: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        613: dup\n        614: iconst_0\n-       615: getstatic     #14                 // Field B:Ldev/langchain4j/rag/content/Content;\n+       615: getstatic     #63                 // Field B:Ldev/langchain4j/rag/content/Content;\n        618: aastore\n-       619: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+       619: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n        622: aastore\n-       623: invokestatic  #10                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       623: invokestatic  #41                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        626: aastore\n        627: dup\n        628: iconst_1\n        629: iconst_2\n-       630: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       630: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        633: dup\n        634: iconst_0\n-       635: getstatic     #14                 // Field B:Ldev/langchain4j/rag/content/Content;\n+       635: getstatic     #63                 // Field B:Ldev/langchain4j/rag/content/Content;\n        638: aastore\n        639: dup\n        640: iconst_1\n-       641: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       641: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        644: aastore\n-       645: invokestatic  #10                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       645: invokestatic  #41                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        648: aastore\n-       649: invokestatic  #11                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-       652: invokeinterface #12,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+       649: invokestatic  #47                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+       652: invokeinterface #53,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n        657: iconst_2\n-       658: anewarray     #6                  // class java/lang/Object\n+       658: anewarray     #2                  // class java/lang/Object\n        661: dup\n        662: iconst_0\n        663: iconst_2\n-       664: anewarray     #7                  // class java/util/List\n+       664: anewarray     #31                 // class java/util/List\n        667: dup\n        668: iconst_0\n        669: iconst_2\n-       670: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       670: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        673: dup\n        674: iconst_0\n-       675: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       675: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        678: aastore\n        679: dup\n        680: iconst_1\n-       681: getstatic     #14                 // Field B:Ldev/langchain4j/rag/content/Content;\n+       681: getstatic     #63                 // Field B:Ldev/langchain4j/rag/content/Content;\n        684: aastore\n-       685: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+       685: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n        688: aastore\n        689: dup\n        690: iconst_1\n        691: iconst_2\n-       692: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       692: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        695: dup\n        696: iconst_0\n-       697: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       697: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        700: aastore\n        701: dup\n        702: iconst_1\n-       703: getstatic     #14                 // Field B:Ldev/langchain4j/rag/content/Content;\n+       703: getstatic     #63                 // Field B:Ldev/langchain4j/rag/content/Content;\n        706: aastore\n-       707: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+       707: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n        710: aastore\n-       711: invokestatic  #10                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       711: invokestatic  #41                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        714: aastore\n        715: dup\n        716: iconst_1\n        717: iconst_2\n-       718: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       718: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        721: dup\n        722: iconst_0\n-       723: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       723: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        726: aastore\n        727: dup\n        728: iconst_1\n-       729: getstatic     #14                 // Field B:Ldev/langchain4j/rag/content/Content;\n+       729: getstatic     #63                 // Field B:Ldev/langchain4j/rag/content/Content;\n        732: aastore\n-       733: invokestatic  #10                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       733: invokestatic  #41                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        736: aastore\n-       737: invokestatic  #11                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-       740: invokeinterface #12,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+       737: invokestatic  #47                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+       740: invokeinterface #53,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n        745: iconst_2\n-       746: anewarray     #6                  // class java/lang/Object\n+       746: anewarray     #2                  // class java/lang/Object\n        749: dup\n        750: iconst_0\n        751: iconst_2\n-       752: anewarray     #7                  // class java/util/List\n+       752: anewarray     #31                 // class java/util/List\n        755: dup\n        756: iconst_0\n        757: iconst_2\n-       758: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       758: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        761: dup\n        762: iconst_0\n-       763: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       763: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        766: aastore\n        767: dup\n        768: iconst_1\n-       769: getstatic     #14                 // Field B:Ldev/langchain4j/rag/content/Content;\n+       769: getstatic     #63                 // Field B:Ldev/langchain4j/rag/content/Content;\n        772: aastore\n-       773: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+       773: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n        776: aastore\n        777: dup\n        778: iconst_1\n        779: iconst_2\n-       780: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       780: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        783: dup\n        784: iconst_0\n-       785: getstatic     #14                 // Field B:Ldev/langchain4j/rag/content/Content;\n+       785: getstatic     #63                 // Field B:Ldev/langchain4j/rag/content/Content;\n        788: aastore\n        789: dup\n        790: iconst_1\n-       791: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       791: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        794: aastore\n-       795: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+       795: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n        798: aastore\n-       799: invokestatic  #10                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       799: invokestatic  #41                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        802: aastore\n        803: dup\n        804: iconst_1\n        805: iconst_2\n-       806: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       806: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        809: dup\n        810: iconst_0\n-       811: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       811: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        814: aastore\n        815: dup\n        816: iconst_1\n-       817: getstatic     #14                 // Field B:Ldev/langchain4j/rag/content/Content;\n+       817: getstatic     #63                 // Field B:Ldev/langchain4j/rag/content/Content;\n        820: aastore\n-       821: invokestatic  #10                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       821: invokestatic  #41                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        824: aastore\n-       825: invokestatic  #11                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-       828: invokeinterface #12,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+       825: invokestatic  #47                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+       828: invokeinterface #53,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n        833: iconst_2\n-       834: anewarray     #6                  // class java/lang/Object\n+       834: anewarray     #2                  // class java/lang/Object\n        837: dup\n        838: iconst_0\n        839: iconst_2\n-       840: anewarray     #7                  // class java/util/List\n+       840: anewarray     #31                 // class java/util/List\n        843: dup\n        844: iconst_0\n        845: iconst_2\n-       846: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       846: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        849: dup\n        850: iconst_0\n-       851: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       851: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        854: aastore\n        855: dup\n        856: iconst_1\n-       857: getstatic     #14                 // Field B:Ldev/langchain4j/rag/content/Content;\n+       857: getstatic     #63                 // Field B:Ldev/langchain4j/rag/content/Content;\n        860: aastore\n-       861: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+       861: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n        864: aastore\n        865: dup\n        866: iconst_1\n        867: iconst_2\n-       868: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       868: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        871: dup\n        872: iconst_0\n-       873: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       873: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        876: aastore\n        877: dup\n        878: iconst_1\n-       879: getstatic     #15                 // Field C:Ldev/langchain4j/rag/content/Content;\n+       879: getstatic     #66                 // Field C:Ldev/langchain4j/rag/content/Content;\n        882: aastore\n-       883: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+       883: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n        886: aastore\n-       887: invokestatic  #10                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       887: invokestatic  #41                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        890: aastore\n        891: dup\n        892: iconst_1\n        893: iconst_3\n-       894: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       894: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        897: dup\n        898: iconst_0\n-       899: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       899: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        902: aastore\n        903: dup\n        904: iconst_1\n-       905: getstatic     #14                 // Field B:Ldev/langchain4j/rag/content/Content;\n+       905: getstatic     #63                 // Field B:Ldev/langchain4j/rag/content/Content;\n        908: aastore\n        909: dup\n        910: iconst_2\n-       911: getstatic     #15                 // Field C:Ldev/langchain4j/rag/content/Content;\n+       911: getstatic     #66                 // Field C:Ldev/langchain4j/rag/content/Content;\n        914: aastore\n-       915: invokestatic  #10                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       915: invokestatic  #41                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        918: aastore\n-       919: invokestatic  #11                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-       922: invokeinterface #12,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+       919: invokestatic  #47                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+       922: invokeinterface #53,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n        927: iconst_2\n-       928: anewarray     #6                  // class java/lang/Object\n+       928: anewarray     #2                  // class java/lang/Object\n        931: dup\n        932: iconst_0\n        933: iconst_2\n-       934: anewarray     #7                  // class java/util/List\n+       934: anewarray     #31                 // class java/util/List\n        937: dup\n        938: iconst_0\n        939: iconst_2\n-       940: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       940: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        943: dup\n        944: iconst_0\n-       945: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       945: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        948: aastore\n        949: dup\n        950: iconst_1\n-       951: getstatic     #14                 // Field B:Ldev/langchain4j/rag/content/Content;\n+       951: getstatic     #63                 // Field B:Ldev/langchain4j/rag/content/Content;\n        954: aastore\n-       955: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+       955: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n        958: aastore\n        959: dup\n        960: iconst_1\n        961: iconst_2\n-       962: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       962: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        965: dup\n        966: iconst_0\n-       967: getstatic     #14                 // Field B:Ldev/langchain4j/rag/content/Content;\n+       967: getstatic     #63                 // Field B:Ldev/langchain4j/rag/content/Content;\n        970: aastore\n        971: dup\n        972: iconst_1\n-       973: getstatic     #15                 // Field C:Ldev/langchain4j/rag/content/Content;\n+       973: getstatic     #66                 // Field C:Ldev/langchain4j/rag/content/Content;\n        976: aastore\n-       977: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+       977: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n        980: aastore\n-       981: invokestatic  #10                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       981: invokestatic  #41                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        984: aastore\n        985: dup\n        986: iconst_1\n        987: iconst_3\n-       988: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       988: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        991: dup\n        992: iconst_0\n-       993: getstatic     #14                 // Field B:Ldev/langchain4j/rag/content/Content;\n+       993: getstatic     #63                 // Field B:Ldev/langchain4j/rag/content/Content;\n        996: aastore\n        997: dup\n        998: iconst_1\n-       999: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       999: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n       1002: aastore\n       1003: dup\n       1004: iconst_2\n-      1005: getstatic     #15                 // Field C:Ldev/langchain4j/rag/content/Content;\n+      1005: getstatic     #66                 // Field C:Ldev/langchain4j/rag/content/Content;\n       1008: aastore\n-      1009: invokestatic  #10                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+      1009: invokestatic  #41                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n       1012: aastore\n-      1013: invokestatic  #11                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-      1016: invokeinterface #12,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+      1013: invokestatic  #47                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+      1016: invokeinterface #53,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n       1021: iconst_2\n-      1022: anewarray     #6                  // class java/lang/Object\n+      1022: anewarray     #2                  // class java/lang/Object\n       1025: dup\n       1026: iconst_0\n       1027: iconst_2\n-      1028: anewarray     #7                  // class java/util/List\n+      1028: anewarray     #31                 // class java/util/List\n       1031: dup\n       1032: iconst_0\n       1033: iconst_2\n-      1034: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+      1034: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n       1037: dup\n       1038: iconst_0\n-      1039: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+      1039: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n       1042: aastore\n       1043: dup\n       1044: iconst_1\n-      1045: getstatic     #14                 // Field B:Ldev/langchain4j/rag/content/Content;\n+      1045: getstatic     #63                 // Field B:Ldev/langchain4j/rag/content/Content;\n       1048: aastore\n-      1049: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+      1049: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n       1052: aastore\n       1053: dup\n       1054: iconst_1\n       1055: iconst_2\n-      1056: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+      1056: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n       1059: dup\n       1060: iconst_0\n-      1061: getstatic     #15                 // Field C:Ldev/langchain4j/rag/content/Content;\n+      1061: getstatic     #66                 // Field C:Ldev/langchain4j/rag/content/Content;\n       1064: aastore\n       1065: dup\n       1066: iconst_1\n-      1067: getstatic     #16                 // Field D:Ldev/langchain4j/rag/content/Content;\n+      1067: getstatic     #69                 // Field D:Ldev/langchain4j/rag/content/Content;\n       1070: aastore\n-      1071: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+      1071: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n       1074: aastore\n-      1075: invokestatic  #10                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+      1075: invokestatic  #41                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n       1078: aastore\n       1079: dup\n       1080: iconst_1\n       1081: iconst_4\n-      1082: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+      1082: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n       1085: dup\n       1086: iconst_0\n-      1087: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+      1087: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n       1090: aastore\n       1091: dup\n       1092: iconst_1\n-      1093: getstatic     #15                 // Field C:Ldev/langchain4j/rag/content/Content;\n+      1093: getstatic     #66                 // Field C:Ldev/langchain4j/rag/content/Content;\n       1096: aastore\n       1097: dup\n       1098: iconst_2\n-      1099: getstatic     #14                 // Field B:Ldev/langchain4j/rag/content/Content;\n+      1099: getstatic     #63                 // Field B:Ldev/langchain4j/rag/content/Content;\n       1102: aastore\n       1103: dup\n       1104: iconst_3\n-      1105: getstatic     #16                 // Field D:Ldev/langchain4j/rag/content/Content;\n+      1105: getstatic     #69                 // Field D:Ldev/langchain4j/rag/content/Content;\n       1108: aastore\n-      1109: invokestatic  #10                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+      1109: invokestatic  #41                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n       1112: aastore\n-      1113: invokestatic  #11                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-      1116: invokeinterface #12,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n-      1121: invokeinterface #17,  1           // InterfaceMethod java/util/stream/Stream$Builder.build:()Ljava/util/stream/Stream;\n+      1113: invokestatic  #47                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+      1116: invokeinterface #53,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+      1121: invokeinterface #72,  1           // InterfaceMethod java/util/stream/Stream$Builder.build:()Ljava/util/stream/Stream;\n       1126: areturn\n       LineNumberTable:\n         line 30: 0\n         line 34: 19\n         line 35: 43\n         line 33: 47\n         line 39: 71\n@@ -882,51 +882,51 @@\n         line 84: 1009\n         line 82: 1013\n         line 87: 1049\n         line 88: 1109\n         line 86: 1113\n         line 90: 1121\n         line 30: 1126\n-    Signature: #51                          // ()Ljava/util/stream/Stream<Lorg/junit/jupiter/params/provider/Arguments;>;\n+    Signature: #103                         // ()Ljava/util/stream/Stream<Lorg/junit/jupiter/params/provider/Arguments;>;\n \n   private static java.util.List<dev.langchain4j.rag.content.Content> list(dev.langchain4j.rag.content.Content...);\n     descriptor: ([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n     flags: (0x008a) ACC_PRIVATE, ACC_STATIC, ACC_VARARGS\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n-         1: invokestatic  #10                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+         1: invokestatic  #41                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n          4: areturn\n       LineNumberTable:\n         line 94: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       5     0 contents   [Ldev/langchain4j/rag/content/Content;\n-    Signature: #55                          // ([Ldev/langchain4j/rag/content/Content;)Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n+    Signature: #105                         // ([Ldev/langchain4j/rag/content/Content;)Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n \n   static {};\n     descriptor: ()V\n     flags: (0x0008) ACC_STATIC\n     Code:\n       stack=1, locals=0, args_size=0\n-         0: ldc           #18                 // String A\n-         2: invokestatic  #19                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n-         5: putstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n-         8: ldc           #20                 // String B\n-        10: invokestatic  #19                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n-        13: putstatic     #14                 // Field B:Ldev/langchain4j/rag/content/Content;\n-        16: ldc           #21                 // String C\n-        18: invokestatic  #19                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n-        21: putstatic     #15                 // Field C:Ldev/langchain4j/rag/content/Content;\n-        24: ldc           #22                 // String D\n-        26: invokestatic  #19                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n-        29: putstatic     #16                 // Field D:Ldev/langchain4j/rag/content/Content;\n+         0: ldc           #76                 // String A\n+         2: invokestatic  #77                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+         5: putstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n+         8: ldc           #81                 // String B\n+        10: invokestatic  #77                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        13: putstatic     #63                 // Field B:Ldev/langchain4j/rag/content/Content;\n+        16: ldc           #82                 // String C\n+        18: invokestatic  #77                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        21: putstatic     #66                 // Field C:Ldev/langchain4j/rag/content/Content;\n+        24: ldc           #83                 // String D\n+        26: invokestatic  #77                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        29: putstatic     #69                 // Field D:Ldev/langchain4j/rag/content/Content;\n         32: return\n       LineNumberTable:\n         line 18: 0\n         line 19: 8\n         line 20: 16\n         line 21: 24\n }\n SourceFile: \"ReciprocalRankFuserTest.java\"\n InnerClasses:\n-  public static #96= #76 of #66;          // Builder=class java/util/stream/Stream$Builder of class java/util/stream/Stream\n+  public static #110= #54 of #26;         // Builder=class java/util/stream/Stream$Builder of class java/util/stream/Stream\n"}]}, {"source1": "dev/langchain4j/rag/content/injector/DefaultContentInjectorTest.class", "source2": "dev/langchain4j/rag/content/injector/DefaultContentInjectorTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,266 +1,266 @@\n-  SHA-256 checksum 762cb482b1d84a7a4633932f27f32befa278066a24bbe9976e272e65453f34d5\n+  SHA-256 checksum a78c55dcc211d155f0c99598ba9d77cb42cde0b0b3d28133986732ebe560931d\n   Compiled from \"DefaultContentInjectorTest.java\"\n class dev.langchain4j.rag.content.injector.DefaultContentInjectorTest\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #54                         // dev/langchain4j/rag/content/injector/DefaultContentInjectorTest\n-  super_class: #39                        // java/lang/Object\n+  this_class: #173                        // dev/langchain4j/rag/content/injector/DefaultContentInjectorTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 0, methods: 11, attributes: 3\n Constant pool:\n-    #1 = Methodref          #39.#105      // java/lang/Object.\"<init>\":()V\n-    #2 = String             #106          // Tell me about bananas.\n-    #3 = Methodref          #107.#108     // dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-    #4 = Methodref          #109.#110     // java/util/Collections.emptyList:()Ljava/util/List;\n-    #5 = Class              #111          // dev/langchain4j/rag/content/injector/DefaultContentInjector\n-    #6 = Methodref          #5.#105       // dev/langchain4j/rag/content/injector/DefaultContentInjector.\"<init>\":()V\n-    #7 = InterfaceMethodref #36.#112      // dev/langchain4j/rag/content/injector/ContentInjector.inject:(Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n-    #8 = Methodref          #113.#114     // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-    #9 = Methodref          #115.#116     // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #10 = String             #117          // Bananas are awesome!\n-   #11 = Methodref          #24.#118      // dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n-   #12 = Methodref          #109.#119     // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-   #13 = Methodref          #107.#120     // dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n-   #14 = Methodref          #113.#121     // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #15 = String             #122          // Tell me about bananas.\\n\\nAnswer using the following information:\\nBananas are awesome!\n-   #16 = Methodref          #123.#124     // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #17 = String             #125          // source\n-   #18 = String             #126          // trust me bro\n-   #19 = Methodref          #127.#128     // dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-   #20 = Methodref          #129.#130     // dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n-   #21 = Methodref          #24.#131      // dev/langchain4j/rag/content/Content.from:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/rag/content/Content;\n-   #22 = Methodref          #5.#132       // dev/langchain4j/rag/content/injector/DefaultContentInjector.\"<init>\":(Ljava/util/List;)V\n-   #23 = String             #133          // Tell me about bananas.\\n\\nAnswer using the following information:\\ncontent: Bananas are awesome!\\nsource: trust me bro\n-   #24 = Class              #134          // dev/langchain4j/rag/content/Content\n-   #25 = String             #135          // Bananas are healthy!\n-   #26 = Methodref          #136.#137     // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-   #27 = String             #138          // Tell me about bananas.\\n\\nAnswer using the following information:\\nBananas are awesome!\\n\\nBananas are healthy!\n-   #28 = String             #139          // date\n-   #29 = String             #140          // today\n-   #30 = Methodref          #127.#141     // dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-   #31 = String             #142          // my doctor\n-   #32 = String             #143          // reliability\n-   #33 = String             #144          // 100%\n-   #34 = Class              #145          // java/lang/String\n-   #35 = InterfaceMethodref #146.#147     // java/util/function/Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;\n-   #36 = Class              #148          // dev/langchain4j/rag/content/injector/ContentInjector\n-   #37 = String             #149          // Tell me about bananas.\\n\\nAnswer using the following information:\\ncontent: Bananas are awesome!\\nsource: trust me bro\\ndate: today\\n\\ncontent: Bananas are healthy!\\nsource: my doctor\\nreliability: 100%\n-   #38 = InterfaceMethodref #150.#151     // java/util/stream/Stream.builder:()Ljava/util/stream/Stream$Builder;\n-   #39 = Class              #152          // java/lang/Object\n-   #40 = InvokeDynamic      #0:#158       // #0:apply:()Ljava/util/function/Function;\n-   #41 = InterfaceMethodref #159.#160     // org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-   #42 = InterfaceMethodref #161.#162     // java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n-   #43 = InvokeDynamic      #1:#158       // #1:apply:()Ljava/util/function/Function;\n-   #44 = InterfaceMethodref #161.#164     // java/util/stream/Stream$Builder.build:()Ljava/util/stream/Stream;\n-   #45 = String             #165          // {{userMessage}}\\n{{contents}}\n-   #46 = Methodref          #166.#167     // dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n-   #47 = String             #168          // Tell me about bananas.\\nBananas are awesome!\\n\\nBananas are healthy!\n-   #48 = InvokeDynamic      #2:#158       // #2:apply:()Ljava/util/function/Function;\n-   #49 = InvokeDynamic      #3:#158       // #3:apply:()Ljava/util/function/Function;\n-   #50 = Methodref          #5.#172       // dev/langchain4j/rag/content/injector/DefaultContentInjector.builder:()Ldev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder;\n-   #51 = Methodref          #173.#174     // dev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder.promptTemplate:(Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder;\n-   #52 = Methodref          #173.#175     // dev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder.build:()Ldev/langchain4j/rag/content/injector/DefaultContentInjector;\n-   #53 = Methodref          #173.#176     // dev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder.metadataKeysToInclude:(Ljava/util/List;)Ldev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder;\n-   #54 = Class              #177          // dev/langchain4j/rag/content/injector/DefaultContentInjectorTest\n-   #55 = Utf8               <init>\n-   #56 = Utf8               ()V\n-   #57 = Utf8               Code\n-   #58 = Utf8               LineNumberTable\n-   #59 = Utf8               LocalVariableTable\n-   #60 = Utf8               this\n-   #61 = Utf8               Ldev/langchain4j/rag/content/injector/DefaultContentInjectorTest;\n-   #62 = Utf8               should_not_inject_when_no_content\n-   #63 = Utf8               userMessage\n-   #64 = Utf8               Ldev/langchain4j/data/message/UserMessage;\n-   #65 = Utf8               contents\n-   #66 = Utf8               Ljava/util/List;\n-   #67 = Utf8               injector\n-   #68 = Utf8               Ldev/langchain4j/rag/content/injector/ContentInjector;\n-   #69 = Utf8               injected\n-   #70 = Utf8               LocalVariableTypeTable\n-   #71 = Utf8               Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n-   #72 = Utf8               RuntimeVisibleAnnotations\n-   #73 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #74 = Utf8               should_inject_single_content\n-   #75 = Utf8               should_inject_single_content_with_metadata\n-   #76 = Utf8               segment\n-   #77 = Utf8               Ldev/langchain4j/data/segment/TextSegment;\n-   #78 = Utf8               metadataKeysToInclude\n-   #79 = Utf8               Ljava/util/List<Ljava/lang/String;>;\n-   #80 = Utf8               should_inject_multiple_contents\n-   #81 = Utf8               should_inject_multiple_contents_with_multiple_metadata_entries\n-   #82 = Utf8               (Ljava/util/function/Function;)V\n-   #83 = Utf8               contentInjectorProvider\n-   #84 = Utf8               Ljava/util/function/Function;\n-   #85 = Utf8               segment1\n-   #86 = Utf8               segment2\n-   #87 = Utf8               Ljava/util/function/Function<Ljava/util/List<Ljava/lang/String;>;Ldev/langchain4j/rag/content/injector/ContentInjector;>;\n-   #88 = Utf8               Signature\n-   #89 = Utf8               (Ljava/util/function/Function<Ljava/util/List<Ljava/lang/String;>;Ldev/langchain4j/rag/content/injector/ContentInjector;>;)V\n-   #90 = Utf8               Lorg/junit/jupiter/params/ParameterizedTest;\n-   #91 = Utf8               Lorg/junit/jupiter/params/provider/MethodSource;\n-   #92 = Utf8               ()Ljava/util/stream/Stream;\n-   #93 = Utf8               ()Ljava/util/stream/Stream<Lorg/junit/jupiter/params/provider/Arguments;>;\n-   #94 = Utf8               should_inject_multiple_contents_with_custom_prompt_template\n-   #95 = Utf8               promptTemplate\n-   #96 = Utf8               Ldev/langchain4j/model/input/PromptTemplate;\n-   #97 = Utf8               Ljava/util/function/Function<Ldev/langchain4j/model/input/PromptTemplate;Ldev/langchain4j/rag/content/injector/ContentInjector;>;\n-   #98 = Utf8               (Ljava/util/function/Function<Ldev/langchain4j/model/input/PromptTemplate;Ldev/langchain4j/rag/content/injector/ContentInjector;>;)V\n-   #99 = Utf8               lambda$should_inject_multiple_contents_with_custom_prompt_template$1\n-  #100 = Utf8               (Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n-  #101 = Utf8               lambda$should_inject_multiple_contents_with_multiple_metadata_entries$0\n-  #102 = Utf8               (Ljava/util/List;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n-  #103 = Utf8               SourceFile\n-  #104 = Utf8               DefaultContentInjectorTest.java\n-  #105 = NameAndType        #55:#56       // \"<init>\":()V\n-  #106 = Utf8               Tell me about bananas.\n-  #107 = Class              #178          // dev/langchain4j/data/message/UserMessage\n-  #108 = NameAndType        #179:#180     // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-  #109 = Class              #181          // java/util/Collections\n-  #110 = NameAndType        #182:#183     // emptyList:()Ljava/util/List;\n-  #111 = Utf8               dev/langchain4j/rag/content/injector/DefaultContentInjector\n-  #112 = NameAndType        #184:#185     // inject:(Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n-  #113 = Class              #186          // org/assertj/core/api/Assertions\n-  #114 = NameAndType        #187:#188     // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #115 = Class              #189          // org/assertj/core/api/ObjectAssert\n-  #116 = NameAndType        #190:#191     // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #117 = Utf8               Bananas are awesome!\n-  #118 = NameAndType        #179:#192     // from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n-  #119 = NameAndType        #193:#194     // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-  #120 = NameAndType        #195:#196     // text:()Ljava/lang/String;\n-  #121 = NameAndType        #187:#197     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #122 = Utf8               Tell me about bananas.\\n\\nAnswer using the following information:\\nBananas are awesome!\n-  #123 = Class              #198          // org/assertj/core/api/AbstractStringAssert\n-  #124 = NameAndType        #190:#197     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #125 = Utf8               source\n-  #126 = Utf8               trust me bro\n-  #127 = Class              #199          // dev/langchain4j/data/document/Metadata\n-  #128 = NameAndType        #179:#200     // from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-  #129 = Class              #201          // dev/langchain4j/data/segment/TextSegment\n-  #130 = NameAndType        #179:#202     // from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n-  #131 = NameAndType        #179:#203     // from:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/rag/content/Content;\n-  #132 = NameAndType        #55:#204      // \"<init>\":(Ljava/util/List;)V\n-  #133 = Utf8               Tell me about bananas.\\n\\nAnswer using the following information:\\ncontent: Bananas are awesome!\\nsource: trust me bro\n-  #134 = Utf8               dev/langchain4j/rag/content/Content\n-  #135 = Utf8               Bananas are healthy!\n-  #136 = Class              #205          // java/util/Arrays\n-  #137 = NameAndType        #206:#207     // asList:([Ljava/lang/Object;)Ljava/util/List;\n-  #138 = Utf8               Tell me about bananas.\\n\\nAnswer using the following information:\\nBananas are awesome!\\n\\nBananas are healthy!\n-  #139 = Utf8               date\n-  #140 = Utf8               today\n-  #141 = NameAndType        #208:#200     // add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-  #142 = Utf8               my doctor\n-  #143 = Utf8               reliability\n-  #144 = Utf8               100%\n-  #145 = Utf8               java/lang/String\n-  #146 = Class              #209          // java/util/function/Function\n-  #147 = NameAndType        #210:#211     // apply:(Ljava/lang/Object;)Ljava/lang/Object;\n-  #148 = Utf8               dev/langchain4j/rag/content/injector/ContentInjector\n-  #149 = Utf8               Tell me about bananas.\\n\\nAnswer using the following information:\\ncontent: Bananas are awesome!\\nsource: trust me bro\\ndate: today\\n\\ncontent: Bananas are healthy!\\nsource: my doctor\\nreliability: 100%\n-  #150 = Class              #212          // java/util/stream/Stream\n-  #151 = NameAndType        #213:#216     // builder:()Ljava/util/stream/Stream$Builder;\n-  #152 = Utf8               java/lang/Object\n-  #153 = Utf8               BootstrapMethods\n-  #154 = MethodHandle       6:#217        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #155 = MethodType         #211          //  (Ljava/lang/Object;)Ljava/lang/Object;\n-  #156 = MethodHandle       8:#22         // REF_newInvokeSpecial dev/langchain4j/rag/content/injector/DefaultContentInjector.\"<init>\":(Ljava/util/List;)V\n-  #157 = MethodType         #102          //  (Ljava/util/List;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n-  #158 = NameAndType        #210:#218     // apply:()Ljava/util/function/Function;\n-  #159 = Class              #219          // org/junit/jupiter/params/provider/Arguments\n-  #160 = NameAndType        #220:#221     // of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-  #161 = Class              #222          // java/util/stream/Stream$Builder\n-  #162 = NameAndType        #208:#223     // add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n-  #163 = MethodHandle       6:#224        // REF_invokeStatic dev/langchain4j/rag/content/injector/DefaultContentInjectorTest.lambda$should_inject_multiple_contents_with_multiple_metadata_entries$0:(Ljava/util/List;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n-  #164 = NameAndType        #225:#92      // build:()Ljava/util/stream/Stream;\n-  #165 = Utf8               {{userMessage}}\\n{{contents}}\n-  #166 = Class              #226          // dev/langchain4j/model/input/PromptTemplate\n-  #167 = NameAndType        #179:#227     // from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n-  #168 = Utf8               Tell me about bananas.\\nBananas are awesome!\\n\\nBananas are healthy!\n-  #169 = MethodHandle       8:#228        // REF_newInvokeSpecial dev/langchain4j/rag/content/injector/DefaultContentInjector.\"<init>\":(Ldev/langchain4j/model/input/PromptTemplate;)V\n-  #170 = MethodType         #100          //  (Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n-  #171 = MethodHandle       6:#229        // REF_invokeStatic dev/langchain4j/rag/content/injector/DefaultContentInjectorTest.lambda$should_inject_multiple_contents_with_custom_prompt_template$1:(Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n-  #172 = NameAndType        #213:#231     // builder:()Ldev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder;\n-  #173 = Class              #232          // dev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder\n-  #174 = NameAndType        #95:#233      // promptTemplate:(Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder;\n-  #175 = NameAndType        #225:#234     // build:()Ldev/langchain4j/rag/content/injector/DefaultContentInjector;\n-  #176 = NameAndType        #78:#235      // metadataKeysToInclude:(Ljava/util/List;)Ldev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder;\n-  #177 = Utf8               dev/langchain4j/rag/content/injector/DefaultContentInjectorTest\n-  #178 = Utf8               dev/langchain4j/data/message/UserMessage\n-  #179 = Utf8               from\n-  #180 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-  #181 = Utf8               java/util/Collections\n-  #182 = Utf8               emptyList\n-  #183 = Utf8               ()Ljava/util/List;\n-  #184 = Utf8               inject\n-  #185 = Utf8               (Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n-  #186 = Utf8               org/assertj/core/api/Assertions\n-  #187 = Utf8               assertThat\n-  #188 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #189 = Utf8               org/assertj/core/api/ObjectAssert\n-  #190 = Utf8               isEqualTo\n-  #191 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #192 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n-  #193 = Utf8               singletonList\n-  #194 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n-  #195 = Utf8               text\n-  #196 = Utf8               ()Ljava/lang/String;\n-  #197 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #198 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #199 = Utf8               dev/langchain4j/data/document/Metadata\n-  #200 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-  #201 = Utf8               dev/langchain4j/data/segment/TextSegment\n-  #202 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n-  #203 = Utf8               (Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/rag/content/Content;\n-  #204 = Utf8               (Ljava/util/List;)V\n-  #205 = Utf8               java/util/Arrays\n-  #206 = Utf8               asList\n-  #207 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n-  #208 = Utf8               add\n-  #209 = Utf8               java/util/function/Function\n-  #210 = Utf8               apply\n-  #211 = Utf8               (Ljava/lang/Object;)Ljava/lang/Object;\n-  #212 = Utf8               java/util/stream/Stream\n-  #213 = Utf8               builder\n-  #214 = Utf8               Builder\n-  #215 = Utf8               InnerClasses\n-  #216 = Utf8               ()Ljava/util/stream/Stream$Builder;\n-  #217 = Methodref          #236.#237     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #218 = Utf8               ()Ljava/util/function/Function;\n-  #219 = Utf8               org/junit/jupiter/params/provider/Arguments\n-  #220 = Utf8               of\n-  #221 = Utf8               ([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-  #222 = Utf8               java/util/stream/Stream$Builder\n-  #223 = Utf8               (Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n-  #224 = Methodref          #54.#238      // dev/langchain4j/rag/content/injector/DefaultContentInjectorTest.lambda$should_inject_multiple_contents_with_multiple_metadata_entries$0:(Ljava/util/List;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n-  #225 = Utf8               build\n-  #226 = Utf8               dev/langchain4j/model/input/PromptTemplate\n-  #227 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n-  #228 = Methodref          #5.#239       // dev/langchain4j/rag/content/injector/DefaultContentInjector.\"<init>\":(Ldev/langchain4j/model/input/PromptTemplate;)V\n-  #229 = Methodref          #54.#240      // dev/langchain4j/rag/content/injector/DefaultContentInjectorTest.lambda$should_inject_multiple_contents_with_custom_prompt_template$1:(Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n-  #230 = Utf8               DefaultContentInjectorBuilder\n-  #231 = Utf8               ()Ldev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder;\n-  #232 = Utf8               dev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder\n-  #233 = Utf8               (Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder;\n-  #234 = Utf8               ()Ldev/langchain4j/rag/content/injector/DefaultContentInjector;\n-  #235 = Utf8               (Ljava/util/List;)Ldev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder;\n-  #236 = Class              #241          // java/lang/invoke/LambdaMetafactory\n-  #237 = NameAndType        #242:#245     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #238 = NameAndType        #101:#102     // lambda$should_inject_multiple_contents_with_multiple_metadata_entries$0:(Ljava/util/List;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n-  #239 = NameAndType        #55:#246      // \"<init>\":(Ldev/langchain4j/model/input/PromptTemplate;)V\n-  #240 = NameAndType        #99:#100      // lambda$should_inject_multiple_contents_with_custom_prompt_template$1:(Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n-  #241 = Utf8               java/lang/invoke/LambdaMetafactory\n-  #242 = Utf8               metafactory\n-  #243 = Class              #248          // java/lang/invoke/MethodHandles$Lookup\n-  #244 = Utf8               Lookup\n-  #245 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #246 = Utf8               (Ldev/langchain4j/model/input/PromptTemplate;)V\n-  #247 = Class              #249          // java/lang/invoke/MethodHandles\n-  #248 = Utf8               java/lang/invoke/MethodHandles$Lookup\n-  #249 = Utf8               java/lang/invoke/MethodHandles\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = String             #8            // Tell me about bananas.\n+    #8 = Utf8               Tell me about bananas.\n+    #9 = Methodref          #10.#11       // dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+   #10 = Class              #12           // dev/langchain4j/data/message/UserMessage\n+   #11 = NameAndType        #13:#14       // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+   #12 = Utf8               dev/langchain4j/data/message/UserMessage\n+   #13 = Utf8               from\n+   #14 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+   #15 = Methodref          #16.#17       // java/util/Collections.emptyList:()Ljava/util/List;\n+   #16 = Class              #18           // java/util/Collections\n+   #17 = NameAndType        #19:#20       // emptyList:()Ljava/util/List;\n+   #18 = Utf8               java/util/Collections\n+   #19 = Utf8               emptyList\n+   #20 = Utf8               ()Ljava/util/List;\n+   #21 = Class              #22           // dev/langchain4j/rag/content/injector/DefaultContentInjector\n+   #22 = Utf8               dev/langchain4j/rag/content/injector/DefaultContentInjector\n+   #23 = Methodref          #21.#3        // dev/langchain4j/rag/content/injector/DefaultContentInjector.\"<init>\":()V\n+   #24 = InterfaceMethodref #25.#26       // dev/langchain4j/rag/content/injector/ContentInjector.inject:(Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n+   #25 = Class              #27           // dev/langchain4j/rag/content/injector/ContentInjector\n+   #26 = NameAndType        #28:#29       // inject:(Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n+   #27 = Utf8               dev/langchain4j/rag/content/injector/ContentInjector\n+   #28 = Utf8               inject\n+   #29 = Utf8               (Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n+   #30 = Methodref          #31.#32       // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #31 = Class              #33           // org/assertj/core/api/Assertions\n+   #32 = NameAndType        #34:#35       // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #33 = Utf8               org/assertj/core/api/Assertions\n+   #34 = Utf8               assertThat\n+   #35 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #36 = Methodref          #37.#38       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #37 = Class              #39           // org/assertj/core/api/ObjectAssert\n+   #38 = NameAndType        #40:#41       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #39 = Utf8               org/assertj/core/api/ObjectAssert\n+   #40 = Utf8               isEqualTo\n+   #41 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #42 = String             #43           // Bananas are awesome!\n+   #43 = Utf8               Bananas are awesome!\n+   #44 = Methodref          #45.#46       // dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+   #45 = Class              #47           // dev/langchain4j/rag/content/Content\n+   #46 = NameAndType        #13:#48       // from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+   #47 = Utf8               dev/langchain4j/rag/content/Content\n+   #48 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+   #49 = Methodref          #16.#50       // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+   #50 = NameAndType        #51:#52       // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+   #51 = Utf8               singletonList\n+   #52 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n+   #53 = Methodref          #10.#54       // dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n+   #54 = NameAndType        #55:#56       // text:()Ljava/lang/String;\n+   #55 = Utf8               text\n+   #56 = Utf8               ()Ljava/lang/String;\n+   #57 = Methodref          #31.#58       // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #58 = NameAndType        #34:#59       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #59 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #60 = String             #61           // Tell me about bananas.\\n\\nAnswer using the following information:\\nBananas are awesome!\n+   #61 = Utf8               Tell me about bananas.\\n\\nAnswer using the following information:\\nBananas are awesome!\n+   #62 = Methodref          #63.#64       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #63 = Class              #65           // org/assertj/core/api/AbstractStringAssert\n+   #64 = NameAndType        #40:#59       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #65 = Utf8               org/assertj/core/api/AbstractStringAssert\n+   #66 = String             #67           // source\n+   #67 = Utf8               source\n+   #68 = String             #69           // trust me bro\n+   #69 = Utf8               trust me bro\n+   #70 = Methodref          #71.#72       // dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+   #71 = Class              #73           // dev/langchain4j/data/document/Metadata\n+   #72 = NameAndType        #13:#74       // from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+   #73 = Utf8               dev/langchain4j/data/document/Metadata\n+   #74 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+   #75 = Methodref          #76.#77       // dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n+   #76 = Class              #78           // dev/langchain4j/data/segment/TextSegment\n+   #77 = NameAndType        #13:#79       // from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n+   #78 = Utf8               dev/langchain4j/data/segment/TextSegment\n+   #79 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n+   #80 = Methodref          #45.#81       // dev/langchain4j/rag/content/Content.from:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/rag/content/Content;\n+   #81 = NameAndType        #13:#82       // from:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/rag/content/Content;\n+   #82 = Utf8               (Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/rag/content/Content;\n+   #83 = Methodref          #21.#84       // dev/langchain4j/rag/content/injector/DefaultContentInjector.\"<init>\":(Ljava/util/List;)V\n+   #84 = NameAndType        #5:#85        // \"<init>\":(Ljava/util/List;)V\n+   #85 = Utf8               (Ljava/util/List;)V\n+   #86 = String             #87           // Tell me about bananas.\\n\\nAnswer using the following information:\\ncontent: Bananas are awesome!\\nsource: trust me bro\n+   #87 = Utf8               Tell me about bananas.\\n\\nAnswer using the following information:\\ncontent: Bananas are awesome!\\nsource: trust me bro\n+   #88 = String             #89           // Bananas are healthy!\n+   #89 = Utf8               Bananas are healthy!\n+   #90 = Methodref          #91.#92       // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+   #91 = Class              #93           // java/util/Arrays\n+   #92 = NameAndType        #94:#95       // asList:([Ljava/lang/Object;)Ljava/util/List;\n+   #93 = Utf8               java/util/Arrays\n+   #94 = Utf8               asList\n+   #95 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n+   #96 = String             #97           // Tell me about bananas.\\n\\nAnswer using the following information:\\nBananas are awesome!\\n\\nBananas are healthy!\n+   #97 = Utf8               Tell me about bananas.\\n\\nAnswer using the following information:\\nBananas are awesome!\\n\\nBananas are healthy!\n+   #98 = String             #99           // date\n+   #99 = Utf8               date\n+  #100 = String             #101          // today\n+  #101 = Utf8               today\n+  #102 = Methodref          #71.#103      // dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+  #103 = NameAndType        #104:#74      // add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+  #104 = Utf8               add\n+  #105 = String             #106          // my doctor\n+  #106 = Utf8               my doctor\n+  #107 = String             #108          // reliability\n+  #108 = Utf8               reliability\n+  #109 = String             #110          // 100%\n+  #110 = Utf8               100%\n+  #111 = Class              #112          // java/lang/String\n+  #112 = Utf8               java/lang/String\n+  #113 = InterfaceMethodref #114.#115     // java/util/function/Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;\n+  #114 = Class              #116          // java/util/function/Function\n+  #115 = NameAndType        #117:#118     // apply:(Ljava/lang/Object;)Ljava/lang/Object;\n+  #116 = Utf8               java/util/function/Function\n+  #117 = Utf8               apply\n+  #118 = Utf8               (Ljava/lang/Object;)Ljava/lang/Object;\n+  #119 = String             #120          // Tell me about bananas.\\n\\nAnswer using the following information:\\ncontent: Bananas are awesome!\\nsource: trust me bro\\ndate: today\\n\\ncontent: Bananas are healthy!\\nsource: my doctor\\nreliability: 100%\n+  #120 = Utf8               Tell me about bananas.\\n\\nAnswer using the following information:\\ncontent: Bananas are awesome!\\nsource: trust me bro\\ndate: today\\n\\ncontent: Bananas are healthy!\\nsource: my doctor\\nreliability: 100%\n+  #121 = InterfaceMethodref #122.#123     // java/util/stream/Stream.builder:()Ljava/util/stream/Stream$Builder;\n+  #122 = Class              #124          // java/util/stream/Stream\n+  #123 = NameAndType        #125:#126     // builder:()Ljava/util/stream/Stream$Builder;\n+  #124 = Utf8               java/util/stream/Stream\n+  #125 = Utf8               builder\n+  #126 = Utf8               ()Ljava/util/stream/Stream$Builder;\n+  #127 = InvokeDynamic      #0:#128       // #0:apply:()Ljava/util/function/Function;\n+  #128 = NameAndType        #117:#129     // apply:()Ljava/util/function/Function;\n+  #129 = Utf8               ()Ljava/util/function/Function;\n+  #130 = InterfaceMethodref #131.#132     // org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+  #131 = Class              #133          // org/junit/jupiter/params/provider/Arguments\n+  #132 = NameAndType        #134:#135     // of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+  #133 = Utf8               org/junit/jupiter/params/provider/Arguments\n+  #134 = Utf8               of\n+  #135 = Utf8               ([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+  #136 = InterfaceMethodref #137.#138     // java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+  #137 = Class              #139          // java/util/stream/Stream$Builder\n+  #138 = NameAndType        #104:#140     // add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+  #139 = Utf8               java/util/stream/Stream$Builder\n+  #140 = Utf8               (Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+  #141 = InvokeDynamic      #1:#128       // #1:apply:()Ljava/util/function/Function;\n+  #142 = InterfaceMethodref #137.#143     // java/util/stream/Stream$Builder.build:()Ljava/util/stream/Stream;\n+  #143 = NameAndType        #144:#145     // build:()Ljava/util/stream/Stream;\n+  #144 = Utf8               build\n+  #145 = Utf8               ()Ljava/util/stream/Stream;\n+  #146 = String             #147          // {{userMessage}}\\n{{contents}}\n+  #147 = Utf8               {{userMessage}}\\n{{contents}}\n+  #148 = Methodref          #149.#150     // dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+  #149 = Class              #151          // dev/langchain4j/model/input/PromptTemplate\n+  #150 = NameAndType        #13:#152      // from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+  #151 = Utf8               dev/langchain4j/model/input/PromptTemplate\n+  #152 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+  #153 = String             #154          // Tell me about bananas.\\nBananas are awesome!\\n\\nBananas are healthy!\n+  #154 = Utf8               Tell me about bananas.\\nBananas are awesome!\\n\\nBananas are healthy!\n+  #155 = InvokeDynamic      #2:#128       // #2:apply:()Ljava/util/function/Function;\n+  #156 = InvokeDynamic      #3:#128       // #3:apply:()Ljava/util/function/Function;\n+  #157 = Methodref          #21.#158      // dev/langchain4j/rag/content/injector/DefaultContentInjector.builder:()Ldev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder;\n+  #158 = NameAndType        #125:#159     // builder:()Ldev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder;\n+  #159 = Utf8               ()Ldev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder;\n+  #160 = Methodref          #161.#162     // dev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder.promptTemplate:(Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder;\n+  #161 = Class              #163          // dev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder\n+  #162 = NameAndType        #164:#165     // promptTemplate:(Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder;\n+  #163 = Utf8               dev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder\n+  #164 = Utf8               promptTemplate\n+  #165 = Utf8               (Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder;\n+  #166 = Methodref          #161.#167     // dev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder.build:()Ldev/langchain4j/rag/content/injector/DefaultContentInjector;\n+  #167 = NameAndType        #144:#168     // build:()Ldev/langchain4j/rag/content/injector/DefaultContentInjector;\n+  #168 = Utf8               ()Ldev/langchain4j/rag/content/injector/DefaultContentInjector;\n+  #169 = Methodref          #161.#170     // dev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder.metadataKeysToInclude:(Ljava/util/List;)Ldev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder;\n+  #170 = NameAndType        #171:#172     // metadataKeysToInclude:(Ljava/util/List;)Ldev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder;\n+  #171 = Utf8               metadataKeysToInclude\n+  #172 = Utf8               (Ljava/util/List;)Ldev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder;\n+  #173 = Class              #174          // dev/langchain4j/rag/content/injector/DefaultContentInjectorTest\n+  #174 = Utf8               dev/langchain4j/rag/content/injector/DefaultContentInjectorTest\n+  #175 = Utf8               Code\n+  #176 = Utf8               LineNumberTable\n+  #177 = Utf8               LocalVariableTable\n+  #178 = Utf8               this\n+  #179 = Utf8               Ldev/langchain4j/rag/content/injector/DefaultContentInjectorTest;\n+  #180 = Utf8               should_not_inject_when_no_content\n+  #181 = Utf8               userMessage\n+  #182 = Utf8               Ldev/langchain4j/data/message/UserMessage;\n+  #183 = Utf8               contents\n+  #184 = Utf8               Ljava/util/List;\n+  #185 = Utf8               injector\n+  #186 = Utf8               Ldev/langchain4j/rag/content/injector/ContentInjector;\n+  #187 = Utf8               injected\n+  #188 = Utf8               LocalVariableTypeTable\n+  #189 = Utf8               Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n+  #190 = Utf8               RuntimeVisibleAnnotations\n+  #191 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #192 = Utf8               should_inject_single_content\n+  #193 = Utf8               should_inject_single_content_with_metadata\n+  #194 = Utf8               segment\n+  #195 = Utf8               Ldev/langchain4j/data/segment/TextSegment;\n+  #196 = Utf8               Ljava/util/List<Ljava/lang/String;>;\n+  #197 = Utf8               should_inject_multiple_contents\n+  #198 = Utf8               should_inject_multiple_contents_with_multiple_metadata_entries\n+  #199 = Utf8               (Ljava/util/function/Function;)V\n+  #200 = Utf8               contentInjectorProvider\n+  #201 = Utf8               Ljava/util/function/Function;\n+  #202 = Utf8               segment1\n+  #203 = Utf8               segment2\n+  #204 = Utf8               Ljava/util/function/Function<Ljava/util/List<Ljava/lang/String;>;Ldev/langchain4j/rag/content/injector/ContentInjector;>;\n+  #205 = Utf8               Signature\n+  #206 = Utf8               (Ljava/util/function/Function<Ljava/util/List<Ljava/lang/String;>;Ldev/langchain4j/rag/content/injector/ContentInjector;>;)V\n+  #207 = Utf8               Lorg/junit/jupiter/params/ParameterizedTest;\n+  #208 = Utf8               Lorg/junit/jupiter/params/provider/MethodSource;\n+  #209 = Utf8               ()Ljava/util/stream/Stream<Lorg/junit/jupiter/params/provider/Arguments;>;\n+  #210 = Utf8               should_inject_multiple_contents_with_custom_prompt_template\n+  #211 = Utf8               Ldev/langchain4j/model/input/PromptTemplate;\n+  #212 = Utf8               Ljava/util/function/Function<Ldev/langchain4j/model/input/PromptTemplate;Ldev/langchain4j/rag/content/injector/ContentInjector;>;\n+  #213 = Utf8               (Ljava/util/function/Function<Ldev/langchain4j/model/input/PromptTemplate;Ldev/langchain4j/rag/content/injector/ContentInjector;>;)V\n+  #214 = Utf8               lambda$should_inject_multiple_contents_with_custom_prompt_template$1\n+  #215 = Utf8               (Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n+  #216 = Utf8               lambda$should_inject_multiple_contents_with_multiple_metadata_entries$0\n+  #217 = Utf8               (Ljava/util/List;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n+  #218 = Utf8               SourceFile\n+  #219 = Utf8               DefaultContentInjectorTest.java\n+  #220 = Utf8               BootstrapMethods\n+  #221 = MethodHandle       6:#222        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #222 = Methodref          #223.#224     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #223 = Class              #225          // java/lang/invoke/LambdaMetafactory\n+  #224 = NameAndType        #226:#227     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #225 = Utf8               java/lang/invoke/LambdaMetafactory\n+  #226 = Utf8               metafactory\n+  #227 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #228 = MethodType         #118          //  (Ljava/lang/Object;)Ljava/lang/Object;\n+  #229 = MethodHandle       8:#83         // REF_newInvokeSpecial dev/langchain4j/rag/content/injector/DefaultContentInjector.\"<init>\":(Ljava/util/List;)V\n+  #230 = MethodType         #217          //  (Ljava/util/List;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n+  #231 = MethodHandle       6:#232        // REF_invokeStatic dev/langchain4j/rag/content/injector/DefaultContentInjectorTest.lambda$should_inject_multiple_contents_with_multiple_metadata_entries$0:(Ljava/util/List;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n+  #232 = Methodref          #173.#233     // dev/langchain4j/rag/content/injector/DefaultContentInjectorTest.lambda$should_inject_multiple_contents_with_multiple_metadata_entries$0:(Ljava/util/List;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n+  #233 = NameAndType        #216:#217     // lambda$should_inject_multiple_contents_with_multiple_metadata_entries$0:(Ljava/util/List;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n+  #234 = MethodHandle       8:#235        // REF_newInvokeSpecial dev/langchain4j/rag/content/injector/DefaultContentInjector.\"<init>\":(Ldev/langchain4j/model/input/PromptTemplate;)V\n+  #235 = Methodref          #21.#236      // dev/langchain4j/rag/content/injector/DefaultContentInjector.\"<init>\":(Ldev/langchain4j/model/input/PromptTemplate;)V\n+  #236 = NameAndType        #5:#237       // \"<init>\":(Ldev/langchain4j/model/input/PromptTemplate;)V\n+  #237 = Utf8               (Ldev/langchain4j/model/input/PromptTemplate;)V\n+  #238 = MethodType         #215          //  (Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n+  #239 = MethodHandle       6:#240        // REF_invokeStatic dev/langchain4j/rag/content/injector/DefaultContentInjectorTest.lambda$should_inject_multiple_contents_with_custom_prompt_template$1:(Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n+  #240 = Methodref          #173.#241     // dev/langchain4j/rag/content/injector/DefaultContentInjectorTest.lambda$should_inject_multiple_contents_with_custom_prompt_template$1:(Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n+  #241 = NameAndType        #214:#215     // lambda$should_inject_multiple_contents_with_custom_prompt_template$1:(Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n+  #242 = Utf8               InnerClasses\n+  #243 = Utf8               Builder\n+  #244 = Utf8               DefaultContentInjectorBuilder\n+  #245 = Class              #246          // java/lang/invoke/MethodHandles$Lookup\n+  #246 = Utf8               java/lang/invoke/MethodHandles$Lookup\n+  #247 = Class              #248          // java/lang/invoke/MethodHandles\n+  #248 = Utf8               java/lang/invoke/MethodHandles\n+  #249 = Utf8               Lookup\n {\n   dev.langchain4j.rag.content.injector.DefaultContentInjectorTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -273,32 +273,32 @@\n             0       5     0  this   Ldev/langchain4j/rag/content/injector/DefaultContentInjectorTest;\n \n   void should_not_inject_when_no_content();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=3, locals=5, args_size=1\n-         0: ldc           #2                  // String Tell me about bananas.\n-         2: invokestatic  #3                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+         0: ldc           #7                  // String Tell me about bananas.\n+         2: invokestatic  #9                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n          5: astore_1\n-         6: invokestatic  #4                  // Method java/util/Collections.emptyList:()Ljava/util/List;\n+         6: invokestatic  #15                 // Method java/util/Collections.emptyList:()Ljava/util/List;\n          9: astore_2\n-        10: new           #5                  // class dev/langchain4j/rag/content/injector/DefaultContentInjector\n+        10: new           #21                 // class dev/langchain4j/rag/content/injector/DefaultContentInjector\n         13: dup\n-        14: invokespecial #6                  // Method dev/langchain4j/rag/content/injector/DefaultContentInjector.\"<init>\":()V\n+        14: invokespecial #23                 // Method dev/langchain4j/rag/content/injector/DefaultContentInjector.\"<init>\":()V\n         17: astore_3\n         18: aload_3\n         19: aload_2\n         20: aload_1\n-        21: invokeinterface #7,  3            // InterfaceMethod dev/langchain4j/rag/content/injector/ContentInjector.inject:(Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n+        21: invokeinterface #24,  3           // InterfaceMethod dev/langchain4j/rag/content/injector/ContentInjector.inject:(Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n         26: astore        4\n         28: aload         4\n-        30: invokestatic  #8                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        30: invokestatic  #30                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         33: aload_1\n-        34: invokevirtual #9                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        34: invokevirtual #36                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         37: pop\n         38: return\n       LineNumberTable:\n         line 28: 0\n         line 30: 6\n         line 32: 10\n         line 35: 18\n@@ -311,43 +311,43 @@\n            10      29     2 contents   Ljava/util/List;\n            18      21     3 injector   Ldev/langchain4j/rag/content/injector/ContentInjector;\n            28      11     4 injected   Ldev/langchain4j/data/message/UserMessage;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            10      29     2 contents   Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n     RuntimeVisibleAnnotations:\n-      0: #73()\n+      0: #191()\n         org.junit.jupiter.api.Test\n \n   void should_inject_single_content();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=3, locals=5, args_size=1\n-         0: ldc           #2                  // String Tell me about bananas.\n-         2: invokestatic  #3                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+         0: ldc           #7                  // String Tell me about bananas.\n+         2: invokestatic  #9                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n          5: astore_1\n-         6: ldc           #10                 // String Bananas are awesome!\n-         8: invokestatic  #11                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n-        11: invokestatic  #12                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+         6: ldc           #42                 // String Bananas are awesome!\n+         8: invokestatic  #44                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        11: invokestatic  #49                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n         14: astore_2\n-        15: new           #5                  // class dev/langchain4j/rag/content/injector/DefaultContentInjector\n+        15: new           #21                 // class dev/langchain4j/rag/content/injector/DefaultContentInjector\n         18: dup\n-        19: invokespecial #6                  // Method dev/langchain4j/rag/content/injector/DefaultContentInjector.\"<init>\":()V\n+        19: invokespecial #23                 // Method dev/langchain4j/rag/content/injector/DefaultContentInjector.\"<init>\":()V\n         22: astore_3\n         23: aload_3\n         24: aload_2\n         25: aload_1\n-        26: invokeinterface #7,  3            // InterfaceMethod dev/langchain4j/rag/content/injector/ContentInjector.inject:(Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n+        26: invokeinterface #24,  3           // InterfaceMethod dev/langchain4j/rag/content/injector/ContentInjector.inject:(Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n         31: astore        4\n         33: aload         4\n-        35: invokevirtual #13                 // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n-        38: invokestatic  #14                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        41: ldc           #15                 // String Tell me about bananas.\\n\\nAnswer using the following information:\\nBananas are awesome!\n-        43: invokevirtual #16                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        35: invokevirtual #53                 // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n+        38: invokestatic  #57                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        41: ldc           #60                 // String Tell me about bananas.\\n\\nAnswer using the following information:\\nBananas are awesome!\n+        43: invokevirtual #62                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         46: pop\n         47: return\n       LineNumberTable:\n         line 45: 0\n         line 47: 6\n         line 49: 15\n         line 52: 23\n@@ -360,53 +360,53 @@\n            15      33     2 contents   Ljava/util/List;\n            23      25     3 injector   Ldev/langchain4j/rag/content/injector/ContentInjector;\n            33      15     4 injected   Ldev/langchain4j/data/message/UserMessage;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            15      33     2 contents   Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n     RuntimeVisibleAnnotations:\n-      0: #73()\n+      0: #191()\n         org.junit.jupiter.api.Test\n \n   void should_inject_single_content_with_metadata();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=3, locals=7, args_size=1\n-         0: ldc           #2                  // String Tell me about bananas.\n-         2: invokestatic  #3                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+         0: ldc           #7                  // String Tell me about bananas.\n+         2: invokestatic  #9                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n          5: astore_1\n-         6: ldc           #10                 // String Bananas are awesome!\n-         8: ldc           #17                 // String source\n-        10: ldc           #18                 // String trust me bro\n-        12: invokestatic  #19                 // Method dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-        15: invokestatic  #20                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n+         6: ldc           #42                 // String Bananas are awesome!\n+         8: ldc           #66                 // String source\n+        10: ldc           #68                 // String trust me bro\n+        12: invokestatic  #70                 // Method dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        15: invokestatic  #75                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n         18: astore_2\n         19: aload_2\n-        20: invokestatic  #21                 // Method dev/langchain4j/rag/content/Content.from:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/rag/content/Content;\n-        23: invokestatic  #12                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+        20: invokestatic  #80                 // Method dev/langchain4j/rag/content/Content.from:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/rag/content/Content;\n+        23: invokestatic  #49                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n         26: astore_3\n-        27: ldc           #17                 // String source\n-        29: invokestatic  #12                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+        27: ldc           #66                 // String source\n+        29: invokestatic  #49                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n         32: astore        4\n-        34: new           #5                  // class dev/langchain4j/rag/content/injector/DefaultContentInjector\n+        34: new           #21                 // class dev/langchain4j/rag/content/injector/DefaultContentInjector\n         37: dup\n         38: aload         4\n-        40: invokespecial #22                 // Method dev/langchain4j/rag/content/injector/DefaultContentInjector.\"<init>\":(Ljava/util/List;)V\n+        40: invokespecial #83                 // Method dev/langchain4j/rag/content/injector/DefaultContentInjector.\"<init>\":(Ljava/util/List;)V\n         43: astore        5\n         45: aload         5\n         47: aload_3\n         48: aload_1\n-        49: invokeinterface #7,  3            // InterfaceMethod dev/langchain4j/rag/content/injector/ContentInjector.inject:(Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n+        49: invokeinterface #24,  3           // InterfaceMethod dev/langchain4j/rag/content/injector/ContentInjector.inject:(Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n         54: astore        6\n         56: aload         6\n-        58: invokevirtual #13                 // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n-        61: invokestatic  #14                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        64: ldc           #23                 // String Tell me about bananas.\\n\\nAnswer using the following information:\\ncontent: Bananas are awesome!\\nsource: trust me bro\n-        66: invokevirtual #16                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        58: invokevirtual #53                 // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n+        61: invokestatic  #57                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        64: ldc           #86                 // String Tell me about bananas.\\n\\nAnswer using the following information:\\ncontent: Bananas are awesome!\\nsource: trust me bro\n+        66: invokevirtual #62                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         69: pop\n         70: return\n       LineNumberTable:\n         line 67: 0\n         line 69: 6\n         line 71: 12\n         line 69: 15\n@@ -426,53 +426,53 @@\n            45      26     5 injector   Ldev/langchain4j/rag/content/injector/ContentInjector;\n            56      15     6 injected   Ldev/langchain4j/data/message/UserMessage;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            27      44     3 contents   Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n            34      37     4 metadataKeysToInclude   Ljava/util/List<Ljava/lang/String;>;\n     RuntimeVisibleAnnotations:\n-      0: #73()\n+      0: #191()\n         org.junit.jupiter.api.Test\n \n   void should_inject_multiple_contents();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=4, locals=5, args_size=1\n-         0: ldc           #2                  // String Tell me about bananas.\n-         2: invokestatic  #3                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+         0: ldc           #7                  // String Tell me about bananas.\n+         2: invokestatic  #9                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n          5: astore_1\n          6: iconst_2\n-         7: anewarray     #24                 // class dev/langchain4j/rag/content/Content\n+         7: anewarray     #45                 // class dev/langchain4j/rag/content/Content\n         10: dup\n         11: iconst_0\n-        12: ldc           #10                 // String Bananas are awesome!\n-        14: invokestatic  #11                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        12: ldc           #42                 // String Bananas are awesome!\n+        14: invokestatic  #44                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         17: aastore\n         18: dup\n         19: iconst_1\n-        20: ldc           #25                 // String Bananas are healthy!\n-        22: invokestatic  #11                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        20: ldc           #88                 // String Bananas are healthy!\n+        22: invokestatic  #44                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         25: aastore\n-        26: invokestatic  #26                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        26: invokestatic  #90                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n         29: astore_2\n-        30: new           #5                  // class dev/langchain4j/rag/content/injector/DefaultContentInjector\n+        30: new           #21                 // class dev/langchain4j/rag/content/injector/DefaultContentInjector\n         33: dup\n-        34: invokespecial #6                  // Method dev/langchain4j/rag/content/injector/DefaultContentInjector.\"<init>\":()V\n+        34: invokespecial #23                 // Method dev/langchain4j/rag/content/injector/DefaultContentInjector.\"<init>\":()V\n         37: astore_3\n         38: aload_3\n         39: aload_2\n         40: aload_1\n-        41: invokeinterface #7,  3            // InterfaceMethod dev/langchain4j/rag/content/injector/ContentInjector.inject:(Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n+        41: invokeinterface #24,  3           // InterfaceMethod dev/langchain4j/rag/content/injector/ContentInjector.inject:(Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n         46: astore        4\n         48: aload         4\n-        50: invokevirtual #13                 // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n-        53: invokestatic  #14                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        56: ldc           #27                 // String Tell me about bananas.\\n\\nAnswer using the following information:\\nBananas are awesome!\\n\\nBananas are healthy!\n-        58: invokevirtual #16                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        50: invokevirtual #53                 // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n+        53: invokestatic  #57                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        56: ldc           #96                 // String Tell me about bananas.\\n\\nAnswer using the following information:\\nBananas are awesome!\\n\\nBananas are healthy!\n+        58: invokevirtual #62                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         61: pop\n         62: return\n       LineNumberTable:\n         line 96: 0\n         line 98: 6\n         line 99: 14\n         line 100: 22\n@@ -488,88 +488,88 @@\n            30      33     2 contents   Ljava/util/List;\n            38      25     3 injector   Ldev/langchain4j/rag/content/injector/ContentInjector;\n            48      15     4 injected   Ldev/langchain4j/data/message/UserMessage;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            30      33     2 contents   Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n     RuntimeVisibleAnnotations:\n-      0: #73()\n+      0: #191()\n         org.junit.jupiter.api.Test\n \n   void should_inject_multiple_contents_with_multiple_metadata_entries(java.util.function.Function<java.util.List<java.lang.String>, dev.langchain4j.rag.content.injector.ContentInjector>);\n     descriptor: (Ljava/util/function/Function;)V\n     flags: (0x0000)\n     Code:\n       stack=4, locals=9, args_size=2\n-         0: ldc           #2                  // String Tell me about bananas.\n-         2: invokestatic  #3                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+         0: ldc           #7                  // String Tell me about bananas.\n+         2: invokestatic  #9                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n          5: astore_2\n-         6: ldc           #10                 // String Bananas are awesome!\n-         8: ldc           #17                 // String source\n-        10: ldc           #18                 // String trust me bro\n-        12: invokestatic  #19                 // Method dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-        15: ldc           #28                 // String date\n-        17: ldc           #29                 // String today\n-        19: invokevirtual #30                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-        22: invokestatic  #20                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n+         6: ldc           #42                 // String Bananas are awesome!\n+         8: ldc           #66                 // String source\n+        10: ldc           #68                 // String trust me bro\n+        12: invokestatic  #70                 // Method dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        15: ldc           #98                 // String date\n+        17: ldc           #100                // String today\n+        19: invokevirtual #102                // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        22: invokestatic  #75                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n         25: astore_3\n-        26: ldc           #25                 // String Bananas are healthy!\n-        28: ldc           #17                 // String source\n-        30: ldc           #31                 // String my doctor\n-        32: invokestatic  #19                 // Method dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-        35: ldc           #32                 // String reliability\n-        37: ldc           #33                 // String 100%\n-        39: invokevirtual #30                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-        42: invokestatic  #20                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n+        26: ldc           #88                 // String Bananas are healthy!\n+        28: ldc           #66                 // String source\n+        30: ldc           #105                // String my doctor\n+        32: invokestatic  #70                 // Method dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        35: ldc           #107                // String reliability\n+        37: ldc           #109                // String 100%\n+        39: invokevirtual #102                // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        42: invokestatic  #75                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n         45: astore        4\n         47: iconst_2\n-        48: anewarray     #24                 // class dev/langchain4j/rag/content/Content\n+        48: anewarray     #45                 // class dev/langchain4j/rag/content/Content\n         51: dup\n         52: iconst_0\n         53: aload_3\n-        54: invokestatic  #21                 // Method dev/langchain4j/rag/content/Content.from:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/rag/content/Content;\n+        54: invokestatic  #80                 // Method dev/langchain4j/rag/content/Content.from:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/rag/content/Content;\n         57: aastore\n         58: dup\n         59: iconst_1\n         60: aload         4\n-        62: invokestatic  #21                 // Method dev/langchain4j/rag/content/Content.from:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/rag/content/Content;\n+        62: invokestatic  #80                 // Method dev/langchain4j/rag/content/Content.from:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/rag/content/Content;\n         65: aastore\n-        66: invokestatic  #26                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        66: invokestatic  #90                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n         69: astore        5\n         71: iconst_3\n-        72: anewarray     #34                 // class java/lang/String\n+        72: anewarray     #111                // class java/lang/String\n         75: dup\n         76: iconst_0\n-        77: ldc           #17                 // String source\n+        77: ldc           #66                 // String source\n         79: aastore\n         80: dup\n         81: iconst_1\n-        82: ldc           #32                 // String reliability\n+        82: ldc           #107                // String reliability\n         84: aastore\n         85: dup\n         86: iconst_2\n-        87: ldc           #28                 // String date\n+        87: ldc           #98                 // String date\n         89: aastore\n-        90: invokestatic  #26                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        90: invokestatic  #90                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n         93: astore        6\n         95: aload_1\n         96: aload         6\n-        98: invokeinterface #35,  2           // InterfaceMethod java/util/function/Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;\n-       103: checkcast     #36                 // class dev/langchain4j/rag/content/injector/ContentInjector\n+        98: invokeinterface #113,  2          // InterfaceMethod java/util/function/Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;\n+       103: checkcast     #25                 // class dev/langchain4j/rag/content/injector/ContentInjector\n        106: astore        7\n        108: aload         7\n        110: aload         5\n        112: aload_2\n-       113: invokeinterface #7,  3            // InterfaceMethod dev/langchain4j/rag/content/injector/ContentInjector.inject:(Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n+       113: invokeinterface #24,  3           // InterfaceMethod dev/langchain4j/rag/content/injector/ContentInjector.inject:(Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n        118: astore        8\n        120: aload         8\n-       122: invokevirtual #13                 // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n-       125: invokestatic  #14                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       128: ldc           #37                 // String Tell me about bananas.\\n\\nAnswer using the following information:\\ncontent: Bananas are awesome!\\nsource: trust me bro\\ndate: today\\n\\ncontent: Bananas are healthy!\\nsource: my doctor\\nreliability: 100%\n-       130: invokevirtual #16                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       122: invokevirtual #53                 // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n+       125: invokestatic  #57                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       128: ldc           #119                // String Tell me about bananas.\\n\\nAnswer using the following information:\\ncontent: Bananas are awesome!\\nsource: trust me bro\\ndate: today\\n\\ncontent: Bananas are healthy!\\nsource: my doctor\\nreliability: 100%\n+       130: invokevirtual #62                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n        133: pop\n        134: return\n       LineNumberTable:\n         line 126: 0\n         line 128: 6\n         line 130: 12\n         line 131: 19\n@@ -596,93 +596,93 @@\n           108      27     7 injector   Ldev/langchain4j/rag/content/injector/ContentInjector;\n           120      15     8 injected   Ldev/langchain4j/data/message/UserMessage;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0     135     1 contentInjectorProvider   Ljava/util/function/Function<Ljava/util/List<Ljava/lang/String;>;Ldev/langchain4j/rag/content/injector/ContentInjector;>;\n            71      64     5 contents   Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n            95      40     6 metadataKeysToInclude   Ljava/util/List<Ljava/lang/String;>;\n-    Signature: #89                          // (Ljava/util/function/Function<Ljava/util/List<Ljava/lang/String;>;Ldev/langchain4j/rag/content/injector/ContentInjector;>;)V\n+    Signature: #206                         // (Ljava/util/function/Function<Ljava/util/List<Ljava/lang/String;>;Ldev/langchain4j/rag/content/injector/ContentInjector;>;)V\n     RuntimeVisibleAnnotations:\n-      0: #90()\n+      0: #207()\n         org.junit.jupiter.params.ParameterizedTest\n-      1: #91()\n+      1: #208()\n         org.junit.jupiter.params.provider.MethodSource\n \n   static java.util.stream.Stream<org.junit.jupiter.params.provider.Arguments> should_inject_multiple_contents_with_multiple_metadata_entries();\n     descriptor: ()Ljava/util/stream/Stream;\n     flags: (0x0008) ACC_STATIC\n     Code:\n       stack=5, locals=0, args_size=0\n-         0: invokestatic  #38                 // InterfaceMethod java/util/stream/Stream.builder:()Ljava/util/stream/Stream$Builder;\n+         0: invokestatic  #121                // InterfaceMethod java/util/stream/Stream.builder:()Ljava/util/stream/Stream$Builder;\n          3: iconst_1\n-         4: anewarray     #39                 // class java/lang/Object\n+         4: anewarray     #2                  // class java/lang/Object\n          7: dup\n          8: iconst_0\n-         9: invokedynamic #40,  0             // InvokeDynamic #0:apply:()Ljava/util/function/Function;\n+         9: invokedynamic #127,  0            // InvokeDynamic #0:apply:()Ljava/util/function/Function;\n         14: aastore\n-        15: invokestatic  #41                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-        18: invokeinterface #42,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+        15: invokestatic  #130                // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+        18: invokeinterface #136,  2          // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n         23: iconst_1\n-        24: anewarray     #39                 // class java/lang/Object\n+        24: anewarray     #2                  // class java/lang/Object\n         27: dup\n         28: iconst_0\n-        29: invokedynamic #43,  0             // InvokeDynamic #1:apply:()Ljava/util/function/Function;\n+        29: invokedynamic #141,  0            // InvokeDynamic #1:apply:()Ljava/util/function/Function;\n         34: aastore\n-        35: invokestatic  #41                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-        38: invokeinterface #42,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n-        43: invokeinterface #44,  1           // InterfaceMethod java/util/stream/Stream$Builder.build:()Ljava/util/stream/Stream;\n+        35: invokestatic  #130                // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+        38: invokeinterface #136,  2          // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+        43: invokeinterface #142,  1          // InterfaceMethod java/util/stream/Stream$Builder.build:()Ljava/util/stream/Stream;\n         48: areturn\n       LineNumberTable:\n         line 163: 0\n         line 164: 15\n         line 167: 35\n         line 173: 43\n         line 163: 48\n-    Signature: #93                          // ()Ljava/util/stream/Stream<Lorg/junit/jupiter/params/provider/Arguments;>;\n+    Signature: #209                         // ()Ljava/util/stream/Stream<Lorg/junit/jupiter/params/provider/Arguments;>;\n \n   void should_inject_multiple_contents_with_custom_prompt_template(java.util.function.Function<dev.langchain4j.model.input.PromptTemplate, dev.langchain4j.rag.content.injector.ContentInjector>);\n     descriptor: (Ljava/util/function/Function;)V\n     flags: (0x0000)\n     Code:\n       stack=4, locals=7, args_size=2\n-         0: ldc           #45                 // String {{userMessage}}\\n{{contents}}\n-         2: invokestatic  #46                 // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+         0: ldc           #146                // String {{userMessage}}\\n{{contents}}\n+         2: invokestatic  #148                // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n          5: astore_2\n-         6: ldc           #2                  // String Tell me about bananas.\n-         8: invokestatic  #3                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+         6: ldc           #7                  // String Tell me about bananas.\n+         8: invokestatic  #9                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n         11: astore_3\n         12: iconst_2\n-        13: anewarray     #24                 // class dev/langchain4j/rag/content/Content\n+        13: anewarray     #45                 // class dev/langchain4j/rag/content/Content\n         16: dup\n         17: iconst_0\n-        18: ldc           #10                 // String Bananas are awesome!\n-        20: invokestatic  #11                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        18: ldc           #42                 // String Bananas are awesome!\n+        20: invokestatic  #44                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         23: aastore\n         24: dup\n         25: iconst_1\n-        26: ldc           #25                 // String Bananas are healthy!\n-        28: invokestatic  #11                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        26: ldc           #88                 // String Bananas are healthy!\n+        28: invokestatic  #44                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         31: aastore\n-        32: invokestatic  #26                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        32: invokestatic  #90                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n         35: astore        4\n         37: aload_1\n         38: aload_2\n-        39: invokeinterface #35,  2           // InterfaceMethod java/util/function/Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;\n-        44: checkcast     #36                 // class dev/langchain4j/rag/content/injector/ContentInjector\n+        39: invokeinterface #113,  2          // InterfaceMethod java/util/function/Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;\n+        44: checkcast     #25                 // class dev/langchain4j/rag/content/injector/ContentInjector\n         47: astore        5\n         49: aload         5\n         51: aload         4\n         53: aload_3\n-        54: invokeinterface #7,  3            // InterfaceMethod dev/langchain4j/rag/content/injector/ContentInjector.inject:(Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n+        54: invokeinterface #24,  3           // InterfaceMethod dev/langchain4j/rag/content/injector/ContentInjector.inject:(Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n         59: astore        6\n         61: aload         6\n-        63: invokevirtual #13                 // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n-        66: invokestatic  #14                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        69: ldc           #47                 // String Tell me about bananas.\\nBananas are awesome!\\n\\nBananas are healthy!\n-        71: invokevirtual #16                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        63: invokevirtual #53                 // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n+        66: invokestatic  #57                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        69: ldc           #153                // String Tell me about bananas.\\nBananas are awesome!\\n\\nBananas are healthy!\n+        71: invokevirtual #62                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         74: pop\n         75: return\n       LineNumberTable:\n         line 182: 0\n         line 184: 6\n         line 185: 12\n         line 186: 20\n@@ -701,62 +701,62 @@\n            37      39     4 contents   Ljava/util/List;\n            49      27     5 injector   Ldev/langchain4j/rag/content/injector/ContentInjector;\n            61      15     6 injected   Ldev/langchain4j/data/message/UserMessage;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0      76     1 contentInjectorProvider   Ljava/util/function/Function<Ldev/langchain4j/model/input/PromptTemplate;Ldev/langchain4j/rag/content/injector/ContentInjector;>;\n            37      39     4 contents   Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n-    Signature: #98                          // (Ljava/util/function/Function<Ldev/langchain4j/model/input/PromptTemplate;Ldev/langchain4j/rag/content/injector/ContentInjector;>;)V\n+    Signature: #213                         // (Ljava/util/function/Function<Ldev/langchain4j/model/input/PromptTemplate;Ldev/langchain4j/rag/content/injector/ContentInjector;>;)V\n     RuntimeVisibleAnnotations:\n-      0: #90()\n+      0: #207()\n         org.junit.jupiter.params.ParameterizedTest\n-      1: #91()\n+      1: #208()\n         org.junit.jupiter.params.provider.MethodSource\n \n   static java.util.stream.Stream<org.junit.jupiter.params.provider.Arguments> should_inject_multiple_contents_with_custom_prompt_template();\n     descriptor: ()Ljava/util/stream/Stream;\n     flags: (0x0008) ACC_STATIC\n     Code:\n       stack=5, locals=0, args_size=0\n-         0: invokestatic  #38                 // InterfaceMethod java/util/stream/Stream.builder:()Ljava/util/stream/Stream$Builder;\n+         0: invokestatic  #121                // InterfaceMethod java/util/stream/Stream.builder:()Ljava/util/stream/Stream$Builder;\n          3: iconst_1\n-         4: anewarray     #39                 // class java/lang/Object\n+         4: anewarray     #2                  // class java/lang/Object\n          7: dup\n          8: iconst_0\n-         9: invokedynamic #48,  0             // InvokeDynamic #2:apply:()Ljava/util/function/Function;\n+         9: invokedynamic #155,  0            // InvokeDynamic #2:apply:()Ljava/util/function/Function;\n         14: aastore\n-        15: invokestatic  #41                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-        18: invokeinterface #42,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+        15: invokestatic  #130                // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+        18: invokeinterface #136,  2          // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n         23: iconst_1\n-        24: anewarray     #39                 // class java/lang/Object\n+        24: anewarray     #2                  // class java/lang/Object\n         27: dup\n         28: iconst_0\n-        29: invokedynamic #49,  0             // InvokeDynamic #3:apply:()Ljava/util/function/Function;\n+        29: invokedynamic #156,  0            // InvokeDynamic #3:apply:()Ljava/util/function/Function;\n         34: aastore\n-        35: invokestatic  #41                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-        38: invokeinterface #42,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n-        43: invokeinterface #44,  1           // InterfaceMethod java/util/stream/Stream$Builder.build:()Ljava/util/stream/Stream;\n+        35: invokestatic  #130                // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+        38: invokeinterface #136,  2          // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+        43: invokeinterface #142,  1          // InterfaceMethod java/util/stream/Stream$Builder.build:()Ljava/util/stream/Stream;\n         48: areturn\n       LineNumberTable:\n         line 204: 0\n         line 205: 15\n         line 208: 35\n         line 214: 43\n         line 204: 48\n-    Signature: #93                          // ()Ljava/util/stream/Stream<Lorg/junit/jupiter/params/provider/Arguments;>;\n+    Signature: #209                         // ()Ljava/util/stream/Stream<Lorg/junit/jupiter/params/provider/Arguments;>;\n \n   private static dev.langchain4j.rag.content.injector.ContentInjector lambda$should_inject_multiple_contents_with_custom_prompt_template$1(dev.langchain4j.model.input.PromptTemplate);\n     descriptor: (Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=2, locals=1, args_size=1\n-         0: invokestatic  #50                 // Method dev/langchain4j/rag/content/injector/DefaultContentInjector.builder:()Ldev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder;\n+         0: invokestatic  #157                // Method dev/langchain4j/rag/content/injector/DefaultContentInjector.builder:()Ldev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder;\n          3: aload_0\n-         4: invokevirtual #51                 // Method dev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder.promptTemplate:(Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder;\n-         7: invokevirtual #52                 // Method dev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder.build:()Ldev/langchain4j/rag/content/injector/DefaultContentInjector;\n+         4: invokevirtual #160                // Method dev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder.promptTemplate:(Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder;\n+         7: invokevirtual #166                // Method dev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder.build:()Ldev/langchain4j/rag/content/injector/DefaultContentInjector;\n         10: areturn\n       LineNumberTable:\n         line 210: 0\n         line 211: 4\n         line 212: 7\n         line 210: 10\n       LocalVariableTable:\n@@ -764,47 +764,47 @@\n             0      11     0 promptTemplate   Ldev/langchain4j/model/input/PromptTemplate;\n \n   private static dev.langchain4j.rag.content.injector.ContentInjector lambda$should_inject_multiple_contents_with_multiple_metadata_entries$0(java.util.List);\n     descriptor: (Ljava/util/List;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=2, locals=1, args_size=1\n-         0: invokestatic  #50                 // Method dev/langchain4j/rag/content/injector/DefaultContentInjector.builder:()Ldev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder;\n+         0: invokestatic  #157                // Method dev/langchain4j/rag/content/injector/DefaultContentInjector.builder:()Ldev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder;\n          3: aload_0\n-         4: invokevirtual #53                 // Method dev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder.metadataKeysToInclude:(Ljava/util/List;)Ldev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder;\n-         7: invokevirtual #52                 // Method dev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder.build:()Ldev/langchain4j/rag/content/injector/DefaultContentInjector;\n+         4: invokevirtual #169                // Method dev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder.metadataKeysToInclude:(Ljava/util/List;)Ldev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder;\n+         7: invokevirtual #166                // Method dev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder.build:()Ldev/langchain4j/rag/content/injector/DefaultContentInjector;\n         10: areturn\n       LineNumberTable:\n         line 169: 0\n         line 170: 4\n         line 171: 7\n         line 169: 10\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      11     0 metadataKeysToInclude   Ljava/util/List;\n }\n SourceFile: \"DefaultContentInjectorTest.java\"\n-InnerClasses:\n-  public static #214= #161 of #150;       // Builder=class java/util/stream/Stream$Builder of class java/util/stream/Stream\n-  public static #230= #173 of #5;         // DefaultContentInjectorBuilder=class dev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder of class dev/langchain4j/rag/content/injector/DefaultContentInjector\n-  public static final #244= #243 of #247; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n BootstrapMethods:\n-  0: #154 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  0: #221 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #155 (Ljava/lang/Object;)Ljava/lang/Object;\n-      #156 REF_newInvokeSpecial dev/langchain4j/rag/content/injector/DefaultContentInjector.\"<init>\":(Ljava/util/List;)V\n-      #157 (Ljava/util/List;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n-  1: #154 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #228 (Ljava/lang/Object;)Ljava/lang/Object;\n+      #229 REF_newInvokeSpecial dev/langchain4j/rag/content/injector/DefaultContentInjector.\"<init>\":(Ljava/util/List;)V\n+      #230 (Ljava/util/List;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n+  1: #221 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #155 (Ljava/lang/Object;)Ljava/lang/Object;\n-      #163 REF_invokeStatic dev/langchain4j/rag/content/injector/DefaultContentInjectorTest.lambda$should_inject_multiple_contents_with_multiple_metadata_entries$0:(Ljava/util/List;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n-      #157 (Ljava/util/List;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n-  2: #154 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #228 (Ljava/lang/Object;)Ljava/lang/Object;\n+      #231 REF_invokeStatic dev/langchain4j/rag/content/injector/DefaultContentInjectorTest.lambda$should_inject_multiple_contents_with_multiple_metadata_entries$0:(Ljava/util/List;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n+      #230 (Ljava/util/List;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n+  2: #221 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #155 (Ljava/lang/Object;)Ljava/lang/Object;\n-      #169 REF_newInvokeSpecial dev/langchain4j/rag/content/injector/DefaultContentInjector.\"<init>\":(Ldev/langchain4j/model/input/PromptTemplate;)V\n-      #170 (Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n-  3: #154 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #228 (Ljava/lang/Object;)Ljava/lang/Object;\n+      #234 REF_newInvokeSpecial dev/langchain4j/rag/content/injector/DefaultContentInjector.\"<init>\":(Ldev/langchain4j/model/input/PromptTemplate;)V\n+      #238 (Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n+  3: #221 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #155 (Ljava/lang/Object;)Ljava/lang/Object;\n-      #171 REF_invokeStatic dev/langchain4j/rag/content/injector/DefaultContentInjectorTest.lambda$should_inject_multiple_contents_with_custom_prompt_template$1:(Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n-      #170 (Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n+      #228 (Ljava/lang/Object;)Ljava/lang/Object;\n+      #239 REF_invokeStatic dev/langchain4j/rag/content/injector/DefaultContentInjectorTest.lambda$should_inject_multiple_contents_with_custom_prompt_template$1:(Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n+      #238 (Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n+InnerClasses:\n+  public static #243= #137 of #122;       // Builder=class java/util/stream/Stream$Builder of class java/util/stream/Stream\n+  public static #244= #161 of #21;        // DefaultContentInjectorBuilder=class dev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder of class dev/langchain4j/rag/content/injector/DefaultContentInjector\n+  public static final #249= #245 of #247; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n"}]}, {"source1": "dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetrieverTest.class", "source2": "dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetrieverTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,239 +1,239 @@\n-  SHA-256 checksum 87de4e16e894b9d4e39784195b7ee7c5c751eb1cdb5367b98686e6bf3b058c18\n+  SHA-256 checksum d9061e2ec30dd0ed757de3edcf81da76b3c2a62080f683e4708dc71034aa2690\n   Compiled from \"EmbeddingStoreContentRetrieverTest.java\"\n class dev.langchain4j.rag.content.retriever.EmbeddingStoreContentRetrieverTest\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #56                         // dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetrieverTest\n-  super_class: #43                        // java/lang/Object\n+  this_class: #192                        // dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetrieverTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 0, methods: 7, attributes: 2\n Constant pool:\n-    #1 = Methodref          #43.#93       // java/lang/Object.\"<init>\":()V\n-    #2 = Class              #94           // dev/langchain4j/store/embedding/EmbeddingStore\n-    #3 = Methodref          #95.#96       // org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-    #4 = Methodref          #95.#97       // org/mockito/Mockito.any:()Ljava/lang/Object;\n-    #5 = Class              #98           // dev/langchain4j/data/embedding/Embedding\n-    #6 = Methodref          #95.#99       // org/mockito/Mockito.anyInt:()I\n-    #7 = Methodref          #95.#100      // org/mockito/Mockito.anyDouble:()D\n-    #8 = InterfaceMethodref #2.#101       // dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n-    #9 = Methodref          #95.#102      // org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n-   #10 = Class              #103          // dev/langchain4j/store/embedding/EmbeddingMatch\n-   #11 = Double             0.9d\n-   #13 = Methodref          #104.#105     // java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-   #14 = String             #106          // id 1\n-   #15 = String             #107          // content 1\n-   #16 = Methodref          #108.#109     // dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-   #17 = Methodref          #10.#110      // dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n-   #18 = Double             0.7d\n-   #20 = String             #111          // id 2\n-   #21 = String             #112          // content 2\n-   #22 = Methodref          #113.#114     // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-   #23 = InterfaceMethodref #115.#116     // org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n-   #24 = Class              #117          // java/lang/Float\n-   #25 = Methodref          #24.#118      // java/lang/Float.valueOf:(F)Ljava/lang/Float;\n-   #26 = Float              3.0f\n-   #27 = Methodref          #5.#119       // dev/langchain4j/data/embedding/Embedding.from:(Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n-   #28 = Class              #120          // dev/langchain4j/model/embedding/EmbeddingModel\n-   #29 = Methodref          #95.#121      // org/mockito/Mockito.anyString:()Ljava/lang/String;\n-   #30 = InterfaceMethodref #28.#122      // dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n-   #31 = Methodref          #123.#124     // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-   #32 = Class              #125          // dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever\n-   #33 = Methodref          #32.#126      // dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever.\"<init>\":(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/model/embedding/EmbeddingModel;)V\n-   #34 = String             #73           // query\n-   #35 = Methodref          #127.#128     // dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-   #36 = InterfaceMethodref #129.#130     // dev/langchain4j/rag/content/retriever/ContentRetriever.retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n-   #37 = Methodref          #131.#132     // org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-   #38 = Class              #133          // dev/langchain4j/rag/content/Content\n-   #39 = Methodref          #38.#134      // dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n-   #40 = Methodref          #135.#136     // org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-   #41 = Methodref          #95.#137      // org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-   #42 = Methodref          #127.#138     // dev/langchain4j/rag/query/Query.text:()Ljava/lang/String;\n-   #43 = Class              #139          // java/lang/Object\n-   #44 = Methodref          #95.#140      // org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n-   #45 = Methodref          #32.#141      // dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever.builder:()Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n-   #46 = Methodref          #142.#143     // dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.embeddingStore:(Ldev/langchain4j/store/embedding/EmbeddingStore;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n-   #47 = Methodref          #142.#144     // dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.embeddingModel:(Ldev/langchain4j/model/embedding/EmbeddingModel;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n-   #48 = Methodref          #142.#145     // dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.build:()Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever;\n-   #49 = String             #146          // content\n-   #50 = Methodref          #147.#148     // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-   #51 = Methodref          #32.#149      // dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever.\"<init>\":(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/model/embedding/EmbeddingModel;I)V\n-   #52 = Methodref          #150.#151     // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-   #53 = Methodref          #142.#152     // dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.maxResults:(Ljava/lang/Integer;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n-   #54 = Methodref          #32.#153      // dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever.\"<init>\":(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/model/embedding/EmbeddingModel;Ljava/lang/Integer;Ljava/lang/Double;)V\n-   #55 = Methodref          #142.#154     // dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.minScore:(Ljava/lang/Double;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n-   #56 = Class              #155          // dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetrieverTest\n-   #57 = Utf8               <init>\n-   #58 = Utf8               ()V\n-   #59 = Utf8               Code\n-   #60 = Utf8               LineNumberTable\n-   #61 = Utf8               LocalVariableTable\n-   #62 = Utf8               this\n-   #63 = Utf8               Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetrieverTest;\n-   #64 = Utf8               should_retrieve\n-   #65 = Utf8               embeddingStore\n-   #66 = Utf8               Ldev/langchain4j/store/embedding/EmbeddingStore;\n-   #67 = Utf8               embedding\n-   #68 = Utf8               Ldev/langchain4j/data/embedding/Embedding;\n-   #69 = Utf8               embeddingModel\n-   #70 = Utf8               Ldev/langchain4j/model/embedding/EmbeddingModel;\n-   #71 = Utf8               contentRetriever\n-   #72 = Utf8               Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n-   #73 = Utf8               query\n-   #74 = Utf8               Ldev/langchain4j/rag/query/Query;\n-   #75 = Utf8               contents\n-   #76 = Utf8               Ljava/util/List;\n-   #77 = Utf8               LocalVariableTypeTable\n-   #78 = Utf8               Ldev/langchain4j/store/embedding/EmbeddingStore<Ldev/langchain4j/data/segment/TextSegment;>;\n-   #79 = Utf8               Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n-   #80 = Utf8               RuntimeVisibleAnnotations\n-   #81 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #82 = Utf8               should_retrieve_builder\n-   #83 = Utf8               should_retrieve_with_custom_maxResults\n-   #84 = Utf8               maxResults\n-   #85 = Utf8               I\n-   #86 = Utf8               should_retrieve_with_custom_maxResults_builder\n-   #87 = Utf8               should_retrieve_with_custom_minScore\n-   #88 = Utf8               minScore\n-   #89 = Utf8               D\n-   #90 = Utf8               should_retrieve_with_custom_minScore_builder\n-   #91 = Utf8               SourceFile\n-   #92 = Utf8               EmbeddingStoreContentRetrieverTest.java\n-   #93 = NameAndType        #57:#58       // \"<init>\":()V\n-   #94 = Utf8               dev/langchain4j/store/embedding/EmbeddingStore\n-   #95 = Class              #156          // org/mockito/Mockito\n-   #96 = NameAndType        #157:#158     // mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-   #97 = NameAndType        #159:#160     // any:()Ljava/lang/Object;\n-   #98 = Utf8               dev/langchain4j/data/embedding/Embedding\n-   #99 = NameAndType        #161:#162     // anyInt:()I\n-  #100 = NameAndType        #163:#164     // anyDouble:()D\n-  #101 = NameAndType        #165:#166     // findRelevant:(Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n-  #102 = NameAndType        #167:#168     // when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n-  #103 = Utf8               dev/langchain4j/store/embedding/EmbeddingMatch\n-  #104 = Class              #169          // java/lang/Double\n-  #105 = NameAndType        #170:#171     // valueOf:(D)Ljava/lang/Double;\n-  #106 = Utf8               id 1\n-  #107 = Utf8               content 1\n-  #108 = Class              #172          // dev/langchain4j/data/segment/TextSegment\n-  #109 = NameAndType        #173:#174     // from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #110 = NameAndType        #57:#175      // \"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n-  #111 = Utf8               id 2\n-  #112 = Utf8               content 2\n-  #113 = Class              #176          // java/util/Arrays\n-  #114 = NameAndType        #177:#178     // asList:([Ljava/lang/Object;)Ljava/util/List;\n-  #115 = Class              #179          // org/mockito/stubbing/OngoingStubbing\n-  #116 = NameAndType        #180:#168     // thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n-  #117 = Utf8               java/lang/Float\n-  #118 = NameAndType        #170:#181     // valueOf:(F)Ljava/lang/Float;\n-  #119 = NameAndType        #173:#182     // from:(Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n-  #120 = Utf8               dev/langchain4j/model/embedding/EmbeddingModel\n-  #121 = NameAndType        #183:#184     // anyString:()Ljava/lang/String;\n-  #122 = NameAndType        #185:#186     // embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n-  #123 = Class              #187          // dev/langchain4j/model/output/Response\n-  #124 = NameAndType        #173:#188     // from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-  #125 = Utf8               dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever\n-  #126 = NameAndType        #57:#189      // \"<init>\":(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/model/embedding/EmbeddingModel;)V\n-  #127 = Class              #190          // dev/langchain4j/rag/query/Query\n-  #128 = NameAndType        #173:#191     // from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-  #129 = Class              #192          // dev/langchain4j/rag/content/retriever/ContentRetriever\n-  #130 = NameAndType        #193:#194     // retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n-  #131 = Class              #195          // org/assertj/core/api/Assertions\n-  #132 = NameAndType        #196:#197     // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #133 = Utf8               dev/langchain4j/rag/content/Content\n-  #134 = NameAndType        #173:#198     // from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n-  #135 = Class              #199          // org/assertj/core/api/ListAssert\n-  #136 = NameAndType        #200:#201     // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #137 = NameAndType        #202:#203     // verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-  #138 = NameAndType        #204:#184     // text:()Ljava/lang/String;\n-  #139 = Utf8               java/lang/Object\n-  #140 = NameAndType        #205:#206     // verifyNoMoreInteractions:([Ljava/lang/Object;)V\n-  #141 = NameAndType        #207:#210     // builder:()Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n-  #142 = Class              #211          // dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder\n-  #143 = NameAndType        #65:#212      // embeddingStore:(Ldev/langchain4j/store/embedding/EmbeddingStore;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n-  #144 = NameAndType        #69:#213      // embeddingModel:(Ldev/langchain4j/model/embedding/EmbeddingModel;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n-  #145 = NameAndType        #214:#215     // build:()Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever;\n-  #146 = Utf8               content\n-  #147 = Class              #216          // java/util/Collections\n-  #148 = NameAndType        #217:#218     // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-  #149 = NameAndType        #57:#219      // \"<init>\":(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/model/embedding/EmbeddingModel;I)V\n-  #150 = Class              #220          // java/lang/Integer\n-  #151 = NameAndType        #170:#221     // valueOf:(I)Ljava/lang/Integer;\n-  #152 = NameAndType        #84:#222      // maxResults:(Ljava/lang/Integer;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n-  #153 = NameAndType        #57:#223      // \"<init>\":(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/model/embedding/EmbeddingModel;Ljava/lang/Integer;Ljava/lang/Double;)V\n-  #154 = NameAndType        #88:#224      // minScore:(Ljava/lang/Double;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n-  #155 = Utf8               dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetrieverTest\n-  #156 = Utf8               org/mockito/Mockito\n-  #157 = Utf8               mock\n-  #158 = Utf8               (Ljava/lang/Class;)Ljava/lang/Object;\n-  #159 = Utf8               any\n-  #160 = Utf8               ()Ljava/lang/Object;\n-  #161 = Utf8               anyInt\n-  #162 = Utf8               ()I\n-  #163 = Utf8               anyDouble\n-  #164 = Utf8               ()D\n-  #165 = Utf8               findRelevant\n-  #166 = Utf8               (Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n-  #167 = Utf8               when\n-  #168 = Utf8               (Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n-  #169 = Utf8               java/lang/Double\n-  #170 = Utf8               valueOf\n-  #171 = Utf8               (D)Ljava/lang/Double;\n-  #172 = Utf8               dev/langchain4j/data/segment/TextSegment\n-  #173 = Utf8               from\n-  #174 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #175 = Utf8               (Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n-  #176 = Utf8               java/util/Arrays\n-  #177 = Utf8               asList\n-  #178 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n-  #179 = Utf8               org/mockito/stubbing/OngoingStubbing\n-  #180 = Utf8               thenReturn\n-  #181 = Utf8               (F)Ljava/lang/Float;\n-  #182 = Utf8               (Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n-  #183 = Utf8               anyString\n-  #184 = Utf8               ()Ljava/lang/String;\n-  #185 = Utf8               embed\n-  #186 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n-  #187 = Utf8               dev/langchain4j/model/output/Response\n-  #188 = Utf8               (Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-  #189 = Utf8               (Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/model/embedding/EmbeddingModel;)V\n-  #190 = Utf8               dev/langchain4j/rag/query/Query\n-  #191 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-  #192 = Utf8               dev/langchain4j/rag/content/retriever/ContentRetriever\n-  #193 = Utf8               retrieve\n-  #194 = Utf8               (Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n-  #195 = Utf8               org/assertj/core/api/Assertions\n-  #196 = Utf8               assertThat\n-  #197 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #198 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n-  #199 = Utf8               org/assertj/core/api/ListAssert\n-  #200 = Utf8               containsExactly\n-  #201 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #202 = Utf8               verify\n-  #203 = Utf8               (Ljava/lang/Object;)Ljava/lang/Object;\n-  #204 = Utf8               text\n-  #205 = Utf8               verifyNoMoreInteractions\n-  #206 = Utf8               ([Ljava/lang/Object;)V\n-  #207 = Utf8               builder\n-  #208 = Utf8               EmbeddingStoreContentRetrieverBuilder\n-  #209 = Utf8               InnerClasses\n-  #210 = Utf8               ()Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n-  #211 = Utf8               dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder\n-  #212 = Utf8               (Ldev/langchain4j/store/embedding/EmbeddingStore;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n-  #213 = Utf8               (Ldev/langchain4j/model/embedding/EmbeddingModel;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n-  #214 = Utf8               build\n-  #215 = Utf8               ()Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever;\n-  #216 = Utf8               java/util/Collections\n-  #217 = Utf8               singletonList\n-  #218 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n-  #219 = Utf8               (Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/model/embedding/EmbeddingModel;I)V\n-  #220 = Utf8               java/lang/Integer\n-  #221 = Utf8               (I)Ljava/lang/Integer;\n-  #222 = Utf8               (Ljava/lang/Integer;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n-  #223 = Utf8               (Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/model/embedding/EmbeddingModel;Ljava/lang/Integer;Ljava/lang/Double;)V\n-  #224 = Utf8               (Ljava/lang/Double;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Class              #8            // dev/langchain4j/store/embedding/EmbeddingStore\n+    #8 = Utf8               dev/langchain4j/store/embedding/EmbeddingStore\n+    #9 = Methodref          #10.#11       // org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+   #10 = Class              #12           // org/mockito/Mockito\n+   #11 = NameAndType        #13:#14       // mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+   #12 = Utf8               org/mockito/Mockito\n+   #13 = Utf8               mock\n+   #14 = Utf8               (Ljava/lang/Class;)Ljava/lang/Object;\n+   #15 = Methodref          #10.#16       // org/mockito/Mockito.any:()Ljava/lang/Object;\n+   #16 = NameAndType        #17:#18       // any:()Ljava/lang/Object;\n+   #17 = Utf8               any\n+   #18 = Utf8               ()Ljava/lang/Object;\n+   #19 = Class              #20           // dev/langchain4j/data/embedding/Embedding\n+   #20 = Utf8               dev/langchain4j/data/embedding/Embedding\n+   #21 = Methodref          #10.#22       // org/mockito/Mockito.anyInt:()I\n+   #22 = NameAndType        #23:#24       // anyInt:()I\n+   #23 = Utf8               anyInt\n+   #24 = Utf8               ()I\n+   #25 = Methodref          #10.#26       // org/mockito/Mockito.anyDouble:()D\n+   #26 = NameAndType        #27:#28       // anyDouble:()D\n+   #27 = Utf8               anyDouble\n+   #28 = Utf8               ()D\n+   #29 = InterfaceMethodref #7.#30        // dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n+   #30 = NameAndType        #31:#32       // findRelevant:(Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n+   #31 = Utf8               findRelevant\n+   #32 = Utf8               (Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n+   #33 = Methodref          #10.#34       // org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+   #34 = NameAndType        #35:#36       // when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+   #35 = Utf8               when\n+   #36 = Utf8               (Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+   #37 = Class              #38           // dev/langchain4j/store/embedding/EmbeddingMatch\n+   #38 = Utf8               dev/langchain4j/store/embedding/EmbeddingMatch\n+   #39 = Double             0.9d\n+   #41 = Methodref          #42.#43       // java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+   #42 = Class              #44           // java/lang/Double\n+   #43 = NameAndType        #45:#46       // valueOf:(D)Ljava/lang/Double;\n+   #44 = Utf8               java/lang/Double\n+   #45 = Utf8               valueOf\n+   #46 = Utf8               (D)Ljava/lang/Double;\n+   #47 = String             #48           // id 1\n+   #48 = Utf8               id 1\n+   #49 = String             #50           // content 1\n+   #50 = Utf8               content 1\n+   #51 = Methodref          #52.#53       // dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+   #52 = Class              #54           // dev/langchain4j/data/segment/TextSegment\n+   #53 = NameAndType        #55:#56       // from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+   #54 = Utf8               dev/langchain4j/data/segment/TextSegment\n+   #55 = Utf8               from\n+   #56 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+   #57 = Methodref          #37.#58       // dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+   #58 = NameAndType        #5:#59        // \"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+   #59 = Utf8               (Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+   #60 = Double             0.7d\n+   #62 = String             #63           // id 2\n+   #63 = Utf8               id 2\n+   #64 = String             #65           // content 2\n+   #65 = Utf8               content 2\n+   #66 = Methodref          #67.#68       // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+   #67 = Class              #69           // java/util/Arrays\n+   #68 = NameAndType        #70:#71       // asList:([Ljava/lang/Object;)Ljava/util/List;\n+   #69 = Utf8               java/util/Arrays\n+   #70 = Utf8               asList\n+   #71 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n+   #72 = InterfaceMethodref #73.#74       // org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+   #73 = Class              #75           // org/mockito/stubbing/OngoingStubbing\n+   #74 = NameAndType        #76:#36       // thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+   #75 = Utf8               org/mockito/stubbing/OngoingStubbing\n+   #76 = Utf8               thenReturn\n+   #77 = Class              #78           // java/lang/Float\n+   #78 = Utf8               java/lang/Float\n+   #79 = Methodref          #77.#80       // java/lang/Float.valueOf:(F)Ljava/lang/Float;\n+   #80 = NameAndType        #45:#81       // valueOf:(F)Ljava/lang/Float;\n+   #81 = Utf8               (F)Ljava/lang/Float;\n+   #82 = Float              3.0f\n+   #83 = Methodref          #19.#84       // dev/langchain4j/data/embedding/Embedding.from:(Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n+   #84 = NameAndType        #55:#85       // from:(Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n+   #85 = Utf8               (Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n+   #86 = Class              #87           // dev/langchain4j/model/embedding/EmbeddingModel\n+   #87 = Utf8               dev/langchain4j/model/embedding/EmbeddingModel\n+   #88 = Methodref          #10.#89       // org/mockito/Mockito.anyString:()Ljava/lang/String;\n+   #89 = NameAndType        #90:#91       // anyString:()Ljava/lang/String;\n+   #90 = Utf8               anyString\n+   #91 = Utf8               ()Ljava/lang/String;\n+   #92 = InterfaceMethodref #86.#93       // dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+   #93 = NameAndType        #94:#95       // embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+   #94 = Utf8               embed\n+   #95 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+   #96 = Methodref          #97.#98       // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+   #97 = Class              #99           // dev/langchain4j/model/output/Response\n+   #98 = NameAndType        #55:#100      // from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+   #99 = Utf8               dev/langchain4j/model/output/Response\n+  #100 = Utf8               (Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+  #101 = Class              #102          // dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever\n+  #102 = Utf8               dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever\n+  #103 = Methodref          #101.#104     // dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever.\"<init>\":(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/model/embedding/EmbeddingModel;)V\n+  #104 = NameAndType        #5:#105       // \"<init>\":(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/model/embedding/EmbeddingModel;)V\n+  #105 = Utf8               (Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/model/embedding/EmbeddingModel;)V\n+  #106 = String             #107          // query\n+  #107 = Utf8               query\n+  #108 = Methodref          #109.#110     // dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+  #109 = Class              #111          // dev/langchain4j/rag/query/Query\n+  #110 = NameAndType        #55:#112      // from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+  #111 = Utf8               dev/langchain4j/rag/query/Query\n+  #112 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+  #113 = InterfaceMethodref #114.#115     // dev/langchain4j/rag/content/retriever/ContentRetriever.retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n+  #114 = Class              #116          // dev/langchain4j/rag/content/retriever/ContentRetriever\n+  #115 = NameAndType        #117:#118     // retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n+  #116 = Utf8               dev/langchain4j/rag/content/retriever/ContentRetriever\n+  #117 = Utf8               retrieve\n+  #118 = Utf8               (Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n+  #119 = Methodref          #120.#121     // org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #120 = Class              #122          // org/assertj/core/api/Assertions\n+  #121 = NameAndType        #123:#124     // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #122 = Utf8               org/assertj/core/api/Assertions\n+  #123 = Utf8               assertThat\n+  #124 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #125 = Class              #126          // dev/langchain4j/rag/content/Content\n+  #126 = Utf8               dev/langchain4j/rag/content/Content\n+  #127 = Methodref          #125.#128     // dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+  #128 = NameAndType        #55:#129      // from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+  #129 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+  #130 = Methodref          #131.#132     // org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #131 = Class              #133          // org/assertj/core/api/ListAssert\n+  #132 = NameAndType        #134:#135     // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #133 = Utf8               org/assertj/core/api/ListAssert\n+  #134 = Utf8               containsExactly\n+  #135 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #136 = Methodref          #10.#137      // org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+  #137 = NameAndType        #138:#139     // verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+  #138 = Utf8               verify\n+  #139 = Utf8               (Ljava/lang/Object;)Ljava/lang/Object;\n+  #140 = Methodref          #109.#141     // dev/langchain4j/rag/query/Query.text:()Ljava/lang/String;\n+  #141 = NameAndType        #142:#91      // text:()Ljava/lang/String;\n+  #142 = Utf8               text\n+  #143 = Methodref          #10.#144      // org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+  #144 = NameAndType        #145:#146     // verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+  #145 = Utf8               verifyNoMoreInteractions\n+  #146 = Utf8               ([Ljava/lang/Object;)V\n+  #147 = Methodref          #101.#148     // dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever.builder:()Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n+  #148 = NameAndType        #149:#150     // builder:()Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n+  #149 = Utf8               builder\n+  #150 = Utf8               ()Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n+  #151 = Methodref          #152.#153     // dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.embeddingStore:(Ldev/langchain4j/store/embedding/EmbeddingStore;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n+  #152 = Class              #154          // dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder\n+  #153 = NameAndType        #155:#156     // embeddingStore:(Ldev/langchain4j/store/embedding/EmbeddingStore;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n+  #154 = Utf8               dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder\n+  #155 = Utf8               embeddingStore\n+  #156 = Utf8               (Ldev/langchain4j/store/embedding/EmbeddingStore;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n+  #157 = Methodref          #152.#158     // dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.embeddingModel:(Ldev/langchain4j/model/embedding/EmbeddingModel;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n+  #158 = NameAndType        #159:#160     // embeddingModel:(Ldev/langchain4j/model/embedding/EmbeddingModel;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n+  #159 = Utf8               embeddingModel\n+  #160 = Utf8               (Ldev/langchain4j/model/embedding/EmbeddingModel;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n+  #161 = Methodref          #152.#162     // dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.build:()Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever;\n+  #162 = NameAndType        #163:#164     // build:()Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever;\n+  #163 = Utf8               build\n+  #164 = Utf8               ()Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever;\n+  #165 = String             #166          // content\n+  #166 = Utf8               content\n+  #167 = Methodref          #168.#169     // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+  #168 = Class              #170          // java/util/Collections\n+  #169 = NameAndType        #171:#172     // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+  #170 = Utf8               java/util/Collections\n+  #171 = Utf8               singletonList\n+  #172 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n+  #173 = Methodref          #101.#174     // dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever.\"<init>\":(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/model/embedding/EmbeddingModel;I)V\n+  #174 = NameAndType        #5:#175       // \"<init>\":(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/model/embedding/EmbeddingModel;I)V\n+  #175 = Utf8               (Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/model/embedding/EmbeddingModel;I)V\n+  #176 = Methodref          #177.#178     // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+  #177 = Class              #179          // java/lang/Integer\n+  #178 = NameAndType        #45:#180      // valueOf:(I)Ljava/lang/Integer;\n+  #179 = Utf8               java/lang/Integer\n+  #180 = Utf8               (I)Ljava/lang/Integer;\n+  #181 = Methodref          #152.#182     // dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.maxResults:(Ljava/lang/Integer;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n+  #182 = NameAndType        #183:#184     // maxResults:(Ljava/lang/Integer;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n+  #183 = Utf8               maxResults\n+  #184 = Utf8               (Ljava/lang/Integer;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n+  #185 = Methodref          #101.#186     // dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever.\"<init>\":(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/model/embedding/EmbeddingModel;Ljava/lang/Integer;Ljava/lang/Double;)V\n+  #186 = NameAndType        #5:#187       // \"<init>\":(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/model/embedding/EmbeddingModel;Ljava/lang/Integer;Ljava/lang/Double;)V\n+  #187 = Utf8               (Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/model/embedding/EmbeddingModel;Ljava/lang/Integer;Ljava/lang/Double;)V\n+  #188 = Methodref          #152.#189     // dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.minScore:(Ljava/lang/Double;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n+  #189 = NameAndType        #190:#191     // minScore:(Ljava/lang/Double;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n+  #190 = Utf8               minScore\n+  #191 = Utf8               (Ljava/lang/Double;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n+  #192 = Class              #193          // dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetrieverTest\n+  #193 = Utf8               dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetrieverTest\n+  #194 = Utf8               Code\n+  #195 = Utf8               LineNumberTable\n+  #196 = Utf8               LocalVariableTable\n+  #197 = Utf8               this\n+  #198 = Utf8               Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetrieverTest;\n+  #199 = Utf8               should_retrieve\n+  #200 = Utf8               Ldev/langchain4j/store/embedding/EmbeddingStore;\n+  #201 = Utf8               embedding\n+  #202 = Utf8               Ldev/langchain4j/data/embedding/Embedding;\n+  #203 = Utf8               Ldev/langchain4j/model/embedding/EmbeddingModel;\n+  #204 = Utf8               contentRetriever\n+  #205 = Utf8               Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n+  #206 = Utf8               Ldev/langchain4j/rag/query/Query;\n+  #207 = Utf8               contents\n+  #208 = Utf8               Ljava/util/List;\n+  #209 = Utf8               LocalVariableTypeTable\n+  #210 = Utf8               Ldev/langchain4j/store/embedding/EmbeddingStore<Ldev/langchain4j/data/segment/TextSegment;>;\n+  #211 = Utf8               Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n+  #212 = Utf8               RuntimeVisibleAnnotations\n+  #213 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #214 = Utf8               should_retrieve_builder\n+  #215 = Utf8               should_retrieve_with_custom_maxResults\n+  #216 = Utf8               I\n+  #217 = Utf8               should_retrieve_with_custom_maxResults_builder\n+  #218 = Utf8               should_retrieve_with_custom_minScore\n+  #219 = Utf8               D\n+  #220 = Utf8               should_retrieve_with_custom_minScore_builder\n+  #221 = Utf8               SourceFile\n+  #222 = Utf8               EmbeddingStoreContentRetrieverTest.java\n+  #223 = Utf8               InnerClasses\n+  #224 = Utf8               EmbeddingStoreContentRetrieverBuilder\n {\n   dev.langchain4j.rag.content.retriever.EmbeddingStoreContentRetrieverTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -246,144 +246,144 @@\n             0       5     0  this   Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetrieverTest;\n \n   void should_retrieve();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=10, locals=7, args_size=1\n-         0: ldc           #2                  // class dev/langchain4j/store/embedding/EmbeddingStore\n-         2: invokestatic  #3                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-         5: checkcast     #2                  // class dev/langchain4j/store/embedding/EmbeddingStore\n+         0: ldc           #7                  // class dev/langchain4j/store/embedding/EmbeddingStore\n+         2: invokestatic  #9                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+         5: checkcast     #7                  // class dev/langchain4j/store/embedding/EmbeddingStore\n          8: astore_1\n          9: aload_1\n-        10: invokestatic  #4                  // Method org/mockito/Mockito.any:()Ljava/lang/Object;\n-        13: checkcast     #5                  // class dev/langchain4j/data/embedding/Embedding\n-        16: invokestatic  #6                  // Method org/mockito/Mockito.anyInt:()I\n-        19: invokestatic  #7                  // Method org/mockito/Mockito.anyDouble:()D\n-        22: invokeinterface #8,  5            // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n-        27: invokestatic  #9                  // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+        10: invokestatic  #15                 // Method org/mockito/Mockito.any:()Ljava/lang/Object;\n+        13: checkcast     #19                 // class dev/langchain4j/data/embedding/Embedding\n+        16: invokestatic  #21                 // Method org/mockito/Mockito.anyInt:()I\n+        19: invokestatic  #25                 // Method org/mockito/Mockito.anyDouble:()D\n+        22: invokeinterface #29,  5           // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n+        27: invokestatic  #33                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n         30: iconst_2\n-        31: anewarray     #10                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n+        31: anewarray     #37                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n         34: dup\n         35: iconst_0\n-        36: new           #10                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n+        36: new           #37                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n         39: dup\n-        40: ldc2_w        #11                 // double 0.9d\n-        43: invokestatic  #13                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-        46: ldc           #14                 // String id 1\n+        40: ldc2_w        #39                 // double 0.9d\n+        43: invokestatic  #41                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+        46: ldc           #47                 // String id 1\n         48: aconst_null\n-        49: ldc           #15                 // String content 1\n-        51: invokestatic  #16                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-        54: invokespecial #17                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+        49: ldc           #49                 // String content 1\n+        51: invokestatic  #51                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+        54: invokespecial #57                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n         57: aastore\n         58: dup\n         59: iconst_1\n-        60: new           #10                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n+        60: new           #37                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n         63: dup\n-        64: ldc2_w        #18                 // double 0.7d\n-        67: invokestatic  #13                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-        70: ldc           #20                 // String id 2\n+        64: ldc2_w        #60                 // double 0.7d\n+        67: invokestatic  #41                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+        70: ldc           #62                 // String id 2\n         72: aconst_null\n-        73: ldc           #21                 // String content 2\n-        75: invokestatic  #16                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-        78: invokespecial #17                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+        73: ldc           #64                 // String content 2\n+        75: invokestatic  #51                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+        78: invokespecial #57                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n         81: aastore\n-        82: invokestatic  #22                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-        85: invokeinterface #23,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+        82: invokestatic  #66                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        85: invokeinterface #72,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n         90: pop\n         91: iconst_3\n-        92: anewarray     #24                 // class java/lang/Float\n+        92: anewarray     #77                 // class java/lang/Float\n         95: dup\n         96: iconst_0\n         97: fconst_1\n-        98: invokestatic  #25                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n+        98: invokestatic  #79                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n        101: aastore\n        102: dup\n        103: iconst_1\n        104: fconst_2\n-       105: invokestatic  #25                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n+       105: invokestatic  #79                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n        108: aastore\n        109: dup\n        110: iconst_2\n-       111: ldc           #26                 // float 3.0f\n-       113: invokestatic  #25                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n+       111: ldc           #82                 // float 3.0f\n+       113: invokestatic  #79                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n        116: aastore\n-       117: invokestatic  #22                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       120: invokestatic  #27                 // Method dev/langchain4j/data/embedding/Embedding.from:(Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n+       117: invokestatic  #66                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       120: invokestatic  #83                 // Method dev/langchain4j/data/embedding/Embedding.from:(Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n        123: astore_2\n-       124: ldc           #28                 // class dev/langchain4j/model/embedding/EmbeddingModel\n-       126: invokestatic  #3                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-       129: checkcast     #28                 // class dev/langchain4j/model/embedding/EmbeddingModel\n+       124: ldc           #86                 // class dev/langchain4j/model/embedding/EmbeddingModel\n+       126: invokestatic  #9                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+       129: checkcast     #86                 // class dev/langchain4j/model/embedding/EmbeddingModel\n        132: astore_3\n        133: aload_3\n-       134: invokestatic  #29                 // Method org/mockito/Mockito.anyString:()Ljava/lang/String;\n-       137: invokeinterface #30,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n-       142: invokestatic  #9                  // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       134: invokestatic  #88                 // Method org/mockito/Mockito.anyString:()Ljava/lang/String;\n+       137: invokeinterface #92,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+       142: invokestatic  #33                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        145: aload_2\n-       146: invokestatic  #31                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-       149: invokeinterface #23,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       146: invokestatic  #96                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+       149: invokeinterface #72,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        154: pop\n-       155: new           #32                 // class dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever\n+       155: new           #101                // class dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever\n        158: dup\n        159: aload_1\n        160: aload_3\n-       161: invokespecial #33                 // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever.\"<init>\":(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/model/embedding/EmbeddingModel;)V\n+       161: invokespecial #103                // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever.\"<init>\":(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/model/embedding/EmbeddingModel;)V\n        164: astore        4\n-       166: ldc           #34                 // String query\n-       168: invokestatic  #35                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+       166: ldc           #106                // String query\n+       168: invokestatic  #108                // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n        171: astore        5\n        173: aload         4\n        175: aload         5\n-       177: invokeinterface #36,  2           // InterfaceMethod dev/langchain4j/rag/content/retriever/ContentRetriever.retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n+       177: invokeinterface #113,  2          // InterfaceMethod dev/langchain4j/rag/content/retriever/ContentRetriever.retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n        182: astore        6\n        184: aload         6\n-       186: invokestatic  #37                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+       186: invokestatic  #119                // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n        189: iconst_2\n-       190: anewarray     #38                 // class dev/langchain4j/rag/content/Content\n+       190: anewarray     #125                // class dev/langchain4j/rag/content/Content\n        193: dup\n        194: iconst_0\n-       195: ldc           #15                 // String content 1\n-       197: invokestatic  #39                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+       195: ldc           #49                 // String content 1\n+       197: invokestatic  #127                // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n        200: aastore\n        201: dup\n        202: iconst_1\n-       203: ldc           #21                 // String content 2\n-       205: invokestatic  #39                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+       203: ldc           #64                 // String content 2\n+       205: invokestatic  #127                // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n        208: aastore\n-       209: invokevirtual #40                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+       209: invokevirtual #130                // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n        212: pop\n        213: aload_3\n-       214: invokestatic  #41                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-       217: checkcast     #28                 // class dev/langchain4j/model/embedding/EmbeddingModel\n+       214: invokestatic  #136                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+       217: checkcast     #86                 // class dev/langchain4j/model/embedding/EmbeddingModel\n        220: aload         5\n-       222: invokevirtual #42                 // Method dev/langchain4j/rag/query/Query.text:()Ljava/lang/String;\n-       225: invokeinterface #30,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+       222: invokevirtual #140                // Method dev/langchain4j/rag/query/Query.text:()Ljava/lang/String;\n+       225: invokeinterface #92,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n        230: pop\n        231: iconst_1\n-       232: anewarray     #43                 // class java/lang/Object\n+       232: anewarray     #2                  // class java/lang/Object\n        235: dup\n        236: iconst_0\n        237: aload_3\n        238: aastore\n-       239: invokestatic  #44                 // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+       239: invokestatic  #143                // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n        242: aload_1\n-       243: invokestatic  #41                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-       246: checkcast     #2                  // class dev/langchain4j/store/embedding/EmbeddingStore\n+       243: invokestatic  #136                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+       246: checkcast     #7                  // class dev/langchain4j/store/embedding/EmbeddingStore\n        249: aload_2\n        250: iconst_3\n        251: dconst_0\n-       252: invokeinterface #8,  5            // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n+       252: invokeinterface #29,  5           // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n        257: pop\n        258: iconst_1\n-       259: anewarray     #43                 // class java/lang/Object\n+       259: anewarray     #2                  // class java/lang/Object\n        262: dup\n        263: iconst_0\n        264: aload_1\n        265: aastore\n-       266: invokestatic  #44                 // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+       266: invokestatic  #143                // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n        269: return\n       LineNumberTable:\n         line 27: 0\n         line 28: 9\n         line 29: 43\n         line 30: 67\n         line 28: 82\n@@ -412,153 +412,153 @@\n           173      97     5 query   Ldev/langchain4j/rag/query/Query;\n           184      86     6 contents   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             9     261     1 embeddingStore   Ldev/langchain4j/store/embedding/EmbeddingStore<Ldev/langchain4j/data/segment/TextSegment;>;\n           184      86     6 contents   Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n     RuntimeVisibleAnnotations:\n-      0: #81()\n+      0: #213()\n         org.junit.jupiter.api.Test\n \n   void should_retrieve_builder();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=10, locals=7, args_size=1\n-         0: ldc           #2                  // class dev/langchain4j/store/embedding/EmbeddingStore\n-         2: invokestatic  #3                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-         5: checkcast     #2                  // class dev/langchain4j/store/embedding/EmbeddingStore\n+         0: ldc           #7                  // class dev/langchain4j/store/embedding/EmbeddingStore\n+         2: invokestatic  #9                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+         5: checkcast     #7                  // class dev/langchain4j/store/embedding/EmbeddingStore\n          8: astore_1\n          9: aload_1\n-        10: invokestatic  #4                  // Method org/mockito/Mockito.any:()Ljava/lang/Object;\n-        13: checkcast     #5                  // class dev/langchain4j/data/embedding/Embedding\n-        16: invokestatic  #6                  // Method org/mockito/Mockito.anyInt:()I\n-        19: invokestatic  #7                  // Method org/mockito/Mockito.anyDouble:()D\n-        22: invokeinterface #8,  5            // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n-        27: invokestatic  #9                  // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+        10: invokestatic  #15                 // Method org/mockito/Mockito.any:()Ljava/lang/Object;\n+        13: checkcast     #19                 // class dev/langchain4j/data/embedding/Embedding\n+        16: invokestatic  #21                 // Method org/mockito/Mockito.anyInt:()I\n+        19: invokestatic  #25                 // Method org/mockito/Mockito.anyDouble:()D\n+        22: invokeinterface #29,  5           // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n+        27: invokestatic  #33                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n         30: iconst_2\n-        31: anewarray     #10                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n+        31: anewarray     #37                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n         34: dup\n         35: iconst_0\n-        36: new           #10                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n+        36: new           #37                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n         39: dup\n-        40: ldc2_w        #11                 // double 0.9d\n-        43: invokestatic  #13                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-        46: ldc           #14                 // String id 1\n+        40: ldc2_w        #39                 // double 0.9d\n+        43: invokestatic  #41                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+        46: ldc           #47                 // String id 1\n         48: aconst_null\n-        49: ldc           #15                 // String content 1\n-        51: invokestatic  #16                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-        54: invokespecial #17                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+        49: ldc           #49                 // String content 1\n+        51: invokestatic  #51                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+        54: invokespecial #57                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n         57: aastore\n         58: dup\n         59: iconst_1\n-        60: new           #10                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n+        60: new           #37                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n         63: dup\n-        64: ldc2_w        #18                 // double 0.7d\n-        67: invokestatic  #13                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-        70: ldc           #20                 // String id 2\n+        64: ldc2_w        #60                 // double 0.7d\n+        67: invokestatic  #41                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+        70: ldc           #62                 // String id 2\n         72: aconst_null\n-        73: ldc           #21                 // String content 2\n-        75: invokestatic  #16                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-        78: invokespecial #17                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+        73: ldc           #64                 // String content 2\n+        75: invokestatic  #51                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+        78: invokespecial #57                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n         81: aastore\n-        82: invokestatic  #22                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-        85: invokeinterface #23,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+        82: invokestatic  #66                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        85: invokeinterface #72,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n         90: pop\n         91: iconst_3\n-        92: anewarray     #24                 // class java/lang/Float\n+        92: anewarray     #77                 // class java/lang/Float\n         95: dup\n         96: iconst_0\n         97: fconst_1\n-        98: invokestatic  #25                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n+        98: invokestatic  #79                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n        101: aastore\n        102: dup\n        103: iconst_1\n        104: fconst_2\n-       105: invokestatic  #25                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n+       105: invokestatic  #79                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n        108: aastore\n        109: dup\n        110: iconst_2\n-       111: ldc           #26                 // float 3.0f\n-       113: invokestatic  #25                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n+       111: ldc           #82                 // float 3.0f\n+       113: invokestatic  #79                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n        116: aastore\n-       117: invokestatic  #22                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       120: invokestatic  #27                 // Method dev/langchain4j/data/embedding/Embedding.from:(Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n+       117: invokestatic  #66                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       120: invokestatic  #83                 // Method dev/langchain4j/data/embedding/Embedding.from:(Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n        123: astore_2\n-       124: ldc           #28                 // class dev/langchain4j/model/embedding/EmbeddingModel\n-       126: invokestatic  #3                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-       129: checkcast     #28                 // class dev/langchain4j/model/embedding/EmbeddingModel\n+       124: ldc           #86                 // class dev/langchain4j/model/embedding/EmbeddingModel\n+       126: invokestatic  #9                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+       129: checkcast     #86                 // class dev/langchain4j/model/embedding/EmbeddingModel\n        132: astore_3\n        133: aload_3\n-       134: invokestatic  #29                 // Method org/mockito/Mockito.anyString:()Ljava/lang/String;\n-       137: invokeinterface #30,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n-       142: invokestatic  #9                  // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       134: invokestatic  #88                 // Method org/mockito/Mockito.anyString:()Ljava/lang/String;\n+       137: invokeinterface #92,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+       142: invokestatic  #33                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        145: aload_2\n-       146: invokestatic  #31                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-       149: invokeinterface #23,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       146: invokestatic  #96                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+       149: invokeinterface #72,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        154: pop\n-       155: invokestatic  #45                 // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever.builder:()Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n+       155: invokestatic  #147                // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever.builder:()Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n        158: aload_1\n-       159: invokevirtual #46                 // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.embeddingStore:(Ldev/langchain4j/store/embedding/EmbeddingStore;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n+       159: invokevirtual #151                // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.embeddingStore:(Ldev/langchain4j/store/embedding/EmbeddingStore;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n        162: aload_3\n-       163: invokevirtual #47                 // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.embeddingModel:(Ldev/langchain4j/model/embedding/EmbeddingModel;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n-       166: invokevirtual #48                 // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.build:()Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever;\n+       163: invokevirtual #157                // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.embeddingModel:(Ldev/langchain4j/model/embedding/EmbeddingModel;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n+       166: invokevirtual #161                // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.build:()Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever;\n        169: astore        4\n-       171: ldc           #34                 // String query\n-       173: invokestatic  #35                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+       171: ldc           #106                // String query\n+       173: invokestatic  #108                // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n        176: astore        5\n        178: aload         4\n        180: aload         5\n-       182: invokeinterface #36,  2           // InterfaceMethod dev/langchain4j/rag/content/retriever/ContentRetriever.retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n+       182: invokeinterface #113,  2          // InterfaceMethod dev/langchain4j/rag/content/retriever/ContentRetriever.retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n        187: astore        6\n        189: aload         6\n-       191: invokestatic  #37                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+       191: invokestatic  #119                // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n        194: iconst_2\n-       195: anewarray     #38                 // class dev/langchain4j/rag/content/Content\n+       195: anewarray     #125                // class dev/langchain4j/rag/content/Content\n        198: dup\n        199: iconst_0\n-       200: ldc           #15                 // String content 1\n-       202: invokestatic  #39                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+       200: ldc           #49                 // String content 1\n+       202: invokestatic  #127                // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n        205: aastore\n        206: dup\n        207: iconst_1\n-       208: ldc           #21                 // String content 2\n-       210: invokestatic  #39                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+       208: ldc           #64                 // String content 2\n+       210: invokestatic  #127                // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n        213: aastore\n-       214: invokevirtual #40                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+       214: invokevirtual #130                // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n        217: pop\n        218: aload_3\n-       219: invokestatic  #41                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-       222: checkcast     #28                 // class dev/langchain4j/model/embedding/EmbeddingModel\n+       219: invokestatic  #136                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+       222: checkcast     #86                 // class dev/langchain4j/model/embedding/EmbeddingModel\n        225: aload         5\n-       227: invokevirtual #42                 // Method dev/langchain4j/rag/query/Query.text:()Ljava/lang/String;\n-       230: invokeinterface #30,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+       227: invokevirtual #140                // Method dev/langchain4j/rag/query/Query.text:()Ljava/lang/String;\n+       230: invokeinterface #92,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n        235: pop\n        236: iconst_1\n-       237: anewarray     #43                 // class java/lang/Object\n+       237: anewarray     #2                  // class java/lang/Object\n        240: dup\n        241: iconst_0\n        242: aload_3\n        243: aastore\n-       244: invokestatic  #44                 // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+       244: invokestatic  #143                // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n        247: aload_1\n-       248: invokestatic  #41                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-       251: checkcast     #2                  // class dev/langchain4j/store/embedding/EmbeddingStore\n+       248: invokestatic  #136                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+       251: checkcast     #7                  // class dev/langchain4j/store/embedding/EmbeddingStore\n        254: aload_2\n        255: iconst_3\n        256: dconst_0\n-       257: invokeinterface #8,  5            // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n+       257: invokeinterface #29,  5           // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n        262: pop\n        263: iconst_1\n-       264: anewarray     #43                 // class java/lang/Object\n+       264: anewarray     #2                  // class java/lang/Object\n        267: dup\n        268: iconst_0\n        269: aload_1\n        270: aastore\n-       271: invokestatic  #44                 // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+       271: invokestatic  #143                // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n        274: return\n       LineNumberTable:\n         line 61: 0\n         line 62: 9\n         line 63: 43\n         line 64: 67\n         line 62: 82\n@@ -590,133 +590,133 @@\n           178      97     5 query   Ldev/langchain4j/rag/query/Query;\n           189      86     6 contents   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             9     266     1 embeddingStore   Ldev/langchain4j/store/embedding/EmbeddingStore<Ldev/langchain4j/data/segment/TextSegment;>;\n           189      86     6 contents   Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n     RuntimeVisibleAnnotations:\n-      0: #81()\n+      0: #213()\n         org.junit.jupiter.api.Test\n \n   void should_retrieve_with_custom_maxResults();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=7, locals=8, args_size=1\n          0: iconst_1\n          1: istore_1\n-         2: ldc           #2                  // class dev/langchain4j/store/embedding/EmbeddingStore\n-         4: invokestatic  #3                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-         7: checkcast     #2                  // class dev/langchain4j/store/embedding/EmbeddingStore\n+         2: ldc           #7                  // class dev/langchain4j/store/embedding/EmbeddingStore\n+         4: invokestatic  #9                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+         7: checkcast     #7                  // class dev/langchain4j/store/embedding/EmbeddingStore\n         10: astore_2\n         11: aload_2\n-        12: invokestatic  #4                  // Method org/mockito/Mockito.any:()Ljava/lang/Object;\n-        15: checkcast     #5                  // class dev/langchain4j/data/embedding/Embedding\n-        18: invokestatic  #6                  // Method org/mockito/Mockito.anyInt:()I\n-        21: invokestatic  #7                  // Method org/mockito/Mockito.anyDouble:()D\n-        24: invokeinterface #8,  5            // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n-        29: invokestatic  #9                  // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n-        32: new           #10                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n+        12: invokestatic  #15                 // Method org/mockito/Mockito.any:()Ljava/lang/Object;\n+        15: checkcast     #19                 // class dev/langchain4j/data/embedding/Embedding\n+        18: invokestatic  #21                 // Method org/mockito/Mockito.anyInt:()I\n+        21: invokestatic  #25                 // Method org/mockito/Mockito.anyDouble:()D\n+        24: invokeinterface #29,  5           // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n+        29: invokestatic  #33                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+        32: new           #37                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n         35: dup\n-        36: ldc2_w        #11                 // double 0.9d\n-        39: invokestatic  #13                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-        42: ldc           #14                 // String id 1\n+        36: ldc2_w        #39                 // double 0.9d\n+        39: invokestatic  #41                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+        42: ldc           #47                 // String id 1\n         44: aconst_null\n-        45: ldc           #49                 // String content\n-        47: invokestatic  #16                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-        50: invokespecial #17                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n-        53: invokestatic  #50                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-        56: invokeinterface #23,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+        45: ldc           #165                // String content\n+        47: invokestatic  #51                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+        50: invokespecial #57                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+        53: invokestatic  #167                // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+        56: invokeinterface #72,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n         61: pop\n         62: iconst_3\n-        63: anewarray     #24                 // class java/lang/Float\n+        63: anewarray     #77                 // class java/lang/Float\n         66: dup\n         67: iconst_0\n         68: fconst_1\n-        69: invokestatic  #25                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n+        69: invokestatic  #79                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n         72: aastore\n         73: dup\n         74: iconst_1\n         75: fconst_2\n-        76: invokestatic  #25                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n+        76: invokestatic  #79                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n         79: aastore\n         80: dup\n         81: iconst_2\n-        82: ldc           #26                 // float 3.0f\n-        84: invokestatic  #25                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n+        82: ldc           #82                 // float 3.0f\n+        84: invokestatic  #79                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n         87: aastore\n-        88: invokestatic  #22                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-        91: invokestatic  #27                 // Method dev/langchain4j/data/embedding/Embedding.from:(Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n+        88: invokestatic  #66                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        91: invokestatic  #83                 // Method dev/langchain4j/data/embedding/Embedding.from:(Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n         94: astore_3\n-        95: ldc           #28                 // class dev/langchain4j/model/embedding/EmbeddingModel\n-        97: invokestatic  #3                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-       100: checkcast     #28                 // class dev/langchain4j/model/embedding/EmbeddingModel\n+        95: ldc           #86                 // class dev/langchain4j/model/embedding/EmbeddingModel\n+        97: invokestatic  #9                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+       100: checkcast     #86                 // class dev/langchain4j/model/embedding/EmbeddingModel\n        103: astore        4\n        105: aload         4\n-       107: invokestatic  #29                 // Method org/mockito/Mockito.anyString:()Ljava/lang/String;\n-       110: invokeinterface #30,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n-       115: invokestatic  #9                  // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       107: invokestatic  #88                 // Method org/mockito/Mockito.anyString:()Ljava/lang/String;\n+       110: invokeinterface #92,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+       115: invokestatic  #33                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        118: aload_3\n-       119: invokestatic  #31                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-       122: invokeinterface #23,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       119: invokestatic  #96                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+       122: invokeinterface #72,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        127: pop\n-       128: new           #32                 // class dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever\n+       128: new           #101                // class dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever\n        131: dup\n        132: aload_2\n        133: aload         4\n        135: iload_1\n-       136: invokespecial #51                 // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever.\"<init>\":(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/model/embedding/EmbeddingModel;I)V\n+       136: invokespecial #173                // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever.\"<init>\":(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/model/embedding/EmbeddingModel;I)V\n        139: astore        5\n-       141: ldc           #34                 // String query\n-       143: invokestatic  #35                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+       141: ldc           #106                // String query\n+       143: invokestatic  #108                // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n        146: astore        6\n        148: aload         5\n        150: aload         6\n-       152: invokeinterface #36,  2           // InterfaceMethod dev/langchain4j/rag/content/retriever/ContentRetriever.retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n+       152: invokeinterface #113,  2          // InterfaceMethod dev/langchain4j/rag/content/retriever/ContentRetriever.retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n        157: astore        7\n        159: aload         7\n-       161: invokestatic  #37                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+       161: invokestatic  #119                // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n        164: iconst_1\n-       165: anewarray     #38                 // class dev/langchain4j/rag/content/Content\n+       165: anewarray     #125                // class dev/langchain4j/rag/content/Content\n        168: dup\n        169: iconst_0\n-       170: ldc           #49                 // String content\n-       172: invokestatic  #39                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+       170: ldc           #165                // String content\n+       172: invokestatic  #127                // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n        175: aastore\n-       176: invokevirtual #40                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+       176: invokevirtual #130                // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n        179: pop\n        180: aload         4\n-       182: invokestatic  #41                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-       185: checkcast     #28                 // class dev/langchain4j/model/embedding/EmbeddingModel\n+       182: invokestatic  #136                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+       185: checkcast     #86                 // class dev/langchain4j/model/embedding/EmbeddingModel\n        188: aload         6\n-       190: invokevirtual #42                 // Method dev/langchain4j/rag/query/Query.text:()Ljava/lang/String;\n-       193: invokeinterface #30,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+       190: invokevirtual #140                // Method dev/langchain4j/rag/query/Query.text:()Ljava/lang/String;\n+       193: invokeinterface #92,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n        198: pop\n        199: iconst_1\n-       200: anewarray     #43                 // class java/lang/Object\n+       200: anewarray     #2                  // class java/lang/Object\n        203: dup\n        204: iconst_0\n        205: aload         4\n        207: aastore\n-       208: invokestatic  #44                 // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+       208: invokestatic  #143                // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n        211: aload_2\n-       212: invokestatic  #41                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-       215: checkcast     #2                  // class dev/langchain4j/store/embedding/EmbeddingStore\n+       212: invokestatic  #136                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+       215: checkcast     #7                  // class dev/langchain4j/store/embedding/EmbeddingStore\n        218: aload_3\n        219: iload_1\n        220: dconst_0\n-       221: invokeinterface #8,  5            // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n+       221: invokeinterface #29,  5           // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n        226: pop\n        227: iconst_1\n-       228: anewarray     #43                 // class java/lang/Object\n+       228: anewarray     #2                  // class java/lang/Object\n        231: dup\n        232: iconst_0\n        233: aload_2\n        234: aastore\n-       235: invokestatic  #44                 // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+       235: invokestatic  #143                // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n        238: return\n       LineNumberTable:\n         line 98: 0\n         line 100: 2\n         line 101: 11\n         line 102: 39\n         line 101: 53\n@@ -743,136 +743,136 @@\n           148      91     6 query   Ldev/langchain4j/rag/query/Query;\n           159      80     7 contents   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            11     228     2 embeddingStore   Ldev/langchain4j/store/embedding/EmbeddingStore<Ldev/langchain4j/data/segment/TextSegment;>;\n           159      80     7 contents   Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n     RuntimeVisibleAnnotations:\n-      0: #81()\n+      0: #213()\n         org.junit.jupiter.api.Test\n \n   void should_retrieve_with_custom_maxResults_builder();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=7, locals=8, args_size=1\n          0: iconst_1\n          1: istore_1\n-         2: ldc           #2                  // class dev/langchain4j/store/embedding/EmbeddingStore\n-         4: invokestatic  #3                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-         7: checkcast     #2                  // class dev/langchain4j/store/embedding/EmbeddingStore\n+         2: ldc           #7                  // class dev/langchain4j/store/embedding/EmbeddingStore\n+         4: invokestatic  #9                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+         7: checkcast     #7                  // class dev/langchain4j/store/embedding/EmbeddingStore\n         10: astore_2\n         11: aload_2\n-        12: invokestatic  #4                  // Method org/mockito/Mockito.any:()Ljava/lang/Object;\n-        15: checkcast     #5                  // class dev/langchain4j/data/embedding/Embedding\n-        18: invokestatic  #6                  // Method org/mockito/Mockito.anyInt:()I\n-        21: invokestatic  #7                  // Method org/mockito/Mockito.anyDouble:()D\n-        24: invokeinterface #8,  5            // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n-        29: invokestatic  #9                  // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n-        32: new           #10                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n+        12: invokestatic  #15                 // Method org/mockito/Mockito.any:()Ljava/lang/Object;\n+        15: checkcast     #19                 // class dev/langchain4j/data/embedding/Embedding\n+        18: invokestatic  #21                 // Method org/mockito/Mockito.anyInt:()I\n+        21: invokestatic  #25                 // Method org/mockito/Mockito.anyDouble:()D\n+        24: invokeinterface #29,  5           // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n+        29: invokestatic  #33                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+        32: new           #37                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n         35: dup\n-        36: ldc2_w        #11                 // double 0.9d\n-        39: invokestatic  #13                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-        42: ldc           #14                 // String id 1\n+        36: ldc2_w        #39                 // double 0.9d\n+        39: invokestatic  #41                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+        42: ldc           #47                 // String id 1\n         44: aconst_null\n-        45: ldc           #49                 // String content\n-        47: invokestatic  #16                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-        50: invokespecial #17                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n-        53: invokestatic  #50                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-        56: invokeinterface #23,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+        45: ldc           #165                // String content\n+        47: invokestatic  #51                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+        50: invokespecial #57                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+        53: invokestatic  #167                // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+        56: invokeinterface #72,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n         61: pop\n         62: iconst_3\n-        63: anewarray     #24                 // class java/lang/Float\n+        63: anewarray     #77                 // class java/lang/Float\n         66: dup\n         67: iconst_0\n         68: fconst_1\n-        69: invokestatic  #25                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n+        69: invokestatic  #79                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n         72: aastore\n         73: dup\n         74: iconst_1\n         75: fconst_2\n-        76: invokestatic  #25                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n+        76: invokestatic  #79                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n         79: aastore\n         80: dup\n         81: iconst_2\n-        82: ldc           #26                 // float 3.0f\n-        84: invokestatic  #25                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n+        82: ldc           #82                 // float 3.0f\n+        84: invokestatic  #79                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n         87: aastore\n-        88: invokestatic  #22                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-        91: invokestatic  #27                 // Method dev/langchain4j/data/embedding/Embedding.from:(Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n+        88: invokestatic  #66                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        91: invokestatic  #83                 // Method dev/langchain4j/data/embedding/Embedding.from:(Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n         94: astore_3\n-        95: ldc           #28                 // class dev/langchain4j/model/embedding/EmbeddingModel\n-        97: invokestatic  #3                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-       100: checkcast     #28                 // class dev/langchain4j/model/embedding/EmbeddingModel\n+        95: ldc           #86                 // class dev/langchain4j/model/embedding/EmbeddingModel\n+        97: invokestatic  #9                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+       100: checkcast     #86                 // class dev/langchain4j/model/embedding/EmbeddingModel\n        103: astore        4\n        105: aload         4\n-       107: invokestatic  #29                 // Method org/mockito/Mockito.anyString:()Ljava/lang/String;\n-       110: invokeinterface #30,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n-       115: invokestatic  #9                  // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       107: invokestatic  #88                 // Method org/mockito/Mockito.anyString:()Ljava/lang/String;\n+       110: invokeinterface #92,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+       115: invokestatic  #33                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        118: aload_3\n-       119: invokestatic  #31                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-       122: invokeinterface #23,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       119: invokestatic  #96                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+       122: invokeinterface #72,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        127: pop\n-       128: invokestatic  #45                 // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever.builder:()Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n+       128: invokestatic  #147                // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever.builder:()Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n        131: aload_2\n-       132: invokevirtual #46                 // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.embeddingStore:(Ldev/langchain4j/store/embedding/EmbeddingStore;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n+       132: invokevirtual #151                // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.embeddingStore:(Ldev/langchain4j/store/embedding/EmbeddingStore;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n        135: aload         4\n-       137: invokevirtual #47                 // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.embeddingModel:(Ldev/langchain4j/model/embedding/EmbeddingModel;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n+       137: invokevirtual #157                // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.embeddingModel:(Ldev/langchain4j/model/embedding/EmbeddingModel;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n        140: iload_1\n-       141: invokestatic  #52                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-       144: invokevirtual #53                 // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.maxResults:(Ljava/lang/Integer;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n-       147: invokevirtual #48                 // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.build:()Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever;\n+       141: invokestatic  #176                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       144: invokevirtual #181                // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.maxResults:(Ljava/lang/Integer;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n+       147: invokevirtual #161                // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.build:()Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever;\n        150: astore        5\n-       152: ldc           #34                 // String query\n-       154: invokestatic  #35                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+       152: ldc           #106                // String query\n+       154: invokestatic  #108                // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n        157: astore        6\n        159: aload         5\n        161: aload         6\n-       163: invokeinterface #36,  2           // InterfaceMethod dev/langchain4j/rag/content/retriever/ContentRetriever.retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n+       163: invokeinterface #113,  2          // InterfaceMethod dev/langchain4j/rag/content/retriever/ContentRetriever.retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n        168: astore        7\n        170: aload         7\n-       172: invokestatic  #37                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+       172: invokestatic  #119                // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n        175: iconst_1\n-       176: anewarray     #38                 // class dev/langchain4j/rag/content/Content\n+       176: anewarray     #125                // class dev/langchain4j/rag/content/Content\n        179: dup\n        180: iconst_0\n-       181: ldc           #49                 // String content\n-       183: invokestatic  #39                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+       181: ldc           #165                // String content\n+       183: invokestatic  #127                // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n        186: aastore\n-       187: invokevirtual #40                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+       187: invokevirtual #130                // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n        190: pop\n        191: aload         4\n-       193: invokestatic  #41                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-       196: checkcast     #28                 // class dev/langchain4j/model/embedding/EmbeddingModel\n+       193: invokestatic  #136                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+       196: checkcast     #86                 // class dev/langchain4j/model/embedding/EmbeddingModel\n        199: aload         6\n-       201: invokevirtual #42                 // Method dev/langchain4j/rag/query/Query.text:()Ljava/lang/String;\n-       204: invokeinterface #30,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+       201: invokevirtual #140                // Method dev/langchain4j/rag/query/Query.text:()Ljava/lang/String;\n+       204: invokeinterface #92,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n        209: pop\n        210: iconst_1\n-       211: anewarray     #43                 // class java/lang/Object\n+       211: anewarray     #2                  // class java/lang/Object\n        214: dup\n        215: iconst_0\n        216: aload         4\n        218: aastore\n-       219: invokestatic  #44                 // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+       219: invokestatic  #143                // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n        222: aload_2\n-       223: invokestatic  #41                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-       226: checkcast     #2                  // class dev/langchain4j/store/embedding/EmbeddingStore\n+       223: invokestatic  #136                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+       226: checkcast     #7                  // class dev/langchain4j/store/embedding/EmbeddingStore\n        229: aload_3\n        230: iload_1\n        231: dconst_0\n-       232: invokeinterface #8,  5            // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n+       232: invokeinterface #29,  5           // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n        237: pop\n        238: iconst_1\n-       239: anewarray     #43                 // class java/lang/Object\n+       239: anewarray     #2                  // class java/lang/Object\n        242: dup\n        243: iconst_0\n        244: aload_2\n        245: aastore\n-       246: invokestatic  #44                 // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+       246: invokestatic  #143                // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n        249: return\n       LineNumberTable:\n         line 134: 0\n         line 136: 2\n         line 137: 11\n         line 138: 39\n         line 137: 53\n@@ -903,157 +903,157 @@\n           159      91     6 query   Ldev/langchain4j/rag/query/Query;\n           170      80     7 contents   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            11     239     2 embeddingStore   Ldev/langchain4j/store/embedding/EmbeddingStore<Ldev/langchain4j/data/segment/TextSegment;>;\n           170      80     7 contents   Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n     RuntimeVisibleAnnotations:\n-      0: #81()\n+      0: #213()\n         org.junit.jupiter.api.Test\n \n   void should_retrieve_with_custom_minScore();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=10, locals=9, args_size=1\n-         0: ldc2_w        #18                 // double 0.7d\n+         0: ldc2_w        #60                 // double 0.7d\n          3: dstore_1\n-         4: ldc           #2                  // class dev/langchain4j/store/embedding/EmbeddingStore\n-         6: invokestatic  #3                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-         9: checkcast     #2                  // class dev/langchain4j/store/embedding/EmbeddingStore\n+         4: ldc           #7                  // class dev/langchain4j/store/embedding/EmbeddingStore\n+         6: invokestatic  #9                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+         9: checkcast     #7                  // class dev/langchain4j/store/embedding/EmbeddingStore\n         12: astore_3\n         13: aload_3\n-        14: invokestatic  #4                  // Method org/mockito/Mockito.any:()Ljava/lang/Object;\n-        17: checkcast     #5                  // class dev/langchain4j/data/embedding/Embedding\n-        20: invokestatic  #6                  // Method org/mockito/Mockito.anyInt:()I\n-        23: invokestatic  #7                  // Method org/mockito/Mockito.anyDouble:()D\n-        26: invokeinterface #8,  5            // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n-        31: invokestatic  #9                  // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+        14: invokestatic  #15                 // Method org/mockito/Mockito.any:()Ljava/lang/Object;\n+        17: checkcast     #19                 // class dev/langchain4j/data/embedding/Embedding\n+        20: invokestatic  #21                 // Method org/mockito/Mockito.anyInt:()I\n+        23: invokestatic  #25                 // Method org/mockito/Mockito.anyDouble:()D\n+        26: invokeinterface #29,  5           // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n+        31: invokestatic  #33                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n         34: iconst_2\n-        35: anewarray     #10                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n+        35: anewarray     #37                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n         38: dup\n         39: iconst_0\n-        40: new           #10                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n+        40: new           #37                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n         43: dup\n-        44: ldc2_w        #11                 // double 0.9d\n-        47: invokestatic  #13                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-        50: ldc           #14                 // String id 1\n+        44: ldc2_w        #39                 // double 0.9d\n+        47: invokestatic  #41                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+        50: ldc           #47                 // String id 1\n         52: aconst_null\n-        53: ldc           #15                 // String content 1\n-        55: invokestatic  #16                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-        58: invokespecial #17                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+        53: ldc           #49                 // String content 1\n+        55: invokestatic  #51                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+        58: invokespecial #57                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n         61: aastore\n         62: dup\n         63: iconst_1\n-        64: new           #10                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n+        64: new           #37                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n         67: dup\n-        68: ldc2_w        #18                 // double 0.7d\n-        71: invokestatic  #13                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-        74: ldc           #20                 // String id 2\n+        68: ldc2_w        #60                 // double 0.7d\n+        71: invokestatic  #41                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+        74: ldc           #62                 // String id 2\n         76: aconst_null\n-        77: ldc           #21                 // String content 2\n-        79: invokestatic  #16                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-        82: invokespecial #17                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+        77: ldc           #64                 // String content 2\n+        79: invokestatic  #51                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+        82: invokespecial #57                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n         85: aastore\n-        86: invokestatic  #22                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-        89: invokeinterface #23,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+        86: invokestatic  #66                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        89: invokeinterface #72,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n         94: pop\n         95: iconst_3\n-        96: anewarray     #24                 // class java/lang/Float\n+        96: anewarray     #77                 // class java/lang/Float\n         99: dup\n        100: iconst_0\n        101: fconst_1\n-       102: invokestatic  #25                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n+       102: invokestatic  #79                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n        105: aastore\n        106: dup\n        107: iconst_1\n        108: fconst_2\n-       109: invokestatic  #25                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n+       109: invokestatic  #79                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n        112: aastore\n        113: dup\n        114: iconst_2\n-       115: ldc           #26                 // float 3.0f\n-       117: invokestatic  #25                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n+       115: ldc           #82                 // float 3.0f\n+       117: invokestatic  #79                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n        120: aastore\n-       121: invokestatic  #22                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       124: invokestatic  #27                 // Method dev/langchain4j/data/embedding/Embedding.from:(Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n+       121: invokestatic  #66                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       124: invokestatic  #83                 // Method dev/langchain4j/data/embedding/Embedding.from:(Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n        127: astore        4\n-       129: ldc           #28                 // class dev/langchain4j/model/embedding/EmbeddingModel\n-       131: invokestatic  #3                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-       134: checkcast     #28                 // class dev/langchain4j/model/embedding/EmbeddingModel\n+       129: ldc           #86                 // class dev/langchain4j/model/embedding/EmbeddingModel\n+       131: invokestatic  #9                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+       134: checkcast     #86                 // class dev/langchain4j/model/embedding/EmbeddingModel\n        137: astore        5\n        139: aload         5\n-       141: invokestatic  #29                 // Method org/mockito/Mockito.anyString:()Ljava/lang/String;\n-       144: invokeinterface #30,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n-       149: invokestatic  #9                  // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       141: invokestatic  #88                 // Method org/mockito/Mockito.anyString:()Ljava/lang/String;\n+       144: invokeinterface #92,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+       149: invokestatic  #33                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        152: aload         4\n-       154: invokestatic  #31                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-       157: invokeinterface #23,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       154: invokestatic  #96                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+       157: invokeinterface #72,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        162: pop\n-       163: new           #32                 // class dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever\n+       163: new           #101                // class dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever\n        166: dup\n        167: aload_3\n        168: aload         5\n        170: aconst_null\n        171: dload_1\n-       172: invokestatic  #13                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-       175: invokespecial #54                 // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever.\"<init>\":(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/model/embedding/EmbeddingModel;Ljava/lang/Integer;Ljava/lang/Double;)V\n+       172: invokestatic  #41                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+       175: invokespecial #185                // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever.\"<init>\":(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/model/embedding/EmbeddingModel;Ljava/lang/Integer;Ljava/lang/Double;)V\n        178: astore        6\n-       180: ldc           #34                 // String query\n-       182: invokestatic  #35                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+       180: ldc           #106                // String query\n+       182: invokestatic  #108                // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n        185: astore        7\n        187: aload         6\n        189: aload         7\n-       191: invokeinterface #36,  2           // InterfaceMethod dev/langchain4j/rag/content/retriever/ContentRetriever.retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n+       191: invokeinterface #113,  2          // InterfaceMethod dev/langchain4j/rag/content/retriever/ContentRetriever.retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n        196: astore        8\n        198: aload         8\n-       200: invokestatic  #37                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+       200: invokestatic  #119                // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n        203: iconst_2\n-       204: anewarray     #38                 // class dev/langchain4j/rag/content/Content\n+       204: anewarray     #125                // class dev/langchain4j/rag/content/Content\n        207: dup\n        208: iconst_0\n-       209: ldc           #15                 // String content 1\n-       211: invokestatic  #39                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+       209: ldc           #49                 // String content 1\n+       211: invokestatic  #127                // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n        214: aastore\n        215: dup\n        216: iconst_1\n-       217: ldc           #21                 // String content 2\n-       219: invokestatic  #39                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+       217: ldc           #64                 // String content 2\n+       219: invokestatic  #127                // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n        222: aastore\n-       223: invokevirtual #40                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+       223: invokevirtual #130                // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n        226: pop\n        227: aload         5\n-       229: invokestatic  #41                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-       232: checkcast     #28                 // class dev/langchain4j/model/embedding/EmbeddingModel\n+       229: invokestatic  #136                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+       232: checkcast     #86                 // class dev/langchain4j/model/embedding/EmbeddingModel\n        235: aload         7\n-       237: invokevirtual #42                 // Method dev/langchain4j/rag/query/Query.text:()Ljava/lang/String;\n-       240: invokeinterface #30,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+       237: invokevirtual #140                // Method dev/langchain4j/rag/query/Query.text:()Ljava/lang/String;\n+       240: invokeinterface #92,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n        245: pop\n        246: iconst_1\n-       247: anewarray     #43                 // class java/lang/Object\n+       247: anewarray     #2                  // class java/lang/Object\n        250: dup\n        251: iconst_0\n        252: aload         5\n        254: aastore\n-       255: invokestatic  #44                 // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+       255: invokestatic  #143                // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n        258: aload_3\n-       259: invokestatic  #41                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-       262: checkcast     #2                  // class dev/langchain4j/store/embedding/EmbeddingStore\n+       259: invokestatic  #136                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+       262: checkcast     #7                  // class dev/langchain4j/store/embedding/EmbeddingStore\n        265: aload         4\n        267: iconst_3\n        268: dload_1\n-       269: invokeinterface #8,  5            // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n+       269: invokeinterface #29,  5           // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n        274: pop\n        275: iconst_1\n-       276: anewarray     #43                 // class java/lang/Object\n+       276: anewarray     #2                  // class java/lang/Object\n        279: dup\n        280: iconst_0\n        281: aload_3\n        282: aastore\n-       283: invokestatic  #44                 // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+       283: invokestatic  #143                // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n        286: return\n       LineNumberTable:\n         line 170: 0\n         line 172: 4\n         line 173: 13\n         line 174: 47\n         line 175: 71\n@@ -1085,158 +1085,158 @@\n           187     100     7 query   Ldev/langchain4j/rag/query/Query;\n           198      89     8 contents   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            13     274     3 embeddingStore   Ldev/langchain4j/store/embedding/EmbeddingStore<Ldev/langchain4j/data/segment/TextSegment;>;\n           198      89     8 contents   Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n     RuntimeVisibleAnnotations:\n-      0: #81()\n+      0: #213()\n         org.junit.jupiter.api.Test\n \n   void should_retrieve_with_custom_minScore_builder();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=10, locals=9, args_size=1\n-         0: ldc2_w        #18                 // double 0.7d\n+         0: ldc2_w        #60                 // double 0.7d\n          3: dstore_1\n-         4: ldc           #2                  // class dev/langchain4j/store/embedding/EmbeddingStore\n-         6: invokestatic  #3                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-         9: checkcast     #2                  // class dev/langchain4j/store/embedding/EmbeddingStore\n+         4: ldc           #7                  // class dev/langchain4j/store/embedding/EmbeddingStore\n+         6: invokestatic  #9                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+         9: checkcast     #7                  // class dev/langchain4j/store/embedding/EmbeddingStore\n         12: astore_3\n         13: aload_3\n-        14: invokestatic  #4                  // Method org/mockito/Mockito.any:()Ljava/lang/Object;\n-        17: checkcast     #5                  // class dev/langchain4j/data/embedding/Embedding\n-        20: invokestatic  #6                  // Method org/mockito/Mockito.anyInt:()I\n-        23: invokestatic  #7                  // Method org/mockito/Mockito.anyDouble:()D\n-        26: invokeinterface #8,  5            // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n-        31: invokestatic  #9                  // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+        14: invokestatic  #15                 // Method org/mockito/Mockito.any:()Ljava/lang/Object;\n+        17: checkcast     #19                 // class dev/langchain4j/data/embedding/Embedding\n+        20: invokestatic  #21                 // Method org/mockito/Mockito.anyInt:()I\n+        23: invokestatic  #25                 // Method org/mockito/Mockito.anyDouble:()D\n+        26: invokeinterface #29,  5           // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n+        31: invokestatic  #33                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n         34: iconst_2\n-        35: anewarray     #10                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n+        35: anewarray     #37                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n         38: dup\n         39: iconst_0\n-        40: new           #10                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n+        40: new           #37                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n         43: dup\n-        44: ldc2_w        #11                 // double 0.9d\n-        47: invokestatic  #13                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-        50: ldc           #14                 // String id 1\n+        44: ldc2_w        #39                 // double 0.9d\n+        47: invokestatic  #41                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+        50: ldc           #47                 // String id 1\n         52: aconst_null\n-        53: ldc           #15                 // String content 1\n-        55: invokestatic  #16                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-        58: invokespecial #17                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+        53: ldc           #49                 // String content 1\n+        55: invokestatic  #51                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+        58: invokespecial #57                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n         61: aastore\n         62: dup\n         63: iconst_1\n-        64: new           #10                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n+        64: new           #37                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n         67: dup\n-        68: ldc2_w        #18                 // double 0.7d\n-        71: invokestatic  #13                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-        74: ldc           #20                 // String id 2\n+        68: ldc2_w        #60                 // double 0.7d\n+        71: invokestatic  #41                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+        74: ldc           #62                 // String id 2\n         76: aconst_null\n-        77: ldc           #21                 // String content 2\n-        79: invokestatic  #16                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-        82: invokespecial #17                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+        77: ldc           #64                 // String content 2\n+        79: invokestatic  #51                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+        82: invokespecial #57                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n         85: aastore\n-        86: invokestatic  #22                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-        89: invokeinterface #23,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+        86: invokestatic  #66                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        89: invokeinterface #72,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n         94: pop\n         95: iconst_3\n-        96: anewarray     #24                 // class java/lang/Float\n+        96: anewarray     #77                 // class java/lang/Float\n         99: dup\n        100: iconst_0\n        101: fconst_1\n-       102: invokestatic  #25                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n+       102: invokestatic  #79                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n        105: aastore\n        106: dup\n        107: iconst_1\n        108: fconst_2\n-       109: invokestatic  #25                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n+       109: invokestatic  #79                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n        112: aastore\n        113: dup\n        114: iconst_2\n-       115: ldc           #26                 // float 3.0f\n-       117: invokestatic  #25                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n+       115: ldc           #82                 // float 3.0f\n+       117: invokestatic  #79                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n        120: aastore\n-       121: invokestatic  #22                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       124: invokestatic  #27                 // Method dev/langchain4j/data/embedding/Embedding.from:(Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n+       121: invokestatic  #66                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       124: invokestatic  #83                 // Method dev/langchain4j/data/embedding/Embedding.from:(Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n        127: astore        4\n-       129: ldc           #28                 // class dev/langchain4j/model/embedding/EmbeddingModel\n-       131: invokestatic  #3                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-       134: checkcast     #28                 // class dev/langchain4j/model/embedding/EmbeddingModel\n+       129: ldc           #86                 // class dev/langchain4j/model/embedding/EmbeddingModel\n+       131: invokestatic  #9                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+       134: checkcast     #86                 // class dev/langchain4j/model/embedding/EmbeddingModel\n        137: astore        5\n        139: aload         5\n-       141: invokestatic  #29                 // Method org/mockito/Mockito.anyString:()Ljava/lang/String;\n-       144: invokeinterface #30,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n-       149: invokestatic  #9                  // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       141: invokestatic  #88                 // Method org/mockito/Mockito.anyString:()Ljava/lang/String;\n+       144: invokeinterface #92,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+       149: invokestatic  #33                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        152: aload         4\n-       154: invokestatic  #31                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-       157: invokeinterface #23,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       154: invokestatic  #96                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+       157: invokeinterface #72,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        162: pop\n-       163: invokestatic  #45                 // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever.builder:()Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n+       163: invokestatic  #147                // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever.builder:()Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n        166: aload_3\n-       167: invokevirtual #46                 // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.embeddingStore:(Ldev/langchain4j/store/embedding/EmbeddingStore;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n+       167: invokevirtual #151                // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.embeddingStore:(Ldev/langchain4j/store/embedding/EmbeddingStore;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n        170: aload         5\n-       172: invokevirtual #47                 // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.embeddingModel:(Ldev/langchain4j/model/embedding/EmbeddingModel;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n+       172: invokevirtual #157                // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.embeddingModel:(Ldev/langchain4j/model/embedding/EmbeddingModel;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n        175: dload_1\n-       176: invokestatic  #13                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-       179: invokevirtual #55                 // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.minScore:(Ljava/lang/Double;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n-       182: invokevirtual #48                 // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.build:()Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever;\n+       176: invokestatic  #41                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+       179: invokevirtual #188                // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.minScore:(Ljava/lang/Double;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n+       182: invokevirtual #161                // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.build:()Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever;\n        185: astore        6\n-       187: ldc           #34                 // String query\n-       189: invokestatic  #35                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+       187: ldc           #106                // String query\n+       189: invokestatic  #108                // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n        192: astore        7\n        194: aload         6\n        196: aload         7\n-       198: invokeinterface #36,  2           // InterfaceMethod dev/langchain4j/rag/content/retriever/ContentRetriever.retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n+       198: invokeinterface #113,  2          // InterfaceMethod dev/langchain4j/rag/content/retriever/ContentRetriever.retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n        203: astore        8\n        205: aload         8\n-       207: invokestatic  #37                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+       207: invokestatic  #119                // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n        210: iconst_2\n-       211: anewarray     #38                 // class dev/langchain4j/rag/content/Content\n+       211: anewarray     #125                // class dev/langchain4j/rag/content/Content\n        214: dup\n        215: iconst_0\n-       216: ldc           #15                 // String content 1\n-       218: invokestatic  #39                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+       216: ldc           #49                 // String content 1\n+       218: invokestatic  #127                // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n        221: aastore\n        222: dup\n        223: iconst_1\n-       224: ldc           #21                 // String content 2\n-       226: invokestatic  #39                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+       224: ldc           #64                 // String content 2\n+       226: invokestatic  #127                // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n        229: aastore\n-       230: invokevirtual #40                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+       230: invokevirtual #130                // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n        233: pop\n        234: aload         5\n-       236: invokestatic  #41                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-       239: checkcast     #28                 // class dev/langchain4j/model/embedding/EmbeddingModel\n+       236: invokestatic  #136                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+       239: checkcast     #86                 // class dev/langchain4j/model/embedding/EmbeddingModel\n        242: aload         7\n-       244: invokevirtual #42                 // Method dev/langchain4j/rag/query/Query.text:()Ljava/lang/String;\n-       247: invokeinterface #30,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+       244: invokevirtual #140                // Method dev/langchain4j/rag/query/Query.text:()Ljava/lang/String;\n+       247: invokeinterface #92,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n        252: pop\n        253: iconst_1\n-       254: anewarray     #43                 // class java/lang/Object\n+       254: anewarray     #2                  // class java/lang/Object\n        257: dup\n        258: iconst_0\n        259: aload         5\n        261: aastore\n-       262: invokestatic  #44                 // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+       262: invokestatic  #143                // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n        265: aload_3\n-       266: invokestatic  #41                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-       269: checkcast     #2                  // class dev/langchain4j/store/embedding/EmbeddingStore\n+       266: invokestatic  #136                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+       269: checkcast     #7                  // class dev/langchain4j/store/embedding/EmbeddingStore\n        272: aload         4\n        274: iconst_3\n        275: dload_1\n-       276: invokeinterface #8,  5            // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n+       276: invokeinterface #29,  5           // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n        281: pop\n        282: iconst_1\n-       283: anewarray     #43                 // class java/lang/Object\n+       283: anewarray     #2                  // class java/lang/Object\n        286: dup\n        287: iconst_0\n        288: aload_3\n        289: aastore\n-       290: invokestatic  #44                 // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+       290: invokestatic  #143                // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n        293: return\n       LineNumberTable:\n         line 211: 0\n         line 213: 4\n         line 214: 13\n         line 215: 47\n         line 216: 71\n@@ -1271,13 +1271,13 @@\n           194     100     7 query   Ldev/langchain4j/rag/query/Query;\n           205      89     8 contents   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            13     281     3 embeddingStore   Ldev/langchain4j/store/embedding/EmbeddingStore<Ldev/langchain4j/data/segment/TextSegment;>;\n           205      89     8 contents   Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n     RuntimeVisibleAnnotations:\n-      0: #81()\n+      0: #213()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"EmbeddingStoreContentRetrieverTest.java\"\n InnerClasses:\n-  public static #208= #142 of #32;        // EmbeddingStoreContentRetrieverBuilder=class dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder of class dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever\n+  public static #224= #152 of #101;       // EmbeddingStoreContentRetrieverBuilder=class dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder of class dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever\n"}]}, {"source1": "dev/langchain4j/rag/query/MetadataTest.class", "source2": "dev/langchain4j/rag/query/MetadataTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,150 +1,150 @@\n-  SHA-256 checksum eadecc4bab15c6755d00fddf5fd85b4cb5358de04863939f91b82044f0fa0e15\n+  SHA-256 checksum b84f2327f83129b1a5fc15fba5bed02e8f15c9d811111b67391b0b65912baabe\n   Compiled from \"MetadataTest.java\"\n class dev.langchain4j.rag.query.MetadataTest\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #31                         // dev/langchain4j/rag/query/MetadataTest\n-  super_class: #32                        // java/lang/Object\n+  this_class: #109                        // dev/langchain4j/rag/query/MetadataTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 0, methods: 4, attributes: 1\n Constant pool:\n-    #1 = Methodref          #32.#62       // java/lang/Object.\"<init>\":()V\n-    #2 = String             #63           // user message\n-    #3 = Methodref          #64.#65       // dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-    #4 = Class              #66           // dev/langchain4j/data/message/ChatMessage\n-    #5 = String             #67           // Hello\n-    #6 = String             #68           // Hi, how can I help you today?\n-    #7 = Methodref          #69.#70       // dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n-    #8 = Methodref          #71.#72       // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-    #9 = Methodref          #73.#74       // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-   #10 = Methodref          #75.#76       // dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n-   #11 = Methodref          #75.#77       // dev/langchain4j/rag/query/Metadata.userMessage:()Ldev/langchain4j/data/message/UserMessage;\n-   #12 = Methodref          #78.#79       // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #13 = Methodref          #23.#80       // org/assertj/core/api/ObjectAssert.isSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #14 = Methodref          #75.#81       // dev/langchain4j/rag/query/Metadata.chatMemoryId:()Ljava/lang/Object;\n-   #15 = Methodref          #75.#82       // dev/langchain4j/rag/query/Metadata.chatMemory:()Ljava/util/List;\n-   #16 = Methodref          #78.#83       // org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-   #17 = Methodref          #84.#85       // org/assertj/core/api/ListAssert.isNotSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n-   #18 = Methodref          #84.#86       // org/assertj/core/api/ListAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n-   #19 = String             #87           // another user message\n-   #20 = String             #88           // Bye\n-   #21 = String             #89           // Bye-bye\n-   #22 = Methodref          #23.#90       // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #23 = Class              #91           // org/assertj/core/api/ObjectAssert\n-   #24 = Methodref          #23.#92       // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #25 = Methodref          #23.#93       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #26 = Methodref          #23.#94       // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #27 = Methodref          #75.#95       // dev/langchain4j/rag/query/Metadata.toString:()Ljava/lang/String;\n-   #28 = Methodref          #78.#96       // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #29 = String             #97           // Metadata { userMessage = UserMessage { name = null contents = [TextContent { text = \\\"user message\\\" }] }, chatMemoryId = 42, chatMemory = [UserMessage { name = null contents = [TextContent { text = \\\"Hello\\\" }] }, AiMessage { text = \\\"Hi, how can I help you today?\\\" toolExecutionRequests = null }] }\n-   #30 = Methodref          #98.#99       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #31 = Class              #100          // dev/langchain4j/rag/query/MetadataTest\n-   #32 = Class              #101          // java/lang/Object\n-   #33 = Utf8               <init>\n-   #34 = Utf8               ()V\n-   #35 = Utf8               Code\n-   #36 = Utf8               LineNumberTable\n-   #37 = Utf8               LocalVariableTable\n-   #38 = Utf8               this\n-   #39 = Utf8               Ldev/langchain4j/rag/query/MetadataTest;\n-   #40 = Utf8               test_create\n-   #41 = Utf8               userMessage\n-   #42 = Utf8               Ldev/langchain4j/data/message/UserMessage;\n-   #43 = Utf8               chatMemoryId\n-   #44 = Utf8               I\n-   #45 = Utf8               chatMemory\n-   #46 = Utf8               Ljava/util/List;\n-   #47 = Utf8               metadata\n-   #48 = Utf8               Ldev/langchain4j/rag/query/Metadata;\n-   #49 = Utf8               LocalVariableTypeTable\n-   #50 = Utf8               Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n-   #51 = Utf8               RuntimeVisibleAnnotations\n-   #52 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #53 = Utf8               test_equals_hashCode\n-   #54 = Utf8               metadata1\n-   #55 = Utf8               metadata2\n-   #56 = Utf8               metadata3\n-   #57 = Utf8               test_toString\n-   #58 = Utf8               toString\n-   #59 = Utf8               Ljava/lang/String;\n-   #60 = Utf8               SourceFile\n-   #61 = Utf8               MetadataTest.java\n-   #62 = NameAndType        #33:#34       // \"<init>\":()V\n-   #63 = Utf8               user message\n-   #64 = Class              #102          // dev/langchain4j/data/message/UserMessage\n-   #65 = NameAndType        #103:#104     // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-   #66 = Utf8               dev/langchain4j/data/message/ChatMessage\n-   #67 = Utf8               Hello\n-   #68 = Utf8               Hi, how can I help you today?\n-   #69 = Class              #105          // dev/langchain4j/data/message/AiMessage\n-   #70 = NameAndType        #103:#106     // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n-   #71 = Class              #107          // java/util/Arrays\n-   #72 = NameAndType        #108:#109     // asList:([Ljava/lang/Object;)Ljava/util/List;\n-   #73 = Class              #110          // java/lang/Integer\n-   #74 = NameAndType        #111:#112     // valueOf:(I)Ljava/lang/Integer;\n-   #75 = Class              #113          // dev/langchain4j/rag/query/Metadata\n-   #76 = NameAndType        #103:#114     // from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n-   #77 = NameAndType        #41:#115      // userMessage:()Ldev/langchain4j/data/message/UserMessage;\n-   #78 = Class              #116          // org/assertj/core/api/Assertions\n-   #79 = NameAndType        #117:#118     // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #80 = NameAndType        #119:#120     // isSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #81 = NameAndType        #43:#121      // chatMemoryId:()Ljava/lang/Object;\n-   #82 = NameAndType        #45:#122      // chatMemory:()Ljava/util/List;\n-   #83 = NameAndType        #117:#123     // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-   #84 = Class              #124          // org/assertj/core/api/ListAssert\n-   #85 = NameAndType        #125:#126     // isNotSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n-   #86 = NameAndType        #127:#126     // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n-   #87 = Utf8               another user message\n-   #88 = Utf8               Bye\n-   #89 = Utf8               Bye-bye\n-   #90 = NameAndType        #128:#120     // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #91 = Utf8               org/assertj/core/api/ObjectAssert\n-   #92 = NameAndType        #129:#120     // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #93 = NameAndType        #127:#120     // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #94 = NameAndType        #130:#120     // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #95 = NameAndType        #58:#131      // toString:()Ljava/lang/String;\n-   #96 = NameAndType        #117:#132     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #97 = Utf8               Metadata { userMessage = UserMessage { name = null contents = [TextContent { text = \\\"user message\\\" }] }, chatMemoryId = 42, chatMemory = [UserMessage { name = null contents = [TextContent { text = \\\"Hello\\\" }] }, AiMessage { text = \\\"Hi, how can I help you today?\\\" toolExecutionRequests = null }] }\n-   #98 = Class              #133          // org/assertj/core/api/AbstractStringAssert\n-   #99 = NameAndType        #127:#132     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #100 = Utf8               dev/langchain4j/rag/query/MetadataTest\n-  #101 = Utf8               java/lang/Object\n-  #102 = Utf8               dev/langchain4j/data/message/UserMessage\n-  #103 = Utf8               from\n-  #104 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-  #105 = Utf8               dev/langchain4j/data/message/AiMessage\n-  #106 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n-  #107 = Utf8               java/util/Arrays\n-  #108 = Utf8               asList\n-  #109 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n-  #110 = Utf8               java/lang/Integer\n-  #111 = Utf8               valueOf\n-  #112 = Utf8               (I)Ljava/lang/Integer;\n-  #113 = Utf8               dev/langchain4j/rag/query/Metadata\n-  #114 = Utf8               (Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n-  #115 = Utf8               ()Ldev/langchain4j/data/message/UserMessage;\n-  #116 = Utf8               org/assertj/core/api/Assertions\n-  #117 = Utf8               assertThat\n-  #118 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #119 = Utf8               isSameAs\n-  #120 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #121 = Utf8               ()Ljava/lang/Object;\n-  #122 = Utf8               ()Ljava/util/List;\n-  #123 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #124 = Utf8               org/assertj/core/api/ListAssert\n-  #125 = Utf8               isNotSameAs\n-  #126 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n-  #127 = Utf8               isEqualTo\n-  #128 = Utf8               isNotEqualTo\n-  #129 = Utf8               doesNotHaveSameHashCodeAs\n-  #130 = Utf8               hasSameHashCodeAs\n-  #131 = Utf8               ()Ljava/lang/String;\n-  #132 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #133 = Utf8               org/assertj/core/api/AbstractStringAssert\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = String             #8            // user message\n+    #8 = Utf8               user message\n+    #9 = Methodref          #10.#11       // dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+   #10 = Class              #12           // dev/langchain4j/data/message/UserMessage\n+   #11 = NameAndType        #13:#14       // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+   #12 = Utf8               dev/langchain4j/data/message/UserMessage\n+   #13 = Utf8               from\n+   #14 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+   #15 = Class              #16           // dev/langchain4j/data/message/ChatMessage\n+   #16 = Utf8               dev/langchain4j/data/message/ChatMessage\n+   #17 = String             #18           // Hello\n+   #18 = Utf8               Hello\n+   #19 = String             #20           // Hi, how can I help you today?\n+   #20 = Utf8               Hi, how can I help you today?\n+   #21 = Methodref          #22.#23       // dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+   #22 = Class              #24           // dev/langchain4j/data/message/AiMessage\n+   #23 = NameAndType        #13:#25       // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+   #24 = Utf8               dev/langchain4j/data/message/AiMessage\n+   #25 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+   #26 = Methodref          #27.#28       // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+   #27 = Class              #29           // java/util/Arrays\n+   #28 = NameAndType        #30:#31       // asList:([Ljava/lang/Object;)Ljava/util/List;\n+   #29 = Utf8               java/util/Arrays\n+   #30 = Utf8               asList\n+   #31 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n+   #32 = Methodref          #33.#34       // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+   #33 = Class              #35           // java/lang/Integer\n+   #34 = NameAndType        #36:#37       // valueOf:(I)Ljava/lang/Integer;\n+   #35 = Utf8               java/lang/Integer\n+   #36 = Utf8               valueOf\n+   #37 = Utf8               (I)Ljava/lang/Integer;\n+   #38 = Methodref          #39.#40       // dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n+   #39 = Class              #41           // dev/langchain4j/rag/query/Metadata\n+   #40 = NameAndType        #13:#42       // from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n+   #41 = Utf8               dev/langchain4j/rag/query/Metadata\n+   #42 = Utf8               (Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n+   #43 = Methodref          #39.#44       // dev/langchain4j/rag/query/Metadata.userMessage:()Ldev/langchain4j/data/message/UserMessage;\n+   #44 = NameAndType        #45:#46       // userMessage:()Ldev/langchain4j/data/message/UserMessage;\n+   #45 = Utf8               userMessage\n+   #46 = Utf8               ()Ldev/langchain4j/data/message/UserMessage;\n+   #47 = Methodref          #48.#49       // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #48 = Class              #50           // org/assertj/core/api/Assertions\n+   #49 = NameAndType        #51:#52       // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #50 = Utf8               org/assertj/core/api/Assertions\n+   #51 = Utf8               assertThat\n+   #52 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #53 = Methodref          #54.#55       // org/assertj/core/api/ObjectAssert.isSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #54 = Class              #56           // org/assertj/core/api/ObjectAssert\n+   #55 = NameAndType        #57:#58       // isSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #56 = Utf8               org/assertj/core/api/ObjectAssert\n+   #57 = Utf8               isSameAs\n+   #58 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #59 = Methodref          #39.#60       // dev/langchain4j/rag/query/Metadata.chatMemoryId:()Ljava/lang/Object;\n+   #60 = NameAndType        #61:#62       // chatMemoryId:()Ljava/lang/Object;\n+   #61 = Utf8               chatMemoryId\n+   #62 = Utf8               ()Ljava/lang/Object;\n+   #63 = Methodref          #39.#64       // dev/langchain4j/rag/query/Metadata.chatMemory:()Ljava/util/List;\n+   #64 = NameAndType        #65:#66       // chatMemory:()Ljava/util/List;\n+   #65 = Utf8               chatMemory\n+   #66 = Utf8               ()Ljava/util/List;\n+   #67 = Methodref          #48.#68       // org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+   #68 = NameAndType        #51:#69       // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+   #69 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+   #70 = Methodref          #71.#72       // org/assertj/core/api/ListAssert.isNotSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n+   #71 = Class              #73           // org/assertj/core/api/ListAssert\n+   #72 = NameAndType        #74:#75       // isNotSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n+   #73 = Utf8               org/assertj/core/api/ListAssert\n+   #74 = Utf8               isNotSameAs\n+   #75 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n+   #76 = Methodref          #71.#77       // org/assertj/core/api/ListAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n+   #77 = NameAndType        #78:#75       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n+   #78 = Utf8               isEqualTo\n+   #79 = String             #80           // another user message\n+   #80 = Utf8               another user message\n+   #81 = String             #82           // Bye\n+   #82 = Utf8               Bye\n+   #83 = String             #84           // Bye-bye\n+   #84 = Utf8               Bye-bye\n+   #85 = Methodref          #54.#86       // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #86 = NameAndType        #87:#58       // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #87 = Utf8               isNotEqualTo\n+   #88 = Methodref          #54.#89       // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #89 = NameAndType        #90:#58       // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #90 = Utf8               doesNotHaveSameHashCodeAs\n+   #91 = Methodref          #54.#92       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #92 = NameAndType        #78:#58       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #93 = Methodref          #54.#94       // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #94 = NameAndType        #95:#58       // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #95 = Utf8               hasSameHashCodeAs\n+   #96 = Methodref          #39.#97       // dev/langchain4j/rag/query/Metadata.toString:()Ljava/lang/String;\n+   #97 = NameAndType        #98:#99       // toString:()Ljava/lang/String;\n+   #98 = Utf8               toString\n+   #99 = Utf8               ()Ljava/lang/String;\n+  #100 = Methodref          #48.#101      // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #101 = NameAndType        #51:#102      // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #102 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #103 = String             #104          // Metadata { userMessage = UserMessage { name = null contents = [TextContent { text = \\\"user message\\\" }] }, chatMemoryId = 42, chatMemory = [UserMessage { name = null contents = [TextContent { text = \\\"Hello\\\" }] }, AiMessage { text = \\\"Hi, how can I help you today?\\\" toolExecutionRequests = null }] }\n+  #104 = Utf8               Metadata { userMessage = UserMessage { name = null contents = [TextContent { text = \\\"user message\\\" }] }, chatMemoryId = 42, chatMemory = [UserMessage { name = null contents = [TextContent { text = \\\"Hello\\\" }] }, AiMessage { text = \\\"Hi, how can I help you today?\\\" toolExecutionRequests = null }] }\n+  #105 = Methodref          #106.#107     // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #106 = Class              #108          // org/assertj/core/api/AbstractStringAssert\n+  #107 = NameAndType        #78:#102      // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #108 = Utf8               org/assertj/core/api/AbstractStringAssert\n+  #109 = Class              #110          // dev/langchain4j/rag/query/MetadataTest\n+  #110 = Utf8               dev/langchain4j/rag/query/MetadataTest\n+  #111 = Utf8               Code\n+  #112 = Utf8               LineNumberTable\n+  #113 = Utf8               LocalVariableTable\n+  #114 = Utf8               this\n+  #115 = Utf8               Ldev/langchain4j/rag/query/MetadataTest;\n+  #116 = Utf8               test_create\n+  #117 = Utf8               Ldev/langchain4j/data/message/UserMessage;\n+  #118 = Utf8               I\n+  #119 = Utf8               Ljava/util/List;\n+  #120 = Utf8               metadata\n+  #121 = Utf8               Ldev/langchain4j/rag/query/Metadata;\n+  #122 = Utf8               LocalVariableTypeTable\n+  #123 = Utf8               Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n+  #124 = Utf8               RuntimeVisibleAnnotations\n+  #125 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #126 = Utf8               test_equals_hashCode\n+  #127 = Utf8               metadata1\n+  #128 = Utf8               metadata2\n+  #129 = Utf8               metadata3\n+  #130 = Utf8               test_toString\n+  #131 = Utf8               Ljava/lang/String;\n+  #132 = Utf8               SourceFile\n+  #133 = Utf8               MetadataTest.java\n {\n   dev.langchain4j.rag.query.MetadataTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -157,59 +157,59 @@\n             0       5     0  this   Ldev/langchain4j/rag/query/MetadataTest;\n \n   void test_create();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=4, locals=5, args_size=1\n-         0: ldc           #2                  // String user message\n-         2: invokestatic  #3                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+         0: ldc           #7                  // String user message\n+         2: invokestatic  #9                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n          5: astore_1\n          6: bipush        42\n          8: istore_2\n          9: iconst_2\n-        10: anewarray     #4                  // class dev/langchain4j/data/message/ChatMessage\n+        10: anewarray     #15                 // class dev/langchain4j/data/message/ChatMessage\n         13: dup\n         14: iconst_0\n-        15: ldc           #5                  // String Hello\n-        17: invokestatic  #3                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+        15: ldc           #17                 // String Hello\n+        17: invokestatic  #9                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n         20: aastore\n         21: dup\n         22: iconst_1\n-        23: ldc           #6                  // String Hi, how can I help you today?\n-        25: invokestatic  #7                  // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+        23: ldc           #19                 // String Hi, how can I help you today?\n+        25: invokestatic  #21                 // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n         28: aastore\n-        29: invokestatic  #8                  // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        29: invokestatic  #26                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n         32: astore_3\n         33: aload_1\n         34: iload_2\n-        35: invokestatic  #9                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        35: invokestatic  #32                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         38: aload_3\n-        39: invokestatic  #10                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n+        39: invokestatic  #38                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n         42: astore        4\n         44: aload         4\n-        46: invokevirtual #11                 // Method dev/langchain4j/rag/query/Metadata.userMessage:()Ldev/langchain4j/data/message/UserMessage;\n-        49: invokestatic  #12                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        46: invokevirtual #43                 // Method dev/langchain4j/rag/query/Metadata.userMessage:()Ldev/langchain4j/data/message/UserMessage;\n+        49: invokestatic  #47                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         52: aload_1\n-        53: invokevirtual #13                 // Method org/assertj/core/api/ObjectAssert.isSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        53: invokevirtual #53                 // Method org/assertj/core/api/ObjectAssert.isSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         56: pop\n         57: aload         4\n-        59: invokevirtual #14                 // Method dev/langchain4j/rag/query/Metadata.chatMemoryId:()Ljava/lang/Object;\n-        62: invokestatic  #12                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        59: invokevirtual #59                 // Method dev/langchain4j/rag/query/Metadata.chatMemoryId:()Ljava/lang/Object;\n+        62: invokestatic  #47                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         65: iload_2\n-        66: invokestatic  #9                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-        69: invokevirtual #13                 // Method org/assertj/core/api/ObjectAssert.isSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        66: invokestatic  #32                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        69: invokevirtual #53                 // Method org/assertj/core/api/ObjectAssert.isSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         72: pop\n         73: aload         4\n-        75: invokevirtual #15                 // Method dev/langchain4j/rag/query/Metadata.chatMemory:()Ljava/util/List;\n-        78: invokestatic  #16                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+        75: invokevirtual #63                 // Method dev/langchain4j/rag/query/Metadata.chatMemory:()Ljava/util/List;\n+        78: invokestatic  #67                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n         81: aload_3\n-        82: invokevirtual #17                 // Method org/assertj/core/api/ListAssert.isNotSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n+        82: invokevirtual #70                 // Method org/assertj/core/api/ListAssert.isNotSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n         85: aload_3\n-        86: invokevirtual #18                 // Method org/assertj/core/api/ListAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n+        86: invokevirtual #76                 // Method org/assertj/core/api/ListAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n         89: pop\n         90: return\n       LineNumberTable:\n         line 19: 0\n         line 20: 6\n         line 21: 9\n         line 22: 17\n@@ -229,94 +229,94 @@\n             9      82     2 chatMemoryId   I\n            33      58     3 chatMemory   Ljava/util/List;\n            44      47     4 metadata   Ldev/langchain4j/rag/query/Metadata;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            33      58     3 chatMemory   Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n     RuntimeVisibleAnnotations:\n-      0: #52()\n+      0: #125()\n         org.junit.jupiter.api.Test\n \n   void test_equals_hashCode();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=6, locals=4, args_size=1\n-         0: ldc           #2                  // String user message\n-         2: invokestatic  #3                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+         0: ldc           #7                  // String user message\n+         2: invokestatic  #9                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n          5: bipush        42\n-         7: invokestatic  #9                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+         7: invokestatic  #32                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         10: iconst_2\n-        11: anewarray     #4                  // class dev/langchain4j/data/message/ChatMessage\n+        11: anewarray     #15                 // class dev/langchain4j/data/message/ChatMessage\n         14: dup\n         15: iconst_0\n-        16: ldc           #5                  // String Hello\n-        18: invokestatic  #3                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+        16: ldc           #17                 // String Hello\n+        18: invokestatic  #9                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n         21: aastore\n         22: dup\n         23: iconst_1\n-        24: ldc           #6                  // String Hi, how can I help you today?\n-        26: invokestatic  #7                  // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+        24: ldc           #19                 // String Hi, how can I help you today?\n+        26: invokestatic  #21                 // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n         29: aastore\n-        30: invokestatic  #8                  // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-        33: invokestatic  #10                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n+        30: invokestatic  #26                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        33: invokestatic  #38                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n         36: astore_1\n-        37: ldc           #19                 // String another user message\n-        39: invokestatic  #3                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+        37: ldc           #79                 // String another user message\n+        39: invokestatic  #9                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n         42: sipush        666\n-        45: invokestatic  #9                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        45: invokestatic  #32                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         48: iconst_2\n-        49: anewarray     #4                  // class dev/langchain4j/data/message/ChatMessage\n+        49: anewarray     #15                 // class dev/langchain4j/data/message/ChatMessage\n         52: dup\n         53: iconst_0\n-        54: ldc           #20                 // String Bye\n-        56: invokestatic  #3                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+        54: ldc           #81                 // String Bye\n+        56: invokestatic  #9                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n         59: aastore\n         60: dup\n         61: iconst_1\n-        62: ldc           #21                 // String Bye-bye\n-        64: invokestatic  #7                  // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+        62: ldc           #83                 // String Bye-bye\n+        64: invokestatic  #21                 // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n         67: aastore\n-        68: invokestatic  #8                  // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-        71: invokestatic  #10                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n+        68: invokestatic  #26                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        71: invokestatic  #38                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n         74: astore_2\n-        75: ldc           #2                  // String user message\n-        77: invokestatic  #3                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+        75: ldc           #7                  // String user message\n+        77: invokestatic  #9                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n         80: bipush        42\n-        82: invokestatic  #9                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        82: invokestatic  #32                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         85: iconst_2\n-        86: anewarray     #4                  // class dev/langchain4j/data/message/ChatMessage\n+        86: anewarray     #15                 // class dev/langchain4j/data/message/ChatMessage\n         89: dup\n         90: iconst_0\n-        91: ldc           #5                  // String Hello\n-        93: invokestatic  #3                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+        91: ldc           #17                 // String Hello\n+        93: invokestatic  #9                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n         96: aastore\n         97: dup\n         98: iconst_1\n-        99: ldc           #6                  // String Hi, how can I help you today?\n-       101: invokestatic  #7                  // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+        99: ldc           #19                 // String Hi, how can I help you today?\n+       101: invokestatic  #21                 // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n        104: aastore\n-       105: invokestatic  #8                  // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       108: invokestatic  #10                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n+       105: invokestatic  #26                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       108: invokestatic  #38                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n        111: astore_3\n        112: aload_1\n-       113: invokestatic  #12                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       113: invokestatic  #47                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        116: aload_2\n-       117: invokevirtual #22                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       120: checkcast     #23                 // class org/assertj/core/api/ObjectAssert\n+       117: invokevirtual #85                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       120: checkcast     #54                 // class org/assertj/core/api/ObjectAssert\n        123: aload_2\n-       124: invokevirtual #24                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       124: invokevirtual #88                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        127: pop\n        128: aload_1\n-       129: invokestatic  #12                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       129: invokestatic  #47                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        132: aload_3\n-       133: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       136: checkcast     #23                 // class org/assertj/core/api/ObjectAssert\n+       133: invokevirtual #91                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       136: checkcast     #54                 // class org/assertj/core/api/ObjectAssert\n        139: aload_3\n-       140: invokevirtual #26                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       140: invokevirtual #93                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        143: pop\n        144: return\n       LineNumberTable:\n         line 43: 0\n         line 44: 2\n         line 45: 7\n         line 47: 18\n@@ -347,48 +347,48 @@\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     145     0  this   Ldev/langchain4j/rag/query/MetadataTest;\n            37     108     1 metadata1   Ldev/langchain4j/rag/query/Metadata;\n            75      70     2 metadata2   Ldev/langchain4j/rag/query/Metadata;\n           112      33     3 metadata3   Ldev/langchain4j/rag/query/Metadata;\n     RuntimeVisibleAnnotations:\n-      0: #52()\n+      0: #125()\n         org.junit.jupiter.api.Test\n \n   void test_toString();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=6, locals=3, args_size=1\n-         0: ldc           #2                  // String user message\n-         2: invokestatic  #3                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+         0: ldc           #7                  // String user message\n+         2: invokestatic  #9                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n          5: bipush        42\n-         7: invokestatic  #9                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+         7: invokestatic  #32                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         10: iconst_2\n-        11: anewarray     #4                  // class dev/langchain4j/data/message/ChatMessage\n+        11: anewarray     #15                 // class dev/langchain4j/data/message/ChatMessage\n         14: dup\n         15: iconst_0\n-        16: ldc           #5                  // String Hello\n-        18: invokestatic  #3                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+        16: ldc           #17                 // String Hello\n+        18: invokestatic  #9                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n         21: aastore\n         22: dup\n         23: iconst_1\n-        24: ldc           #6                  // String Hi, how can I help you today?\n-        26: invokestatic  #7                  // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+        24: ldc           #19                 // String Hi, how can I help you today?\n+        26: invokestatic  #21                 // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n         29: aastore\n-        30: invokestatic  #8                  // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-        33: invokestatic  #10                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n+        30: invokestatic  #26                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        33: invokestatic  #38                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n         36: astore_1\n         37: aload_1\n-        38: invokevirtual #27                 // Method dev/langchain4j/rag/query/Metadata.toString:()Ljava/lang/String;\n+        38: invokevirtual #96                 // Method dev/langchain4j/rag/query/Metadata.toString:()Ljava/lang/String;\n         41: astore_2\n         42: aload_2\n-        43: invokestatic  #28                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        46: ldc           #29                 // String Metadata { userMessage = UserMessage { name = null contents = [TextContent { text = \\\"user message\\\" }] }, chatMemoryId = 42, chatMemory = [UserMessage { name = null contents = [TextContent { text = \\\"Hello\\\" }] }, AiMessage { text = \\\"Hi, how can I help you today?\\\" toolExecutionRequests = null }] }\n-        48: invokevirtual #30                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        43: invokestatic  #100                // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        46: ldc           #103                // String Metadata { userMessage = UserMessage { name = null contents = [TextContent { text = \\\"user message\\\" }] }, chatMemoryId = 42, chatMemory = [UserMessage { name = null contents = [TextContent { text = \\\"Hello\\\" }] }, AiMessage { text = \\\"Hi, how can I help you today?\\\" toolExecutionRequests = null }] }\n+        48: invokevirtual #105                // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         51: pop\n         52: return\n       LineNumberTable:\n         line 84: 0\n         line 85: 2\n         line 86: 7\n         line 88: 18\n@@ -400,11 +400,11 @@\n         line 102: 52\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      53     0  this   Ldev/langchain4j/rag/query/MetadataTest;\n            37      16     1 metadata   Ldev/langchain4j/rag/query/Metadata;\n            42      11     2 toString   Ljava/lang/String;\n     RuntimeVisibleAnnotations:\n-      0: #52()\n+      0: #125()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"MetadataTest.java\"\n"}]}, {"source1": "dev/langchain4j/rag/query/QueryTest.class", "source2": "dev/langchain4j/rag/query/QueryTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,149 +1,149 @@\n-  SHA-256 checksum a4cba7af6778a6ebcba56832f4c50f43811422c06dc93f3f0cbc68ef80739637\n+  SHA-256 checksum 4e706c41c5b961273f48c3bda08c8f61214f10cbd62ef5405e167368388268b3\n   Compiled from \"QueryTest.java\"\n class dev.langchain4j.rag.query.QueryTest\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #32                         // dev/langchain4j/rag/query/QueryTest\n-  super_class: #33                        // java/lang/Object\n+  this_class: #108                        // dev/langchain4j/rag/query/QueryTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 0, methods: 5, attributes: 1\n Constant pool:\n-    #1 = Methodref          #33.#62       // java/lang/Object.\"<init>\":()V\n-    #2 = String             #44           // query\n-    #3 = Methodref          #63.#64       // dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-    #4 = Methodref          #63.#65       // dev/langchain4j/rag/query/Query.text:()Ljava/lang/String;\n-    #5 = Methodref          #66.#67       // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-    #6 = Methodref          #68.#69       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-    #7 = Methodref          #63.#70       // dev/langchain4j/rag/query/Query.metadata:()Ldev/langchain4j/rag/query/Metadata;\n-    #8 = Methodref          #66.#71       // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-    #9 = Methodref          #26.#72       // org/assertj/core/api/ObjectAssert.isNull:()V\n-   #10 = String             #73           // user message\n-   #11 = Methodref          #74.#75       // dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-   #12 = Methodref          #76.#77       // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-   #13 = Class              #78           // dev/langchain4j/data/message/ChatMessage\n-   #14 = String             #79           // Hello\n-   #15 = String             #80           // Hi, how can I help you today?\n-   #16 = Methodref          #81.#82       // dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n-   #17 = Methodref          #83.#84       // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-   #18 = Methodref          #85.#86       // dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n-   #19 = Methodref          #63.#87       // dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n-   #20 = Methodref          #26.#88       // org/assertj/core/api/ObjectAssert.isSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #21 = String             #89           // another user message\n-   #22 = String             #90           // Bye\n-   #23 = String             #91           // Bye-bye\n-   #24 = String             #92           // query 2\n-   #25 = Methodref          #26.#93       // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #26 = Class              #94           // org/assertj/core/api/ObjectAssert\n-   #27 = Methodref          #26.#95       // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #28 = Methodref          #26.#96       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #29 = Methodref          #26.#97       // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #30 = Methodref          #63.#98       // dev/langchain4j/rag/query/Query.toString:()Ljava/lang/String;\n-   #31 = String             #99           // Query { text = \\\"query\\\", metadata = Metadata { userMessage = UserMessage { name = null contents = [TextContent { text = \\\"user message\\\" }] }, chatMemoryId = 42, chatMemory = [UserMessage { name = null contents = [TextContent { text = \\\"Hello\\\" }] }, AiMessage { text = \\\"Hi, how can I help you today?\\\" toolExecutionRequests = null }] } }\n-   #32 = Class              #100          // dev/langchain4j/rag/query/QueryTest\n-   #33 = Class              #101          // java/lang/Object\n-   #34 = Utf8               <init>\n-   #35 = Utf8               ()V\n-   #36 = Utf8               Code\n-   #37 = Utf8               LineNumberTable\n-   #38 = Utf8               LocalVariableTable\n-   #39 = Utf8               this\n-   #40 = Utf8               Ldev/langchain4j/rag/query/QueryTest;\n-   #41 = Utf8               test_create\n-   #42 = Utf8               queryText\n-   #43 = Utf8               Ljava/lang/String;\n-   #44 = Utf8               query\n-   #45 = Utf8               Ldev/langchain4j/rag/query/Query;\n-   #46 = Utf8               RuntimeVisibleAnnotations\n-   #47 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #48 = Utf8               test_create_with_metadata\n-   #49 = Utf8               metadata\n-   #50 = Utf8               Ldev/langchain4j/rag/query/Metadata;\n-   #51 = Utf8               test_equals_hashCode\n-   #52 = Utf8               metadata1\n-   #53 = Utf8               query1\n-   #54 = Utf8               metadata2\n-   #55 = Utf8               query2\n-   #56 = Utf8               metadata3\n-   #57 = Utf8               query3\n-   #58 = Utf8               test_toString\n-   #59 = Utf8               toString\n-   #60 = Utf8               SourceFile\n-   #61 = Utf8               QueryTest.java\n-   #62 = NameAndType        #34:#35       // \"<init>\":()V\n-   #63 = Class              #102          // dev/langchain4j/rag/query/Query\n-   #64 = NameAndType        #103:#104     // from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-   #65 = NameAndType        #105:#106     // text:()Ljava/lang/String;\n-   #66 = Class              #107          // org/assertj/core/api/Assertions\n-   #67 = NameAndType        #108:#109     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #68 = Class              #110          // org/assertj/core/api/AbstractStringAssert\n-   #69 = NameAndType        #111:#109     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #70 = NameAndType        #49:#112      // metadata:()Ldev/langchain4j/rag/query/Metadata;\n-   #71 = NameAndType        #108:#113     // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #72 = NameAndType        #114:#35      // isNull:()V\n-   #73 = Utf8               user message\n-   #74 = Class              #115          // dev/langchain4j/data/message/UserMessage\n-   #75 = NameAndType        #103:#116     // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-   #76 = Class              #117          // java/lang/Integer\n-   #77 = NameAndType        #118:#119     // valueOf:(I)Ljava/lang/Integer;\n-   #78 = Utf8               dev/langchain4j/data/message/ChatMessage\n-   #79 = Utf8               Hello\n-   #80 = Utf8               Hi, how can I help you today?\n-   #81 = Class              #120          // dev/langchain4j/data/message/AiMessage\n-   #82 = NameAndType        #103:#121     // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n-   #83 = Class              #122          // java/util/Arrays\n-   #84 = NameAndType        #123:#124     // asList:([Ljava/lang/Object;)Ljava/util/List;\n-   #85 = Class              #125          // dev/langchain4j/rag/query/Metadata\n-   #86 = NameAndType        #103:#126     // from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n-   #87 = NameAndType        #103:#127     // from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n-   #88 = NameAndType        #128:#129     // isSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #89 = Utf8               another user message\n-   #90 = Utf8               Bye\n-   #91 = Utf8               Bye-bye\n-   #92 = Utf8               query 2\n-   #93 = NameAndType        #130:#129     // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #94 = Utf8               org/assertj/core/api/ObjectAssert\n-   #95 = NameAndType        #131:#129     // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #96 = NameAndType        #111:#129     // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #97 = NameAndType        #132:#129     // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #98 = NameAndType        #59:#106      // toString:()Ljava/lang/String;\n-   #99 = Utf8               Query { text = \\\"query\\\", metadata = Metadata { userMessage = UserMessage { name = null contents = [TextContent { text = \\\"user message\\\" }] }, chatMemoryId = 42, chatMemory = [UserMessage { name = null contents = [TextContent { text = \\\"Hello\\\" }] }, AiMessage { text = \\\"Hi, how can I help you today?\\\" toolExecutionRequests = null }] } }\n-  #100 = Utf8               dev/langchain4j/rag/query/QueryTest\n-  #101 = Utf8               java/lang/Object\n-  #102 = Utf8               dev/langchain4j/rag/query/Query\n-  #103 = Utf8               from\n-  #104 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-  #105 = Utf8               text\n-  #106 = Utf8               ()Ljava/lang/String;\n-  #107 = Utf8               org/assertj/core/api/Assertions\n-  #108 = Utf8               assertThat\n-  #109 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #110 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #111 = Utf8               isEqualTo\n-  #112 = Utf8               ()Ldev/langchain4j/rag/query/Metadata;\n-  #113 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #114 = Utf8               isNull\n-  #115 = Utf8               dev/langchain4j/data/message/UserMessage\n-  #116 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-  #117 = Utf8               java/lang/Integer\n-  #118 = Utf8               valueOf\n-  #119 = Utf8               (I)Ljava/lang/Integer;\n-  #120 = Utf8               dev/langchain4j/data/message/AiMessage\n-  #121 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n-  #122 = Utf8               java/util/Arrays\n-  #123 = Utf8               asList\n-  #124 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n-  #125 = Utf8               dev/langchain4j/rag/query/Metadata\n-  #126 = Utf8               (Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n-  #127 = Utf8               (Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n-  #128 = Utf8               isSameAs\n-  #129 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #130 = Utf8               isNotEqualTo\n-  #131 = Utf8               doesNotHaveSameHashCodeAs\n-  #132 = Utf8               hasSameHashCodeAs\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = String             #8            // query\n+    #8 = Utf8               query\n+    #9 = Methodref          #10.#11       // dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+   #10 = Class              #12           // dev/langchain4j/rag/query/Query\n+   #11 = NameAndType        #13:#14       // from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+   #12 = Utf8               dev/langchain4j/rag/query/Query\n+   #13 = Utf8               from\n+   #14 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+   #15 = Methodref          #10.#16       // dev/langchain4j/rag/query/Query.text:()Ljava/lang/String;\n+   #16 = NameAndType        #17:#18       // text:()Ljava/lang/String;\n+   #17 = Utf8               text\n+   #18 = Utf8               ()Ljava/lang/String;\n+   #19 = Methodref          #20.#21       // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #20 = Class              #22           // org/assertj/core/api/Assertions\n+   #21 = NameAndType        #23:#24       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #22 = Utf8               org/assertj/core/api/Assertions\n+   #23 = Utf8               assertThat\n+   #24 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #25 = Methodref          #26.#27       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #26 = Class              #28           // org/assertj/core/api/AbstractStringAssert\n+   #27 = NameAndType        #29:#24       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #28 = Utf8               org/assertj/core/api/AbstractStringAssert\n+   #29 = Utf8               isEqualTo\n+   #30 = Methodref          #10.#31       // dev/langchain4j/rag/query/Query.metadata:()Ldev/langchain4j/rag/query/Metadata;\n+   #31 = NameAndType        #32:#33       // metadata:()Ldev/langchain4j/rag/query/Metadata;\n+   #32 = Utf8               metadata\n+   #33 = Utf8               ()Ldev/langchain4j/rag/query/Metadata;\n+   #34 = Methodref          #20.#35       // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #35 = NameAndType        #23:#36       // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #36 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #37 = Methodref          #38.#39       // org/assertj/core/api/ObjectAssert.isNull:()V\n+   #38 = Class              #40           // org/assertj/core/api/ObjectAssert\n+   #39 = NameAndType        #41:#6        // isNull:()V\n+   #40 = Utf8               org/assertj/core/api/ObjectAssert\n+   #41 = Utf8               isNull\n+   #42 = String             #43           // user message\n+   #43 = Utf8               user message\n+   #44 = Methodref          #45.#46       // dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+   #45 = Class              #47           // dev/langchain4j/data/message/UserMessage\n+   #46 = NameAndType        #13:#48       // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+   #47 = Utf8               dev/langchain4j/data/message/UserMessage\n+   #48 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+   #49 = Methodref          #50.#51       // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+   #50 = Class              #52           // java/lang/Integer\n+   #51 = NameAndType        #53:#54       // valueOf:(I)Ljava/lang/Integer;\n+   #52 = Utf8               java/lang/Integer\n+   #53 = Utf8               valueOf\n+   #54 = Utf8               (I)Ljava/lang/Integer;\n+   #55 = Class              #56           // dev/langchain4j/data/message/ChatMessage\n+   #56 = Utf8               dev/langchain4j/data/message/ChatMessage\n+   #57 = String             #58           // Hello\n+   #58 = Utf8               Hello\n+   #59 = String             #60           // Hi, how can I help you today?\n+   #60 = Utf8               Hi, how can I help you today?\n+   #61 = Methodref          #62.#63       // dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+   #62 = Class              #64           // dev/langchain4j/data/message/AiMessage\n+   #63 = NameAndType        #13:#65       // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+   #64 = Utf8               dev/langchain4j/data/message/AiMessage\n+   #65 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+   #66 = Methodref          #67.#68       // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+   #67 = Class              #69           // java/util/Arrays\n+   #68 = NameAndType        #70:#71       // asList:([Ljava/lang/Object;)Ljava/util/List;\n+   #69 = Utf8               java/util/Arrays\n+   #70 = Utf8               asList\n+   #71 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n+   #72 = Methodref          #73.#74       // dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n+   #73 = Class              #75           // dev/langchain4j/rag/query/Metadata\n+   #74 = NameAndType        #13:#76       // from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n+   #75 = Utf8               dev/langchain4j/rag/query/Metadata\n+   #76 = Utf8               (Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n+   #77 = Methodref          #10.#78       // dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n+   #78 = NameAndType        #13:#79       // from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n+   #79 = Utf8               (Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n+   #80 = Methodref          #38.#81       // org/assertj/core/api/ObjectAssert.isSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #81 = NameAndType        #82:#83       // isSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #82 = Utf8               isSameAs\n+   #83 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #84 = String             #85           // another user message\n+   #85 = Utf8               another user message\n+   #86 = String             #87           // Bye\n+   #87 = Utf8               Bye\n+   #88 = String             #89           // Bye-bye\n+   #89 = Utf8               Bye-bye\n+   #90 = String             #91           // query 2\n+   #91 = Utf8               query 2\n+   #92 = Methodref          #38.#93       // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #93 = NameAndType        #94:#83       // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #94 = Utf8               isNotEqualTo\n+   #95 = Methodref          #38.#96       // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #96 = NameAndType        #97:#83       // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #97 = Utf8               doesNotHaveSameHashCodeAs\n+   #98 = Methodref          #38.#99       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #99 = NameAndType        #29:#83       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #100 = Methodref          #38.#101      // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #101 = NameAndType        #102:#83      // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #102 = Utf8               hasSameHashCodeAs\n+  #103 = Methodref          #10.#104      // dev/langchain4j/rag/query/Query.toString:()Ljava/lang/String;\n+  #104 = NameAndType        #105:#18      // toString:()Ljava/lang/String;\n+  #105 = Utf8               toString\n+  #106 = String             #107          // Query { text = \\\"query\\\", metadata = Metadata { userMessage = UserMessage { name = null contents = [TextContent { text = \\\"user message\\\" }] }, chatMemoryId = 42, chatMemory = [UserMessage { name = null contents = [TextContent { text = \\\"Hello\\\" }] }, AiMessage { text = \\\"Hi, how can I help you today?\\\" toolExecutionRequests = null }] } }\n+  #107 = Utf8               Query { text = \\\"query\\\", metadata = Metadata { userMessage = UserMessage { name = null contents = [TextContent { text = \\\"user message\\\" }] }, chatMemoryId = 42, chatMemory = [UserMessage { name = null contents = [TextContent { text = \\\"Hello\\\" }] }, AiMessage { text = \\\"Hi, how can I help you today?\\\" toolExecutionRequests = null }] } }\n+  #108 = Class              #109          // dev/langchain4j/rag/query/QueryTest\n+  #109 = Utf8               dev/langchain4j/rag/query/QueryTest\n+  #110 = Utf8               Code\n+  #111 = Utf8               LineNumberTable\n+  #112 = Utf8               LocalVariableTable\n+  #113 = Utf8               this\n+  #114 = Utf8               Ldev/langchain4j/rag/query/QueryTest;\n+  #115 = Utf8               test_create\n+  #116 = Utf8               queryText\n+  #117 = Utf8               Ljava/lang/String;\n+  #118 = Utf8               Ldev/langchain4j/rag/query/Query;\n+  #119 = Utf8               RuntimeVisibleAnnotations\n+  #120 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #121 = Utf8               test_create_with_metadata\n+  #122 = Utf8               Ldev/langchain4j/rag/query/Metadata;\n+  #123 = Utf8               test_equals_hashCode\n+  #124 = Utf8               metadata1\n+  #125 = Utf8               query1\n+  #126 = Utf8               metadata2\n+  #127 = Utf8               query2\n+  #128 = Utf8               metadata3\n+  #129 = Utf8               query3\n+  #130 = Utf8               test_toString\n+  #131 = Utf8               SourceFile\n+  #132 = Utf8               QueryTest.java\n {\n   dev.langchain4j.rag.query.QueryTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -156,86 +156,86 @@\n             0       5     0  this   Ldev/langchain4j/rag/query/QueryTest;\n \n   void test_create();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=2, locals=3, args_size=1\n-         0: ldc           #2                  // String query\n+         0: ldc           #7                  // String query\n          2: astore_1\n          3: aload_1\n-         4: invokestatic  #3                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+         4: invokestatic  #9                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n          7: astore_2\n          8: aload_2\n-         9: invokevirtual #4                  // Method dev/langchain4j/rag/query/Query.text:()Ljava/lang/String;\n-        12: invokestatic  #5                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+         9: invokevirtual #15                 // Method dev/langchain4j/rag/query/Query.text:()Ljava/lang/String;\n+        12: invokestatic  #19                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         15: aload_1\n-        16: invokevirtual #6                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        16: invokevirtual #25                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         19: pop\n         20: aload_2\n-        21: invokevirtual #7                  // Method dev/langchain4j/rag/query/Query.metadata:()Ldev/langchain4j/rag/query/Metadata;\n-        24: invokestatic  #8                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        27: invokevirtual #9                  // Method org/assertj/core/api/ObjectAssert.isNull:()V\n+        21: invokevirtual #30                 // Method dev/langchain4j/rag/query/Query.metadata:()Ldev/langchain4j/rag/query/Metadata;\n+        24: invokestatic  #34                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        27: invokevirtual #37                 // Method org/assertj/core/api/ObjectAssert.isNull:()V\n         30: return\n       LineNumberTable:\n         line 16: 0\n         line 19: 3\n         line 22: 8\n         line 23: 20\n         line 24: 30\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      31     0  this   Ldev/langchain4j/rag/query/QueryTest;\n             3      28     1 queryText   Ljava/lang/String;\n             8      23     2 query   Ldev/langchain4j/rag/query/Query;\n     RuntimeVisibleAnnotations:\n-      0: #47()\n+      0: #120()\n         org.junit.jupiter.api.Test\n \n   void test_create_with_metadata();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=6, locals=4, args_size=1\n-         0: ldc           #2                  // String query\n+         0: ldc           #7                  // String query\n          2: astore_1\n-         3: ldc           #10                 // String user message\n-         5: invokestatic  #11                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+         3: ldc           #42                 // String user message\n+         5: invokestatic  #44                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n          8: bipush        42\n-        10: invokestatic  #12                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        10: invokestatic  #49                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         13: iconst_2\n-        14: anewarray     #13                 // class dev/langchain4j/data/message/ChatMessage\n+        14: anewarray     #55                 // class dev/langchain4j/data/message/ChatMessage\n         17: dup\n         18: iconst_0\n-        19: ldc           #14                 // String Hello\n-        21: invokestatic  #11                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+        19: ldc           #57                 // String Hello\n+        21: invokestatic  #44                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n         24: aastore\n         25: dup\n         26: iconst_1\n-        27: ldc           #15                 // String Hi, how can I help you today?\n-        29: invokestatic  #16                 // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+        27: ldc           #59                 // String Hi, how can I help you today?\n+        29: invokestatic  #61                 // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n         32: aastore\n-        33: invokestatic  #17                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-        36: invokestatic  #18                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n+        33: invokestatic  #66                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        36: invokestatic  #72                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n         39: astore_2\n         40: aload_1\n         41: aload_2\n-        42: invokestatic  #19                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n+        42: invokestatic  #77                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n         45: astore_3\n         46: aload_3\n-        47: invokevirtual #4                  // Method dev/langchain4j/rag/query/Query.text:()Ljava/lang/String;\n-        50: invokestatic  #5                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        47: invokevirtual #15                 // Method dev/langchain4j/rag/query/Query.text:()Ljava/lang/String;\n+        50: invokestatic  #19                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         53: aload_1\n-        54: invokevirtual #6                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        54: invokevirtual #25                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         57: pop\n         58: aload_3\n-        59: invokevirtual #7                  // Method dev/langchain4j/rag/query/Query.metadata:()Ldev/langchain4j/rag/query/Metadata;\n-        62: invokestatic  #8                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        59: invokevirtual #30                 // Method dev/langchain4j/rag/query/Query.metadata:()Ldev/langchain4j/rag/query/Metadata;\n+        62: invokestatic  #34                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         65: aload_2\n-        66: invokevirtual #20                 // Method org/assertj/core/api/ObjectAssert.isSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        66: invokevirtual #80                 // Method org/assertj/core/api/ObjectAssert.isSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         69: pop\n         70: return\n       LineNumberTable:\n         line 30: 0\n         line 32: 3\n         line 33: 5\n         line 34: 10\n@@ -250,106 +250,106 @@\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      71     0  this   Ldev/langchain4j/rag/query/QueryTest;\n             3      68     1 queryText   Ljava/lang/String;\n            40      31     2 metadata   Ldev/langchain4j/rag/query/Metadata;\n            46      25     3 query   Ldev/langchain4j/rag/query/Query;\n     RuntimeVisibleAnnotations:\n-      0: #47()\n+      0: #120()\n         org.junit.jupiter.api.Test\n \n   void test_equals_hashCode();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=6, locals=7, args_size=1\n-         0: ldc           #10                 // String user message\n-         2: invokestatic  #11                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+         0: ldc           #42                 // String user message\n+         2: invokestatic  #44                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n          5: bipush        42\n-         7: invokestatic  #12                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+         7: invokestatic  #49                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         10: iconst_2\n-        11: anewarray     #13                 // class dev/langchain4j/data/message/ChatMessage\n+        11: anewarray     #55                 // class dev/langchain4j/data/message/ChatMessage\n         14: dup\n         15: iconst_0\n-        16: ldc           #14                 // String Hello\n-        18: invokestatic  #11                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+        16: ldc           #57                 // String Hello\n+        18: invokestatic  #44                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n         21: aastore\n         22: dup\n         23: iconst_1\n-        24: ldc           #15                 // String Hi, how can I help you today?\n-        26: invokestatic  #16                 // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+        24: ldc           #59                 // String Hi, how can I help you today?\n+        26: invokestatic  #61                 // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n         29: aastore\n-        30: invokestatic  #17                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-        33: invokestatic  #18                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n+        30: invokestatic  #66                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        33: invokestatic  #72                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n         36: astore_1\n-        37: ldc           #2                  // String query\n+        37: ldc           #7                  // String query\n         39: aload_1\n-        40: invokestatic  #19                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n+        40: invokestatic  #77                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n         43: astore_2\n-        44: ldc           #21                 // String another user message\n-        46: invokestatic  #11                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+        44: ldc           #84                 // String another user message\n+        46: invokestatic  #44                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n         49: sipush        666\n-        52: invokestatic  #12                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        52: invokestatic  #49                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         55: iconst_2\n-        56: anewarray     #13                 // class dev/langchain4j/data/message/ChatMessage\n+        56: anewarray     #55                 // class dev/langchain4j/data/message/ChatMessage\n         59: dup\n         60: iconst_0\n-        61: ldc           #22                 // String Bye\n-        63: invokestatic  #11                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+        61: ldc           #86                 // String Bye\n+        63: invokestatic  #44                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n         66: aastore\n         67: dup\n         68: iconst_1\n-        69: ldc           #23                 // String Bye-bye\n-        71: invokestatic  #16                 // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+        69: ldc           #88                 // String Bye-bye\n+        71: invokestatic  #61                 // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n         74: aastore\n-        75: invokestatic  #17                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-        78: invokestatic  #18                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n+        75: invokestatic  #66                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        78: invokestatic  #72                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n         81: astore_3\n-        82: ldc           #24                 // String query 2\n+        82: ldc           #90                 // String query 2\n         84: aload_3\n-        85: invokestatic  #19                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n+        85: invokestatic  #77                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n         88: astore        4\n-        90: ldc           #10                 // String user message\n-        92: invokestatic  #11                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+        90: ldc           #42                 // String user message\n+        92: invokestatic  #44                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n         95: bipush        42\n-        97: invokestatic  #12                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        97: invokestatic  #49                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n        100: iconst_2\n-       101: anewarray     #13                 // class dev/langchain4j/data/message/ChatMessage\n+       101: anewarray     #55                 // class dev/langchain4j/data/message/ChatMessage\n        104: dup\n        105: iconst_0\n-       106: ldc           #14                 // String Hello\n-       108: invokestatic  #11                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+       106: ldc           #57                 // String Hello\n+       108: invokestatic  #44                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n        111: aastore\n        112: dup\n        113: iconst_1\n-       114: ldc           #15                 // String Hi, how can I help you today?\n-       116: invokestatic  #16                 // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+       114: ldc           #59                 // String Hi, how can I help you today?\n+       116: invokestatic  #61                 // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n        119: aastore\n-       120: invokestatic  #17                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       123: invokestatic  #18                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n+       120: invokestatic  #66                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       123: invokestatic  #72                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n        126: astore        5\n-       128: ldc           #2                  // String query\n+       128: ldc           #7                  // String query\n        130: aload         5\n-       132: invokestatic  #19                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n+       132: invokestatic  #77                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n        135: astore        6\n        137: aload_2\n-       138: invokestatic  #8                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       138: invokestatic  #34                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        141: aload         4\n-       143: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       146: checkcast     #26                 // class org/assertj/core/api/ObjectAssert\n+       143: invokevirtual #92                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       146: checkcast     #38                 // class org/assertj/core/api/ObjectAssert\n        149: aload         4\n-       151: invokevirtual #27                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       151: invokevirtual #95                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        154: pop\n        155: aload_2\n-       156: invokestatic  #8                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       156: invokestatic  #34                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        159: aload         6\n-       161: invokevirtual #28                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       164: checkcast     #26                 // class org/assertj/core/api/ObjectAssert\n+       161: invokevirtual #98                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       164: checkcast     #38                 // class org/assertj/core/api/ObjectAssert\n        167: aload         6\n-       169: invokevirtual #29                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       169: invokevirtual #100                // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        172: pop\n        173: return\n       LineNumberTable:\n         line 53: 0\n         line 54: 2\n         line 55: 7\n         line 57: 18\n@@ -386,52 +386,52 @@\n            37     137     1 metadata1   Ldev/langchain4j/rag/query/Metadata;\n            44     130     2 query1   Ldev/langchain4j/rag/query/Query;\n            82      92     3 metadata2   Ldev/langchain4j/rag/query/Metadata;\n            90      84     4 query2   Ldev/langchain4j/rag/query/Query;\n           128      46     5 metadata3   Ldev/langchain4j/rag/query/Metadata;\n           137      37     6 query3   Ldev/langchain4j/rag/query/Query;\n     RuntimeVisibleAnnotations:\n-      0: #47()\n+      0: #120()\n         org.junit.jupiter.api.Test\n \n   void test_toString();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=6, locals=4, args_size=1\n-         0: ldc           #10                 // String user message\n-         2: invokestatic  #11                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+         0: ldc           #42                 // String user message\n+         2: invokestatic  #44                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n          5: bipush        42\n-         7: invokestatic  #12                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+         7: invokestatic  #49                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         10: iconst_2\n-        11: anewarray     #13                 // class dev/langchain4j/data/message/ChatMessage\n+        11: anewarray     #55                 // class dev/langchain4j/data/message/ChatMessage\n         14: dup\n         15: iconst_0\n-        16: ldc           #14                 // String Hello\n-        18: invokestatic  #11                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+        16: ldc           #57                 // String Hello\n+        18: invokestatic  #44                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n         21: aastore\n         22: dup\n         23: iconst_1\n-        24: ldc           #15                 // String Hi, how can I help you today?\n-        26: invokestatic  #16                 // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+        24: ldc           #59                 // String Hi, how can I help you today?\n+        26: invokestatic  #61                 // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n         29: aastore\n-        30: invokestatic  #17                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-        33: invokestatic  #18                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n+        30: invokestatic  #66                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        33: invokestatic  #72                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n         36: astore_1\n-        37: ldc           #2                  // String query\n+        37: ldc           #7                  // String query\n         39: aload_1\n-        40: invokestatic  #19                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n+        40: invokestatic  #77                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n         43: astore_2\n         44: aload_2\n-        45: invokevirtual #30                 // Method dev/langchain4j/rag/query/Query.toString:()Ljava/lang/String;\n+        45: invokevirtual #103                // Method dev/langchain4j/rag/query/Query.toString:()Ljava/lang/String;\n         48: astore_3\n         49: aload_3\n-        50: invokestatic  #5                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        53: ldc           #31                 // String Query { text = \\\"query\\\", metadata = Metadata { userMessage = UserMessage { name = null contents = [TextContent { text = \\\"user message\\\" }] }, chatMemoryId = 42, chatMemory = [UserMessage { name = null contents = [TextContent { text = \\\"Hello\\\" }] }, AiMessage { text = \\\"Hi, how can I help you today?\\\" toolExecutionRequests = null }] } }\n-        55: invokevirtual #6                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        50: invokestatic  #19                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        53: ldc           #106                // String Query { text = \\\"query\\\", metadata = Metadata { userMessage = UserMessage { name = null contents = [TextContent { text = \\\"user message\\\" }] }, chatMemoryId = 42, chatMemory = [UserMessage { name = null contents = [TextContent { text = \\\"Hello\\\" }] }, AiMessage { text = \\\"Hi, how can I help you today?\\\" toolExecutionRequests = null }] } }\n+        55: invokevirtual #25                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         58: pop\n         59: return\n       LineNumberTable:\n         line 97: 0\n         line 98: 2\n         line 99: 7\n         line 101: 18\n@@ -445,11 +445,11 @@\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      60     0  this   Ldev/langchain4j/rag/query/QueryTest;\n            37      23     1 metadata   Ldev/langchain4j/rag/query/Metadata;\n            44      16     2 query   Ldev/langchain4j/rag/query/Query;\n            49      11     3 toString   Ljava/lang/String;\n     RuntimeVisibleAnnotations:\n-      0: #47()\n+      0: #120()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"QueryTest.java\"\n"}]}, {"source1": "dev/langchain4j/rag/query/router/DefaultQueryRouterTest.class", "source2": "dev/langchain4j/rag/query/router/DefaultQueryRouterTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,94 +1,94 @@\n-  SHA-256 checksum 29ab8f3f48bdadcd91fdda6056a6e1460e01a144e694d996ac0aa2262f51819f\n+  SHA-256 checksum f599833154caf65a7fea7785c1e7f301620de78cb8b98af2b28176eff405806f\n   Compiled from \"DefaultQueryRouterTest.java\"\n class dev.langchain4j.rag.query.router.DefaultQueryRouterTest\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #13                         // dev/langchain4j/rag/query/router/DefaultQueryRouterTest\n-  super_class: #14                        // java/lang/Object\n+  this_class: #55                         // dev/langchain4j/rag/query/router/DefaultQueryRouterTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 0, methods: 4, attributes: 1\n Constant pool:\n-   #1 = Methodref          #14.#38        // java/lang/Object.\"<init>\":()V\n-   #2 = Class              #39            // dev/langchain4j/rag/content/retriever/ContentRetriever\n-   #3 = Methodref          #40.#41        // org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-   #4 = Class              #42            // dev/langchain4j/rag/query/router/DefaultQueryRouter\n-   #5 = Methodref          #4.#43         // dev/langchain4j/rag/query/router/DefaultQueryRouter.\"<init>\":([Ldev/langchain4j/rag/content/retriever/ContentRetriever;)V\n-   #6 = String             #44            // query\n-   #7 = Methodref          #45.#46        // dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-   #8 = InterfaceMethodref #47.#48        // dev/langchain4j/rag/query/router/QueryRouter.route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n-   #9 = Methodref          #49.#50        // org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n-  #10 = Methodref          #51.#52        // org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #11 = Methodref          #53.#54        // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-  #12 = Methodref          #4.#55         // dev/langchain4j/rag/query/router/DefaultQueryRouter.\"<init>\":(Ljava/util/Collection;)V\n-  #13 = Class              #56            // dev/langchain4j/rag/query/router/DefaultQueryRouterTest\n-  #14 = Class              #57            // java/lang/Object\n-  #15 = Utf8               <init>\n-  #16 = Utf8               ()V\n-  #17 = Utf8               Code\n-  #18 = Utf8               LineNumberTable\n-  #19 = Utf8               LocalVariableTable\n-  #20 = Utf8               this\n-  #21 = Utf8               Ldev/langchain4j/rag/query/router/DefaultQueryRouterTest;\n-  #22 = Utf8               should_route_to_single_retriever\n-  #23 = Utf8               retriever1\n-  #24 = Utf8               Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n-  #25 = Utf8               router\n-  #26 = Utf8               Ldev/langchain4j/rag/query/router/QueryRouter;\n-  #27 = Utf8               retrievers\n-  #28 = Utf8               Ljava/util/Collection;\n-  #29 = Utf8               LocalVariableTypeTable\n-  #30 = Utf8               Ljava/util/Collection<Ldev/langchain4j/rag/content/retriever/ContentRetriever;>;\n-  #31 = Utf8               RuntimeVisibleAnnotations\n-  #32 = Utf8               Lorg/junit/jupiter/api/Test;\n-  #33 = Utf8               should_route_to_multiple_retrievers\n-  #34 = Utf8               retriever2\n-  #35 = Utf8               should_route_to_multiple_retrievers_varargs\n-  #36 = Utf8               SourceFile\n-  #37 = Utf8               DefaultQueryRouterTest.java\n-  #38 = NameAndType        #15:#16        // \"<init>\":()V\n-  #39 = Utf8               dev/langchain4j/rag/content/retriever/ContentRetriever\n-  #40 = Class              #58            // org/mockito/Mockito\n-  #41 = NameAndType        #59:#60        // mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-  #42 = Utf8               dev/langchain4j/rag/query/router/DefaultQueryRouter\n-  #43 = NameAndType        #15:#61        // \"<init>\":([Ldev/langchain4j/rag/content/retriever/ContentRetriever;)V\n-  #44 = Utf8               query\n-  #45 = Class              #62            // dev/langchain4j/rag/query/Query\n-  #46 = NameAndType        #63:#64        // from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-  #47 = Class              #65            // dev/langchain4j/rag/query/router/QueryRouter\n-  #48 = NameAndType        #66:#67        // route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n-  #49 = Class              #68            // org/assertj/core/api/Assertions\n-  #50 = NameAndType        #69:#70        // assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n-  #51 = Class              #71            // org/assertj/core/api/AbstractCollectionAssert\n-  #52 = NameAndType        #72:#73        // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #53 = Class              #74            // java/util/Arrays\n-  #54 = NameAndType        #75:#76        // asList:([Ljava/lang/Object;)Ljava/util/List;\n-  #55 = NameAndType        #15:#77        // \"<init>\":(Ljava/util/Collection;)V\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Class              #8             // dev/langchain4j/rag/content/retriever/ContentRetriever\n+   #8 = Utf8               dev/langchain4j/rag/content/retriever/ContentRetriever\n+   #9 = Methodref          #10.#11        // org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+  #10 = Class              #12            // org/mockito/Mockito\n+  #11 = NameAndType        #13:#14        // mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+  #12 = Utf8               org/mockito/Mockito\n+  #13 = Utf8               mock\n+  #14 = Utf8               (Ljava/lang/Class;)Ljava/lang/Object;\n+  #15 = Class              #16            // dev/langchain4j/rag/query/router/DefaultQueryRouter\n+  #16 = Utf8               dev/langchain4j/rag/query/router/DefaultQueryRouter\n+  #17 = Methodref          #15.#18        // dev/langchain4j/rag/query/router/DefaultQueryRouter.\"<init>\":([Ldev/langchain4j/rag/content/retriever/ContentRetriever;)V\n+  #18 = NameAndType        #5:#19         // \"<init>\":([Ldev/langchain4j/rag/content/retriever/ContentRetriever;)V\n+  #19 = Utf8               ([Ldev/langchain4j/rag/content/retriever/ContentRetriever;)V\n+  #20 = String             #21            // query\n+  #21 = Utf8               query\n+  #22 = Methodref          #23.#24        // dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+  #23 = Class              #25            // dev/langchain4j/rag/query/Query\n+  #24 = NameAndType        #26:#27        // from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+  #25 = Utf8               dev/langchain4j/rag/query/Query\n+  #26 = Utf8               from\n+  #27 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+  #28 = InterfaceMethodref #29.#30        // dev/langchain4j/rag/query/router/QueryRouter.route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+  #29 = Class              #31            // dev/langchain4j/rag/query/router/QueryRouter\n+  #30 = NameAndType        #32:#33        // route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+  #31 = Utf8               dev/langchain4j/rag/query/router/QueryRouter\n+  #32 = Utf8               route\n+  #33 = Utf8               (Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+  #34 = Methodref          #35.#36        // org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+  #35 = Class              #37            // org/assertj/core/api/Assertions\n+  #36 = NameAndType        #38:#39        // assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+  #37 = Utf8               org/assertj/core/api/Assertions\n+  #38 = Utf8               assertThat\n+  #39 = Utf8               (Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+  #40 = Methodref          #41.#42        // org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #41 = Class              #43            // org/assertj/core/api/AbstractCollectionAssert\n+  #42 = NameAndType        #44:#45        // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #43 = Utf8               org/assertj/core/api/AbstractCollectionAssert\n+  #44 = Utf8               containsExactly\n+  #45 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #46 = Methodref          #47.#48        // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+  #47 = Class              #49            // java/util/Arrays\n+  #48 = NameAndType        #50:#51        // asList:([Ljava/lang/Object;)Ljava/util/List;\n+  #49 = Utf8               java/util/Arrays\n+  #50 = Utf8               asList\n+  #51 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n+  #52 = Methodref          #15.#53        // dev/langchain4j/rag/query/router/DefaultQueryRouter.\"<init>\":(Ljava/util/Collection;)V\n+  #53 = NameAndType        #5:#54         // \"<init>\":(Ljava/util/Collection;)V\n+  #54 = Utf8               (Ljava/util/Collection;)V\n+  #55 = Class              #56            // dev/langchain4j/rag/query/router/DefaultQueryRouterTest\n   #56 = Utf8               dev/langchain4j/rag/query/router/DefaultQueryRouterTest\n-  #57 = Utf8               java/lang/Object\n-  #58 = Utf8               org/mockito/Mockito\n-  #59 = Utf8               mock\n-  #60 = Utf8               (Ljava/lang/Class;)Ljava/lang/Object;\n-  #61 = Utf8               ([Ldev/langchain4j/rag/content/retriever/ContentRetriever;)V\n-  #62 = Utf8               dev/langchain4j/rag/query/Query\n-  #63 = Utf8               from\n-  #64 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-  #65 = Utf8               dev/langchain4j/rag/query/router/QueryRouter\n-  #66 = Utf8               route\n-  #67 = Utf8               (Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n-  #68 = Utf8               org/assertj/core/api/Assertions\n-  #69 = Utf8               assertThat\n-  #70 = Utf8               (Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n-  #71 = Utf8               org/assertj/core/api/AbstractCollectionAssert\n-  #72 = Utf8               containsExactly\n-  #73 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #74 = Utf8               java/util/Arrays\n-  #75 = Utf8               asList\n-  #76 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n-  #77 = Utf8               (Ljava/util/Collection;)V\n+  #57 = Utf8               Code\n+  #58 = Utf8               LineNumberTable\n+  #59 = Utf8               LocalVariableTable\n+  #60 = Utf8               this\n+  #61 = Utf8               Ldev/langchain4j/rag/query/router/DefaultQueryRouterTest;\n+  #62 = Utf8               should_route_to_single_retriever\n+  #63 = Utf8               retriever1\n+  #64 = Utf8               Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n+  #65 = Utf8               router\n+  #66 = Utf8               Ldev/langchain4j/rag/query/router/QueryRouter;\n+  #67 = Utf8               retrievers\n+  #68 = Utf8               Ljava/util/Collection;\n+  #69 = Utf8               LocalVariableTypeTable\n+  #70 = Utf8               Ljava/util/Collection<Ldev/langchain4j/rag/content/retriever/ContentRetriever;>;\n+  #71 = Utf8               RuntimeVisibleAnnotations\n+  #72 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #73 = Utf8               should_route_to_multiple_retrievers\n+  #74 = Utf8               retriever2\n+  #75 = Utf8               should_route_to_multiple_retrievers_varargs\n+  #76 = Utf8               SourceFile\n+  #77 = Utf8               DefaultQueryRouterTest.java\n {\n   dev.langchain4j.rag.query.router.DefaultQueryRouterTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -101,42 +101,42 @@\n             0       5     0  this   Ldev/langchain4j/rag/query/router/DefaultQueryRouterTest;\n \n   void should_route_to_single_retriever();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=6, locals=4, args_size=1\n-         0: ldc           #2                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n-         2: invokestatic  #3                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-         5: checkcast     #2                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n+         0: ldc           #7                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n+         2: invokestatic  #9                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+         5: checkcast     #7                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n          8: astore_1\n-         9: new           #4                  // class dev/langchain4j/rag/query/router/DefaultQueryRouter\n+         9: new           #15                 // class dev/langchain4j/rag/query/router/DefaultQueryRouter\n         12: dup\n         13: iconst_1\n-        14: anewarray     #2                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n+        14: anewarray     #7                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n         17: dup\n         18: iconst_0\n         19: aload_1\n         20: aastore\n-        21: invokespecial #5                  // Method dev/langchain4j/rag/query/router/DefaultQueryRouter.\"<init>\":([Ldev/langchain4j/rag/content/retriever/ContentRetriever;)V\n+        21: invokespecial #17                 // Method dev/langchain4j/rag/query/router/DefaultQueryRouter.\"<init>\":([Ldev/langchain4j/rag/content/retriever/ContentRetriever;)V\n         24: astore_2\n         25: aload_2\n-        26: ldc           #6                  // String query\n-        28: invokestatic  #7                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-        31: invokeinterface #8,  2            // InterfaceMethod dev/langchain4j/rag/query/router/QueryRouter.route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+        26: ldc           #20                 // String query\n+        28: invokestatic  #22                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+        31: invokeinterface #28,  2           // InterfaceMethod dev/langchain4j/rag/query/router/QueryRouter.route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n         36: astore_3\n         37: aload_3\n-        38: invokestatic  #9                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+        38: invokestatic  #34                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n         41: iconst_1\n-        42: anewarray     #2                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n+        42: anewarray     #7                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n         45: dup\n         46: iconst_0\n         47: aload_1\n         48: aastore\n-        49: invokevirtual #10                 // Method org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+        49: invokevirtual #40                 // Method org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n         52: pop\n         53: return\n       LineNumberTable:\n         line 19: 0\n         line 20: 9\n         line 23: 25\n         line 26: 37\n@@ -147,63 +147,63 @@\n             9      45     1 retriever1   Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n            25      29     2 router   Ldev/langchain4j/rag/query/router/QueryRouter;\n            37      17     3 retrievers   Ljava/util/Collection;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            37      17     3 retrievers   Ljava/util/Collection<Ldev/langchain4j/rag/content/retriever/ContentRetriever;>;\n     RuntimeVisibleAnnotations:\n-      0: #32()\n+      0: #72()\n         org.junit.jupiter.api.Test\n \n   void should_route_to_multiple_retrievers();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=6, locals=5, args_size=1\n-         0: ldc           #2                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n-         2: invokestatic  #3                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-         5: checkcast     #2                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n+         0: ldc           #7                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n+         2: invokestatic  #9                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+         5: checkcast     #7                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n          8: astore_1\n-         9: ldc           #2                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n-        11: invokestatic  #3                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-        14: checkcast     #2                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n+         9: ldc           #7                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n+        11: invokestatic  #9                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+        14: checkcast     #7                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n         17: astore_2\n-        18: new           #4                  // class dev/langchain4j/rag/query/router/DefaultQueryRouter\n+        18: new           #15                 // class dev/langchain4j/rag/query/router/DefaultQueryRouter\n         21: dup\n         22: iconst_2\n-        23: anewarray     #2                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n+        23: anewarray     #7                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n         26: dup\n         27: iconst_0\n         28: aload_1\n         29: aastore\n         30: dup\n         31: iconst_1\n         32: aload_2\n         33: aastore\n-        34: invokestatic  #11                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-        37: invokespecial #12                 // Method dev/langchain4j/rag/query/router/DefaultQueryRouter.\"<init>\":(Ljava/util/Collection;)V\n+        34: invokestatic  #46                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        37: invokespecial #52                 // Method dev/langchain4j/rag/query/router/DefaultQueryRouter.\"<init>\":(Ljava/util/Collection;)V\n         40: astore_3\n         41: aload_3\n-        42: ldc           #6                  // String query\n-        44: invokestatic  #7                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-        47: invokeinterface #8,  2            // InterfaceMethod dev/langchain4j/rag/query/router/QueryRouter.route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+        42: ldc           #20                 // String query\n+        44: invokestatic  #22                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+        47: invokeinterface #28,  2           // InterfaceMethod dev/langchain4j/rag/query/router/QueryRouter.route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n         52: astore        4\n         54: aload         4\n-        56: invokestatic  #9                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+        56: invokestatic  #34                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n         59: iconst_2\n-        60: anewarray     #2                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n+        60: anewarray     #7                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n         63: dup\n         64: iconst_0\n         65: aload_1\n         66: aastore\n         67: dup\n         68: iconst_1\n         69: aload_2\n         70: aastore\n-        71: invokevirtual #10                 // Method org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+        71: invokevirtual #40                 // Method org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n         74: pop\n         75: return\n       LineNumberTable:\n         line 33: 0\n         line 34: 9\n         line 35: 18\n         line 38: 41\n@@ -216,62 +216,62 @@\n            18      58     2 retriever2   Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n            41      35     3 router   Ldev/langchain4j/rag/query/router/QueryRouter;\n            54      22     4 retrievers   Ljava/util/Collection;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            54      22     4 retrievers   Ljava/util/Collection<Ldev/langchain4j/rag/content/retriever/ContentRetriever;>;\n     RuntimeVisibleAnnotations:\n-      0: #32()\n+      0: #72()\n         org.junit.jupiter.api.Test\n \n   void should_route_to_multiple_retrievers_varargs();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=6, locals=5, args_size=1\n-         0: ldc           #2                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n-         2: invokestatic  #3                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-         5: checkcast     #2                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n+         0: ldc           #7                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n+         2: invokestatic  #9                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+         5: checkcast     #7                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n          8: astore_1\n-         9: ldc           #2                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n-        11: invokestatic  #3                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-        14: checkcast     #2                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n+         9: ldc           #7                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n+        11: invokestatic  #9                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+        14: checkcast     #7                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n         17: astore_2\n-        18: new           #4                  // class dev/langchain4j/rag/query/router/DefaultQueryRouter\n+        18: new           #15                 // class dev/langchain4j/rag/query/router/DefaultQueryRouter\n         21: dup\n         22: iconst_2\n-        23: anewarray     #2                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n+        23: anewarray     #7                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n         26: dup\n         27: iconst_0\n         28: aload_1\n         29: aastore\n         30: dup\n         31: iconst_1\n         32: aload_2\n         33: aastore\n-        34: invokespecial #5                  // Method dev/langchain4j/rag/query/router/DefaultQueryRouter.\"<init>\":([Ldev/langchain4j/rag/content/retriever/ContentRetriever;)V\n+        34: invokespecial #17                 // Method dev/langchain4j/rag/query/router/DefaultQueryRouter.\"<init>\":([Ldev/langchain4j/rag/content/retriever/ContentRetriever;)V\n         37: astore_3\n         38: aload_3\n-        39: ldc           #6                  // String query\n-        41: invokestatic  #7                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-        44: invokeinterface #8,  2            // InterfaceMethod dev/langchain4j/rag/query/router/QueryRouter.route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+        39: ldc           #20                 // String query\n+        41: invokestatic  #22                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+        44: invokeinterface #28,  2           // InterfaceMethod dev/langchain4j/rag/query/router/QueryRouter.route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n         49: astore        4\n         51: aload         4\n-        53: invokestatic  #9                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+        53: invokestatic  #34                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n         56: iconst_2\n-        57: anewarray     #2                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n+        57: anewarray     #7                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n         60: dup\n         61: iconst_0\n         62: aload_1\n         63: aastore\n         64: dup\n         65: iconst_1\n         66: aload_2\n         67: aastore\n-        68: invokevirtual #10                 // Method org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+        68: invokevirtual #40                 // Method org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n         71: pop\n         72: return\n       LineNumberTable:\n         line 48: 0\n         line 49: 9\n         line 50: 18\n         line 53: 38\n@@ -284,11 +284,11 @@\n            18      55     2 retriever2   Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n            38      35     3 router   Ldev/langchain4j/rag/query/router/QueryRouter;\n            51      22     4 retrievers   Ljava/util/Collection;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            51      22     4 retrievers   Ljava/util/Collection<Ldev/langchain4j/rag/content/retriever/ContentRetriever;>;\n     RuntimeVisibleAnnotations:\n-      0: #32()\n+      0: #72()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"DefaultQueryRouterTest.java\"\n"}]}, {"source1": "dev/langchain4j/rag/query/router/LanguageModelQueryRouterTest.class", "source2": "dev/langchain4j/rag/query/router/LanguageModelQueryRouterTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,186 +1,186 @@\n-  SHA-256 checksum faf53d981975c3ecfdb3f2e330588e7913dc2ed8262512fde6c938bf6d3844e8\n+  SHA-256 checksum 7dd7e7e2a3dd09176f1a122aab414ccf8ecacc6cc257f04fd5ed8dca4f9e45ac\n   Compiled from \"LanguageModelQueryRouterTest.java\"\n class dev.langchain4j.rag.query.router.LanguageModelQueryRouterTest\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #36                         // dev/langchain4j/rag/query/router/LanguageModelQueryRouterTest\n-  super_class: #37                        // java/lang/Object\n+  this_class: #19                         // dev/langchain4j/rag/query/router/LanguageModelQueryRouterTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 2, methods: 5, attributes: 3\n Constant pool:\n-    #1 = Methodref          #37.#75       // java/lang/Object.\"<init>\":()V\n-    #2 = String             #76           // Do Labradors shed?\n-    #3 = Methodref          #77.#78       // dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-    #4 = Class              #79           // java/util/LinkedHashMap\n-    #5 = Methodref          #4.#75        // java/util/LinkedHashMap.\"<init>\":()V\n-    #6 = Fieldref           #36.#80       // dev/langchain4j/rag/query/router/LanguageModelQueryRouterTest.catArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n-    #7 = String             #81           // articles about cats\n-    #8 = InterfaceMethodref #82.#83       // java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-    #9 = Fieldref           #36.#84       // dev/langchain4j/rag/query/router/LanguageModelQueryRouterTest.dogArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n-   #10 = String             #85           // articles about dogs\n-   #11 = String             #86           // 2\n-   #12 = Methodref          #87.#88       // dev/langchain4j/model/chat/mock/ChatModelMock.withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n-   #13 = Class              #89           // dev/langchain4j/rag/query/router/LanguageModelQueryRouter\n-   #14 = Methodref          #13.#90       // dev/langchain4j/rag/query/router/LanguageModelQueryRouter.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/Map;)V\n-   #15 = InterfaceMethodref #91.#92       // dev/langchain4j/rag/query/router/QueryRouter.route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n-   #16 = Methodref          #93.#94       // org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n-   #17 = Class              #95           // dev/langchain4j/rag/content/retriever/ContentRetriever\n-   #18 = Methodref          #96.#97       // org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-   #19 = Methodref          #87.#98       // dev/langchain4j/model/chat/mock/ChatModelMock.userMessageText:()Ljava/lang/String;\n-   #20 = Methodref          #93.#99       // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #21 = String             #100          // Based on the user query, determine the most suitable data source(s) to retrieve relevant information from the following options:\\n1: articles about cats\\n2: articles about dogs\\nIt is very important that your answer consists of either a single number or multiple numbers separated by commas and nothing else!\\nUser query: Do Labradors shed?\n-   #22 = Methodref          #101.#102     // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #23 = Methodref          #13.#103      // dev/langchain4j/rag/query/router/LanguageModelQueryRouter.builder:()Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder;\n-   #24 = Methodref          #104.#105     // dev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder.chatLanguageModel:(Ldev/langchain4j/model/chat/ChatLanguageModel;)Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder;\n-   #25 = Methodref          #104.#106     // dev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder.retrieverToDescription:(Ljava/util/Map;)Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder;\n-   #26 = Methodref          #104.#107     // dev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder.build:()Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter;\n-   #27 = String             #108          // Which animal is the fluffiest?\n-   #28 = Class              #109          // java/util/HashMap\n-   #29 = Methodref          #28.#75       // java/util/HashMap.\"<init>\":()V\n-   #30 = String             #110          // 1, 2\n-   #31 = Methodref          #96.#111      // org/assertj/core/api/AbstractCollectionAssert.containsExactlyInAnyOrder:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-   #32 = String             #112          // Which source should I use to get answer for \\'{{query}}\\'? Options: {{options}}\\'\n-   #33 = Methodref          #113.#114     // dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n-   #34 = Methodref          #13.#115      // dev/langchain4j/rag/query/router/LanguageModelQueryRouter.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/Map;Ldev/langchain4j/model/input/PromptTemplate;)V\n-   #35 = String             #116          // Which source should I use to get answer for \\'Which animal is the fluffiest?\\'? Options: 1: articles about cats\\n2: articles about dogs\\'\n-   #36 = Class              #117          // dev/langchain4j/rag/query/router/LanguageModelQueryRouterTest\n-   #37 = Class              #118          // java/lang/Object\n-   #38 = Utf8               catArticlesRetriever\n-   #39 = Utf8               Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n-   #40 = Utf8               RuntimeVisibleAnnotations\n-   #41 = Utf8               Lorg/mockito/Mock;\n-   #42 = Utf8               dogArticlesRetriever\n-   #43 = Utf8               <init>\n-   #44 = Utf8               ()V\n-   #45 = Utf8               Code\n-   #46 = Utf8               LineNumberTable\n-   #47 = Utf8               LocalVariableTable\n-   #48 = Utf8               this\n-   #49 = Utf8               Ldev/langchain4j/rag/query/router/LanguageModelQueryRouterTest;\n-   #50 = Utf8               should_route_to_single_retriever\n-   #51 = Utf8               query\n-   #52 = Utf8               Ldev/langchain4j/rag/query/Query;\n-   #53 = Utf8               retrieverToDescription\n-   #54 = Utf8               Ljava/util/Map;\n-   #55 = Utf8               model\n-   #56 = Utf8               Ldev/langchain4j/model/chat/mock/ChatModelMock;\n-   #57 = Utf8               router\n-   #58 = Utf8               Ldev/langchain4j/rag/query/router/QueryRouter;\n-   #59 = Utf8               retrievers\n-   #60 = Utf8               Ljava/util/Collection;\n-   #61 = Utf8               LocalVariableTypeTable\n-   #62 = Utf8               Ljava/util/Map<Ldev/langchain4j/rag/content/retriever/ContentRetriever;Ljava/lang/String;>;\n-   #63 = Utf8               Ljava/util/Collection<Ldev/langchain4j/rag/content/retriever/ContentRetriever;>;\n-   #64 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #65 = Utf8               should_route_to_single_retriever_builder\n-   #66 = Utf8               should_route_to_multiple_retrievers\n-   #67 = Utf8               should_route_to_multiple_retrievers_with_custom_prompt_template\n-   #68 = Utf8               promptTemplate\n-   #69 = Utf8               Ldev/langchain4j/model/input/PromptTemplate;\n-   #70 = Utf8               SourceFile\n-   #71 = Utf8               LanguageModelQueryRouterTest.java\n-   #72 = Utf8               Lorg/junit/jupiter/api/extension/ExtendWith;\n-   #73 = Utf8               value\n-   #74 = Utf8               Lorg/mockito/junit/jupiter/MockitoExtension;\n-   #75 = NameAndType        #43:#44       // \"<init>\":()V\n-   #76 = Utf8               Do Labradors shed?\n-   #77 = Class              #119          // dev/langchain4j/rag/query/Query\n-   #78 = NameAndType        #120:#121     // from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-   #79 = Utf8               java/util/LinkedHashMap\n-   #80 = NameAndType        #38:#39       // catArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n-   #81 = Utf8               articles about cats\n-   #82 = Class              #122          // java/util/Map\n-   #83 = NameAndType        #123:#124     // put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-   #84 = NameAndType        #42:#39       // dogArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n-   #85 = Utf8               articles about dogs\n-   #86 = Utf8               2\n-   #87 = Class              #125          // dev/langchain4j/model/chat/mock/ChatModelMock\n-   #88 = NameAndType        #126:#127     // withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n-   #89 = Utf8               dev/langchain4j/rag/query/router/LanguageModelQueryRouter\n-   #90 = NameAndType        #43:#128      // \"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/Map;)V\n-   #91 = Class              #129          // dev/langchain4j/rag/query/router/QueryRouter\n-   #92 = NameAndType        #130:#131     // route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n-   #93 = Class              #132          // org/assertj/core/api/Assertions\n-   #94 = NameAndType        #133:#134     // assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n-   #95 = Utf8               dev/langchain4j/rag/content/retriever/ContentRetriever\n-   #96 = Class              #135          // org/assertj/core/api/AbstractCollectionAssert\n-   #97 = NameAndType        #136:#137     // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-   #98 = NameAndType        #138:#139     // userMessageText:()Ljava/lang/String;\n-   #99 = NameAndType        #133:#140     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #100 = Utf8               Based on the user query, determine the most suitable data source(s) to retrieve relevant information from the following options:\\n1: articles about cats\\n2: articles about dogs\\nIt is very important that your answer consists of either a single number or multiple numbers separated by commas and nothing else!\\nUser query: Do Labradors shed?\n-  #101 = Class              #141          // org/assertj/core/api/AbstractStringAssert\n-  #102 = NameAndType        #142:#140     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #103 = NameAndType        #143:#146     // builder:()Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder;\n-  #104 = Class              #147          // dev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder\n-  #105 = NameAndType        #148:#149     // chatLanguageModel:(Ldev/langchain4j/model/chat/ChatLanguageModel;)Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder;\n-  #106 = NameAndType        #53:#150      // retrieverToDescription:(Ljava/util/Map;)Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder;\n-  #107 = NameAndType        #151:#152     // build:()Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter;\n-  #108 = Utf8               Which animal is the fluffiest?\n-  #109 = Utf8               java/util/HashMap\n-  #110 = Utf8               1, 2\n-  #111 = NameAndType        #153:#137     // containsExactlyInAnyOrder:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #112 = Utf8               Which source should I use to get answer for \\'{{query}}\\'? Options: {{options}}\\'\n-  #113 = Class              #154          // dev/langchain4j/model/input/PromptTemplate\n-  #114 = NameAndType        #120:#155     // from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n-  #115 = NameAndType        #43:#156      // \"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/Map;Ldev/langchain4j/model/input/PromptTemplate;)V\n-  #116 = Utf8               Which source should I use to get answer for \\'Which animal is the fluffiest?\\'? Options: 1: articles about cats\\n2: articles about dogs\\'\n-  #117 = Utf8               dev/langchain4j/rag/query/router/LanguageModelQueryRouterTest\n-  #118 = Utf8               java/lang/Object\n-  #119 = Utf8               dev/langchain4j/rag/query/Query\n-  #120 = Utf8               from\n-  #121 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-  #122 = Utf8               java/util/Map\n-  #123 = Utf8               put\n-  #124 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-  #125 = Utf8               dev/langchain4j/model/chat/mock/ChatModelMock\n-  #126 = Utf8               withStaticResponse\n-  #127 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n-  #128 = Utf8               (Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/Map;)V\n-  #129 = Utf8               dev/langchain4j/rag/query/router/QueryRouter\n-  #130 = Utf8               route\n-  #131 = Utf8               (Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n-  #132 = Utf8               org/assertj/core/api/Assertions\n-  #133 = Utf8               assertThat\n-  #134 = Utf8               (Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n-  #135 = Utf8               org/assertj/core/api/AbstractCollectionAssert\n-  #136 = Utf8               containsExactly\n-  #137 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #138 = Utf8               userMessageText\n-  #139 = Utf8               ()Ljava/lang/String;\n-  #140 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #141 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #142 = Utf8               isEqualTo\n-  #143 = Utf8               builder\n-  #144 = Utf8               LanguageModelQueryRouterBuilder\n-  #145 = Utf8               InnerClasses\n-  #146 = Utf8               ()Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder;\n-  #147 = Utf8               dev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder\n-  #148 = Utf8               chatLanguageModel\n-  #149 = Utf8               (Ldev/langchain4j/model/chat/ChatLanguageModel;)Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder;\n-  #150 = Utf8               (Ljava/util/Map;)Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder;\n-  #151 = Utf8               build\n-  #152 = Utf8               ()Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter;\n-  #153 = Utf8               containsExactlyInAnyOrder\n-  #154 = Utf8               dev/langchain4j/model/input/PromptTemplate\n-  #155 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n-  #156 = Utf8               (Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/Map;Ldev/langchain4j/model/input/PromptTemplate;)V\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = String             #8            // Do Labradors shed?\n+    #8 = Utf8               Do Labradors shed?\n+    #9 = Methodref          #10.#11       // dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+   #10 = Class              #12           // dev/langchain4j/rag/query/Query\n+   #11 = NameAndType        #13:#14       // from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+   #12 = Utf8               dev/langchain4j/rag/query/Query\n+   #13 = Utf8               from\n+   #14 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+   #15 = Class              #16           // java/util/LinkedHashMap\n+   #16 = Utf8               java/util/LinkedHashMap\n+   #17 = Methodref          #15.#3        // java/util/LinkedHashMap.\"<init>\":()V\n+   #18 = Fieldref           #19.#20       // dev/langchain4j/rag/query/router/LanguageModelQueryRouterTest.catArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n+   #19 = Class              #21           // dev/langchain4j/rag/query/router/LanguageModelQueryRouterTest\n+   #20 = NameAndType        #22:#23       // catArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n+   #21 = Utf8               dev/langchain4j/rag/query/router/LanguageModelQueryRouterTest\n+   #22 = Utf8               catArticlesRetriever\n+   #23 = Utf8               Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n+   #24 = String             #25           // articles about cats\n+   #25 = Utf8               articles about cats\n+   #26 = InterfaceMethodref #27.#28       // java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+   #27 = Class              #29           // java/util/Map\n+   #28 = NameAndType        #30:#31       // put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+   #29 = Utf8               java/util/Map\n+   #30 = Utf8               put\n+   #31 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+   #32 = Fieldref           #19.#33       // dev/langchain4j/rag/query/router/LanguageModelQueryRouterTest.dogArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n+   #33 = NameAndType        #34:#23       // dogArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n+   #34 = Utf8               dogArticlesRetriever\n+   #35 = String             #36           // articles about dogs\n+   #36 = Utf8               articles about dogs\n+   #37 = String             #38           // 2\n+   #38 = Utf8               2\n+   #39 = Methodref          #40.#41       // dev/langchain4j/model/chat/mock/ChatModelMock.withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n+   #40 = Class              #42           // dev/langchain4j/model/chat/mock/ChatModelMock\n+   #41 = NameAndType        #43:#44       // withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n+   #42 = Utf8               dev/langchain4j/model/chat/mock/ChatModelMock\n+   #43 = Utf8               withStaticResponse\n+   #44 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n+   #45 = Class              #46           // dev/langchain4j/rag/query/router/LanguageModelQueryRouter\n+   #46 = Utf8               dev/langchain4j/rag/query/router/LanguageModelQueryRouter\n+   #47 = Methodref          #45.#48       // dev/langchain4j/rag/query/router/LanguageModelQueryRouter.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/Map;)V\n+   #48 = NameAndType        #5:#49        // \"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/Map;)V\n+   #49 = Utf8               (Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/Map;)V\n+   #50 = InterfaceMethodref #51.#52       // dev/langchain4j/rag/query/router/QueryRouter.route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+   #51 = Class              #53           // dev/langchain4j/rag/query/router/QueryRouter\n+   #52 = NameAndType        #54:#55       // route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+   #53 = Utf8               dev/langchain4j/rag/query/router/QueryRouter\n+   #54 = Utf8               route\n+   #55 = Utf8               (Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+   #56 = Methodref          #57.#58       // org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+   #57 = Class              #59           // org/assertj/core/api/Assertions\n+   #58 = NameAndType        #60:#61       // assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+   #59 = Utf8               org/assertj/core/api/Assertions\n+   #60 = Utf8               assertThat\n+   #61 = Utf8               (Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+   #62 = Class              #63           // dev/langchain4j/rag/content/retriever/ContentRetriever\n+   #63 = Utf8               dev/langchain4j/rag/content/retriever/ContentRetriever\n+   #64 = Methodref          #65.#66       // org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #65 = Class              #67           // org/assertj/core/api/AbstractCollectionAssert\n+   #66 = NameAndType        #68:#69       // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #67 = Utf8               org/assertj/core/api/AbstractCollectionAssert\n+   #68 = Utf8               containsExactly\n+   #69 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #70 = Methodref          #40.#71       // dev/langchain4j/model/chat/mock/ChatModelMock.userMessageText:()Ljava/lang/String;\n+   #71 = NameAndType        #72:#73       // userMessageText:()Ljava/lang/String;\n+   #72 = Utf8               userMessageText\n+   #73 = Utf8               ()Ljava/lang/String;\n+   #74 = Methodref          #57.#75       // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #75 = NameAndType        #60:#76       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #76 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #77 = String             #78           // Based on the user query, determine the most suitable data source(s) to retrieve relevant information from the following options:\\n1: articles about cats\\n2: articles about dogs\\nIt is very important that your answer consists of either a single number or multiple numbers separated by commas and nothing else!\\nUser query: Do Labradors shed?\n+   #78 = Utf8               Based on the user query, determine the most suitable data source(s) to retrieve relevant information from the following options:\\n1: articles about cats\\n2: articles about dogs\\nIt is very important that your answer consists of either a single number or multiple numbers separated by commas and nothing else!\\nUser query: Do Labradors shed?\n+   #79 = Methodref          #80.#81       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #80 = Class              #82           // org/assertj/core/api/AbstractStringAssert\n+   #81 = NameAndType        #83:#76       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #82 = Utf8               org/assertj/core/api/AbstractStringAssert\n+   #83 = Utf8               isEqualTo\n+   #84 = Methodref          #45.#85       // dev/langchain4j/rag/query/router/LanguageModelQueryRouter.builder:()Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder;\n+   #85 = NameAndType        #86:#87       // builder:()Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder;\n+   #86 = Utf8               builder\n+   #87 = Utf8               ()Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder;\n+   #88 = Methodref          #89.#90       // dev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder.chatLanguageModel:(Ldev/langchain4j/model/chat/ChatLanguageModel;)Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder;\n+   #89 = Class              #91           // dev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder\n+   #90 = NameAndType        #92:#93       // chatLanguageModel:(Ldev/langchain4j/model/chat/ChatLanguageModel;)Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder;\n+   #91 = Utf8               dev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder\n+   #92 = Utf8               chatLanguageModel\n+   #93 = Utf8               (Ldev/langchain4j/model/chat/ChatLanguageModel;)Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder;\n+   #94 = Methodref          #89.#95       // dev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder.retrieverToDescription:(Ljava/util/Map;)Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder;\n+   #95 = NameAndType        #96:#97       // retrieverToDescription:(Ljava/util/Map;)Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder;\n+   #96 = Utf8               retrieverToDescription\n+   #97 = Utf8               (Ljava/util/Map;)Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder;\n+   #98 = Methodref          #89.#99       // dev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder.build:()Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter;\n+   #99 = NameAndType        #100:#101     // build:()Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter;\n+  #100 = Utf8               build\n+  #101 = Utf8               ()Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter;\n+  #102 = String             #103          // Which animal is the fluffiest?\n+  #103 = Utf8               Which animal is the fluffiest?\n+  #104 = Class              #105          // java/util/HashMap\n+  #105 = Utf8               java/util/HashMap\n+  #106 = Methodref          #104.#3       // java/util/HashMap.\"<init>\":()V\n+  #107 = String             #108          // 1, 2\n+  #108 = Utf8               1, 2\n+  #109 = Methodref          #65.#110      // org/assertj/core/api/AbstractCollectionAssert.containsExactlyInAnyOrder:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #110 = NameAndType        #111:#69      // containsExactlyInAnyOrder:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #111 = Utf8               containsExactlyInAnyOrder\n+  #112 = String             #113          // Which source should I use to get answer for \\'{{query}}\\'? Options: {{options}}\\'\n+  #113 = Utf8               Which source should I use to get answer for \\'{{query}}\\'? Options: {{options}}\\'\n+  #114 = Methodref          #115.#116     // dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+  #115 = Class              #117          // dev/langchain4j/model/input/PromptTemplate\n+  #116 = NameAndType        #13:#118      // from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+  #117 = Utf8               dev/langchain4j/model/input/PromptTemplate\n+  #118 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+  #119 = Methodref          #45.#120      // dev/langchain4j/rag/query/router/LanguageModelQueryRouter.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/Map;Ldev/langchain4j/model/input/PromptTemplate;)V\n+  #120 = NameAndType        #5:#121       // \"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/Map;Ldev/langchain4j/model/input/PromptTemplate;)V\n+  #121 = Utf8               (Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/Map;Ldev/langchain4j/model/input/PromptTemplate;)V\n+  #122 = String             #123          // Which source should I use to get answer for \\'Which animal is the fluffiest?\\'? Options: 1: articles about cats\\n2: articles about dogs\\'\n+  #123 = Utf8               Which source should I use to get answer for \\'Which animal is the fluffiest?\\'? Options: 1: articles about cats\\n2: articles about dogs\\'\n+  #124 = Utf8               RuntimeVisibleAnnotations\n+  #125 = Utf8               Lorg/mockito/Mock;\n+  #126 = Utf8               Code\n+  #127 = Utf8               LineNumberTable\n+  #128 = Utf8               LocalVariableTable\n+  #129 = Utf8               this\n+  #130 = Utf8               Ldev/langchain4j/rag/query/router/LanguageModelQueryRouterTest;\n+  #131 = Utf8               should_route_to_single_retriever\n+  #132 = Utf8               query\n+  #133 = Utf8               Ldev/langchain4j/rag/query/Query;\n+  #134 = Utf8               Ljava/util/Map;\n+  #135 = Utf8               model\n+  #136 = Utf8               Ldev/langchain4j/model/chat/mock/ChatModelMock;\n+  #137 = Utf8               router\n+  #138 = Utf8               Ldev/langchain4j/rag/query/router/QueryRouter;\n+  #139 = Utf8               retrievers\n+  #140 = Utf8               Ljava/util/Collection;\n+  #141 = Utf8               LocalVariableTypeTable\n+  #142 = Utf8               Ljava/util/Map<Ldev/langchain4j/rag/content/retriever/ContentRetriever;Ljava/lang/String;>;\n+  #143 = Utf8               Ljava/util/Collection<Ldev/langchain4j/rag/content/retriever/ContentRetriever;>;\n+  #144 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #145 = Utf8               should_route_to_single_retriever_builder\n+  #146 = Utf8               should_route_to_multiple_retrievers\n+  #147 = Utf8               should_route_to_multiple_retrievers_with_custom_prompt_template\n+  #148 = Utf8               promptTemplate\n+  #149 = Utf8               Ldev/langchain4j/model/input/PromptTemplate;\n+  #150 = Utf8               SourceFile\n+  #151 = Utf8               LanguageModelQueryRouterTest.java\n+  #152 = Utf8               Lorg/junit/jupiter/api/extension/ExtendWith;\n+  #153 = Utf8               value\n+  #154 = Utf8               Lorg/mockito/junit/jupiter/MockitoExtension;\n+  #155 = Utf8               InnerClasses\n+  #156 = Utf8               LanguageModelQueryRouterBuilder\n {\n   dev.langchain4j.rag.content.retriever.ContentRetriever catArticlesRetriever;\n     descriptor: Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n     flags: (0x0000)\n     RuntimeVisibleAnnotations:\n-      0: #41()\n+      0: #125()\n         org.mockito.Mock\n \n   dev.langchain4j.rag.content.retriever.ContentRetriever dogArticlesRetriever;\n     descriptor: Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n     flags: (0x0000)\n     RuntimeVisibleAnnotations:\n-      0: #41()\n+      0: #125()\n         org.mockito.Mock\n \n   dev.langchain4j.rag.query.router.LanguageModelQueryRouterTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n@@ -194,62 +194,62 @@\n             0       5     0  this   Ldev/langchain4j/rag/query/router/LanguageModelQueryRouterTest;\n \n   void should_route_to_single_retriever();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=5, locals=6, args_size=1\n-         0: ldc           #2                  // String Do Labradors shed?\n-         2: invokestatic  #3                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+         0: ldc           #7                  // String Do Labradors shed?\n+         2: invokestatic  #9                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n          5: astore_1\n-         6: new           #4                  // class java/util/LinkedHashMap\n+         6: new           #15                 // class java/util/LinkedHashMap\n          9: dup\n-        10: invokespecial #5                  // Method java/util/LinkedHashMap.\"<init>\":()V\n+        10: invokespecial #17                 // Method java/util/LinkedHashMap.\"<init>\":()V\n         13: astore_2\n         14: aload_2\n         15: aload_0\n-        16: getfield      #6                  // Field catArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n-        19: ldc           #7                  // String articles about cats\n-        21: invokeinterface #8,  3            // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+        16: getfield      #18                 // Field catArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n+        19: ldc           #24                 // String articles about cats\n+        21: invokeinterface #26,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n         26: pop\n         27: aload_2\n         28: aload_0\n-        29: getfield      #9                  // Field dogArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n-        32: ldc           #10                 // String articles about dogs\n-        34: invokeinterface #8,  3            // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+        29: getfield      #32                 // Field dogArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n+        32: ldc           #35                 // String articles about dogs\n+        34: invokeinterface #26,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n         39: pop\n-        40: ldc           #11                 // String 2\n-        42: invokestatic  #12                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n+        40: ldc           #37                 // String 2\n+        42: invokestatic  #39                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n         45: astore_3\n-        46: new           #13                 // class dev/langchain4j/rag/query/router/LanguageModelQueryRouter\n+        46: new           #45                 // class dev/langchain4j/rag/query/router/LanguageModelQueryRouter\n         49: dup\n         50: aload_3\n         51: aload_2\n-        52: invokespecial #14                 // Method dev/langchain4j/rag/query/router/LanguageModelQueryRouter.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/Map;)V\n+        52: invokespecial #47                 // Method dev/langchain4j/rag/query/router/LanguageModelQueryRouter.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/Map;)V\n         55: astore        4\n         57: aload         4\n         59: aload_1\n-        60: invokeinterface #15,  2           // InterfaceMethod dev/langchain4j/rag/query/router/QueryRouter.route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+        60: invokeinterface #50,  2           // InterfaceMethod dev/langchain4j/rag/query/router/QueryRouter.route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n         65: astore        5\n         67: aload         5\n-        69: invokestatic  #16                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+        69: invokestatic  #56                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n         72: iconst_1\n-        73: anewarray     #17                 // class dev/langchain4j/rag/content/retriever/ContentRetriever\n+        73: anewarray     #62                 // class dev/langchain4j/rag/content/retriever/ContentRetriever\n         76: dup\n         77: iconst_0\n         78: aload_0\n-        79: getfield      #9                  // Field dogArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n+        79: getfield      #32                 // Field dogArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n         82: aastore\n-        83: invokevirtual #18                 // Method org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+        83: invokevirtual #64                 // Method org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n         86: pop\n         87: aload_3\n-        88: invokevirtual #19                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.userMessageText:()Ljava/lang/String;\n-        91: invokestatic  #20                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        94: ldc           #21                 // String Based on the user query, determine the most suitable data source(s) to retrieve relevant information from the following options:\\n1: articles about cats\\n2: articles about dogs\\nIt is very important that your answer consists of either a single number or multiple numbers separated by commas and nothing else!\\nUser query: Do Labradors shed?\n-        96: invokevirtual #22                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        88: invokevirtual #70                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.userMessageText:()Ljava/lang/String;\n+        91: invokestatic  #74                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        94: ldc           #77                 // String Based on the user query, determine the most suitable data source(s) to retrieve relevant information from the following options:\\n1: articles about cats\\n2: articles about dogs\\nIt is very important that your answer consists of either a single number or multiple numbers separated by commas and nothing else!\\nUser query: Do Labradors shed?\n+        96: invokevirtual #79                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         99: pop\n        100: return\n       LineNumberTable:\n         line 32: 0\n         line 35: 6\n         line 36: 14\n         line 37: 27\n@@ -268,71 +268,71 @@\n            57      44     4 router   Ldev/langchain4j/rag/query/router/QueryRouter;\n            67      34     5 retrievers   Ljava/util/Collection;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            14      87     2 retrieverToDescription   Ljava/util/Map<Ldev/langchain4j/rag/content/retriever/ContentRetriever;Ljava/lang/String;>;\n            67      34     5 retrievers   Ljava/util/Collection<Ldev/langchain4j/rag/content/retriever/ContentRetriever;>;\n     RuntimeVisibleAnnotations:\n-      0: #64()\n+      0: #144()\n         org.junit.jupiter.api.Test\n \n   void should_route_to_single_retriever_builder();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=5, locals=6, args_size=1\n-         0: ldc           #2                  // String Do Labradors shed?\n-         2: invokestatic  #3                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+         0: ldc           #7                  // String Do Labradors shed?\n+         2: invokestatic  #9                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n          5: astore_1\n-         6: new           #4                  // class java/util/LinkedHashMap\n+         6: new           #15                 // class java/util/LinkedHashMap\n          9: dup\n-        10: invokespecial #5                  // Method java/util/LinkedHashMap.\"<init>\":()V\n+        10: invokespecial #17                 // Method java/util/LinkedHashMap.\"<init>\":()V\n         13: astore_2\n         14: aload_2\n         15: aload_0\n-        16: getfield      #6                  // Field catArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n-        19: ldc           #7                  // String articles about cats\n-        21: invokeinterface #8,  3            // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+        16: getfield      #18                 // Field catArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n+        19: ldc           #24                 // String articles about cats\n+        21: invokeinterface #26,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n         26: pop\n         27: aload_2\n         28: aload_0\n-        29: getfield      #9                  // Field dogArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n-        32: ldc           #10                 // String articles about dogs\n-        34: invokeinterface #8,  3            // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+        29: getfield      #32                 // Field dogArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n+        32: ldc           #35                 // String articles about dogs\n+        34: invokeinterface #26,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n         39: pop\n-        40: ldc           #11                 // String 2\n-        42: invokestatic  #12                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n+        40: ldc           #37                 // String 2\n+        42: invokestatic  #39                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n         45: astore_3\n-        46: invokestatic  #23                 // Method dev/langchain4j/rag/query/router/LanguageModelQueryRouter.builder:()Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder;\n+        46: invokestatic  #84                 // Method dev/langchain4j/rag/query/router/LanguageModelQueryRouter.builder:()Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder;\n         49: aload_3\n-        50: invokevirtual #24                 // Method dev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder.chatLanguageModel:(Ldev/langchain4j/model/chat/ChatLanguageModel;)Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder;\n+        50: invokevirtual #88                 // Method dev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder.chatLanguageModel:(Ldev/langchain4j/model/chat/ChatLanguageModel;)Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder;\n         53: aload_2\n-        54: invokevirtual #25                 // Method dev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder.retrieverToDescription:(Ljava/util/Map;)Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder;\n-        57: invokevirtual #26                 // Method dev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder.build:()Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter;\n+        54: invokevirtual #94                 // Method dev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder.retrieverToDescription:(Ljava/util/Map;)Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder;\n+        57: invokevirtual #98                 // Method dev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder.build:()Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter;\n         60: astore        4\n         62: aload         4\n         64: aload_1\n-        65: invokeinterface #15,  2           // InterfaceMethod dev/langchain4j/rag/query/router/QueryRouter.route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+        65: invokeinterface #50,  2           // InterfaceMethod dev/langchain4j/rag/query/router/QueryRouter.route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n         70: astore        5\n         72: aload         5\n-        74: invokestatic  #16                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+        74: invokestatic  #56                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n         77: iconst_1\n-        78: anewarray     #17                 // class dev/langchain4j/rag/content/retriever/ContentRetriever\n+        78: anewarray     #62                 // class dev/langchain4j/rag/content/retriever/ContentRetriever\n         81: dup\n         82: iconst_0\n         83: aload_0\n-        84: getfield      #9                  // Field dogArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n+        84: getfield      #32                 // Field dogArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n         87: aastore\n-        88: invokevirtual #18                 // Method org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+        88: invokevirtual #64                 // Method org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n         91: pop\n         92: aload_3\n-        93: invokevirtual #19                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.userMessageText:()Ljava/lang/String;\n-        96: invokestatic  #20                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        99: ldc           #21                 // String Based on the user query, determine the most suitable data source(s) to retrieve relevant information from the following options:\\n1: articles about cats\\n2: articles about dogs\\nIt is very important that your answer consists of either a single number or multiple numbers separated by commas and nothing else!\\nUser query: Do Labradors shed?\n-       101: invokevirtual #22                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        93: invokevirtual #70                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.userMessageText:()Ljava/lang/String;\n+        96: invokestatic  #74                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        99: ldc           #77                 // String Based on the user query, determine the most suitable data source(s) to retrieve relevant information from the following options:\\n1: articles about cats\\n2: articles about dogs\\nIt is very important that your answer consists of either a single number or multiple numbers separated by commas and nothing else!\\nUser query: Do Labradors shed?\n+       101: invokevirtual #79                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n        104: pop\n        105: return\n       LineNumberTable:\n         line 63: 0\n         line 66: 6\n         line 67: 14\n         line 68: 27\n@@ -354,69 +354,69 @@\n            62      44     4 router   Ldev/langchain4j/rag/query/router/QueryRouter;\n            72      34     5 retrievers   Ljava/util/Collection;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            14      92     2 retrieverToDescription   Ljava/util/Map<Ldev/langchain4j/rag/content/retriever/ContentRetriever;Ljava/lang/String;>;\n            72      34     5 retrievers   Ljava/util/Collection<Ldev/langchain4j/rag/content/retriever/ContentRetriever;>;\n     RuntimeVisibleAnnotations:\n-      0: #64()\n+      0: #144()\n         org.junit.jupiter.api.Test\n \n   void should_route_to_multiple_retrievers();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=5, locals=6, args_size=1\n-         0: ldc           #27                 // String Which animal is the fluffiest?\n-         2: invokestatic  #3                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+         0: ldc           #102                // String Which animal is the fluffiest?\n+         2: invokestatic  #9                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n          5: astore_1\n-         6: new           #28                 // class java/util/HashMap\n+         6: new           #104                // class java/util/HashMap\n          9: dup\n-        10: invokespecial #29                 // Method java/util/HashMap.\"<init>\":()V\n+        10: invokespecial #106                // Method java/util/HashMap.\"<init>\":()V\n         13: astore_2\n         14: aload_2\n         15: aload_0\n-        16: getfield      #6                  // Field catArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n-        19: ldc           #7                  // String articles about cats\n-        21: invokeinterface #8,  3            // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+        16: getfield      #18                 // Field catArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n+        19: ldc           #24                 // String articles about cats\n+        21: invokeinterface #26,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n         26: pop\n         27: aload_2\n         28: aload_0\n-        29: getfield      #9                  // Field dogArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n-        32: ldc           #10                 // String articles about dogs\n-        34: invokeinterface #8,  3            // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+        29: getfield      #32                 // Field dogArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n+        32: ldc           #35                 // String articles about dogs\n+        34: invokeinterface #26,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n         39: pop\n-        40: ldc           #30                 // String 1, 2\n-        42: invokestatic  #12                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n+        40: ldc           #107                // String 1, 2\n+        42: invokestatic  #39                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n         45: astore_3\n-        46: new           #13                 // class dev/langchain4j/rag/query/router/LanguageModelQueryRouter\n+        46: new           #45                 // class dev/langchain4j/rag/query/router/LanguageModelQueryRouter\n         49: dup\n         50: aload_3\n         51: aload_2\n-        52: invokespecial #14                 // Method dev/langchain4j/rag/query/router/LanguageModelQueryRouter.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/Map;)V\n+        52: invokespecial #47                 // Method dev/langchain4j/rag/query/router/LanguageModelQueryRouter.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/Map;)V\n         55: astore        4\n         57: aload         4\n         59: aload_1\n-        60: invokeinterface #15,  2           // InterfaceMethod dev/langchain4j/rag/query/router/QueryRouter.route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+        60: invokeinterface #50,  2           // InterfaceMethod dev/langchain4j/rag/query/router/QueryRouter.route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n         65: astore        5\n         67: aload         5\n-        69: invokestatic  #16                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+        69: invokestatic  #56                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n         72: iconst_2\n-        73: anewarray     #17                 // class dev/langchain4j/rag/content/retriever/ContentRetriever\n+        73: anewarray     #62                 // class dev/langchain4j/rag/content/retriever/ContentRetriever\n         76: dup\n         77: iconst_0\n         78: aload_0\n-        79: getfield      #6                  // Field catArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n+        79: getfield      #18                 // Field catArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n         82: aastore\n         83: dup\n         84: iconst_1\n         85: aload_0\n-        86: getfield      #9                  // Field dogArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n+        86: getfield      #32                 // Field dogArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n         89: aastore\n-        90: invokevirtual #31                 // Method org/assertj/core/api/AbstractCollectionAssert.containsExactlyInAnyOrder:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+        90: invokevirtual #109                // Method org/assertj/core/api/AbstractCollectionAssert.containsExactlyInAnyOrder:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n         93: pop\n         94: return\n       LineNumberTable:\n         line 97: 0\n         line 99: 6\n         line 100: 14\n         line 101: 27\n@@ -434,79 +434,79 @@\n            57      38     4 router   Ldev/langchain4j/rag/query/router/QueryRouter;\n            67      28     5 retrievers   Ljava/util/Collection;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            14      81     2 retrieverToDescription   Ljava/util/Map<Ldev/langchain4j/rag/content/retriever/ContentRetriever;Ljava/lang/String;>;\n            67      28     5 retrievers   Ljava/util/Collection<Ldev/langchain4j/rag/content/retriever/ContentRetriever;>;\n     RuntimeVisibleAnnotations:\n-      0: #64()\n+      0: #144()\n         org.junit.jupiter.api.Test\n \n   void should_route_to_multiple_retrievers_with_custom_prompt_template();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=5, locals=7, args_size=1\n-         0: ldc           #32                 // String Which source should I use to get answer for \\'{{query}}\\'? Options: {{options}}\\'\n-         2: invokestatic  #33                 // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+         0: ldc           #112                // String Which source should I use to get answer for \\'{{query}}\\'? Options: {{options}}\\'\n+         2: invokestatic  #114                // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n          5: astore_1\n-         6: ldc           #27                 // String Which animal is the fluffiest?\n-         8: invokestatic  #3                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+         6: ldc           #102                // String Which animal is the fluffiest?\n+         8: invokestatic  #9                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n         11: astore_2\n-        12: new           #4                  // class java/util/LinkedHashMap\n+        12: new           #15                 // class java/util/LinkedHashMap\n         15: dup\n-        16: invokespecial #5                  // Method java/util/LinkedHashMap.\"<init>\":()V\n+        16: invokespecial #17                 // Method java/util/LinkedHashMap.\"<init>\":()V\n         19: astore_3\n         20: aload_3\n         21: aload_0\n-        22: getfield      #6                  // Field catArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n-        25: ldc           #7                  // String articles about cats\n-        27: invokeinterface #8,  3            // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+        22: getfield      #18                 // Field catArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n+        25: ldc           #24                 // String articles about cats\n+        27: invokeinterface #26,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n         32: pop\n         33: aload_3\n         34: aload_0\n-        35: getfield      #9                  // Field dogArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n-        38: ldc           #10                 // String articles about dogs\n-        40: invokeinterface #8,  3            // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+        35: getfield      #32                 // Field dogArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n+        38: ldc           #35                 // String articles about dogs\n+        40: invokeinterface #26,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n         45: pop\n-        46: ldc           #30                 // String 1, 2\n-        48: invokestatic  #12                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n+        46: ldc           #107                // String 1, 2\n+        48: invokestatic  #39                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n         51: astore        4\n-        53: new           #13                 // class dev/langchain4j/rag/query/router/LanguageModelQueryRouter\n+        53: new           #45                 // class dev/langchain4j/rag/query/router/LanguageModelQueryRouter\n         56: dup\n         57: aload         4\n         59: aload_3\n         60: aload_1\n-        61: invokespecial #34                 // Method dev/langchain4j/rag/query/router/LanguageModelQueryRouter.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/Map;Ldev/langchain4j/model/input/PromptTemplate;)V\n+        61: invokespecial #119                // Method dev/langchain4j/rag/query/router/LanguageModelQueryRouter.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/Map;Ldev/langchain4j/model/input/PromptTemplate;)V\n         64: astore        5\n         66: aload         5\n         68: aload_2\n-        69: invokeinterface #15,  2           // InterfaceMethod dev/langchain4j/rag/query/router/QueryRouter.route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+        69: invokeinterface #50,  2           // InterfaceMethod dev/langchain4j/rag/query/router/QueryRouter.route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n         74: astore        6\n         76: aload         6\n-        78: invokestatic  #16                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+        78: invokestatic  #56                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n         81: iconst_2\n-        82: anewarray     #17                 // class dev/langchain4j/rag/content/retriever/ContentRetriever\n+        82: anewarray     #62                 // class dev/langchain4j/rag/content/retriever/ContentRetriever\n         85: dup\n         86: iconst_0\n         87: aload_0\n-        88: getfield      #6                  // Field catArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n+        88: getfield      #18                 // Field catArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n         91: aastore\n         92: dup\n         93: iconst_1\n         94: aload_0\n-        95: getfield      #9                  // Field dogArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n+        95: getfield      #32                 // Field dogArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n         98: aastore\n-        99: invokevirtual #31                 // Method org/assertj/core/api/AbstractCollectionAssert.containsExactlyInAnyOrder:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+        99: invokevirtual #109                // Method org/assertj/core/api/AbstractCollectionAssert.containsExactlyInAnyOrder:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n        102: pop\n        103: aload         4\n-       105: invokevirtual #19                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.userMessageText:()Ljava/lang/String;\n-       108: invokestatic  #20                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       111: ldc           #35                 // String Which source should I use to get answer for \\'Which animal is the fluffiest?\\'? Options: 1: articles about cats\\n2: articles about dogs\\'\n-       113: invokevirtual #22                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       105: invokevirtual #70                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.userMessageText:()Ljava/lang/String;\n+       108: invokestatic  #74                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       111: ldc           #122                // String Which source should I use to get answer for \\'Which animal is the fluffiest?\\'? Options: 1: articles about cats\\n2: articles about dogs\\'\n+       113: invokevirtual #79                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n        116: pop\n        117: return\n       LineNumberTable:\n         line 118: 0\n         line 123: 6\n         line 126: 12\n         line 127: 20\n@@ -527,18 +527,18 @@\n            66      52     5 router   Ldev/langchain4j/rag/query/router/QueryRouter;\n            76      42     6 retrievers   Ljava/util/Collection;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            20      98     3 retrieverToDescription   Ljava/util/Map<Ldev/langchain4j/rag/content/retriever/ContentRetriever;Ljava/lang/String;>;\n            76      42     6 retrievers   Ljava/util/Collection<Ldev/langchain4j/rag/content/retriever/ContentRetriever;>;\n     RuntimeVisibleAnnotations:\n-      0: #64()\n+      0: #144()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"LanguageModelQueryRouterTest.java\"\n RuntimeVisibleAnnotations:\n-  0: #72(#73=[c#74])\n+  0: #152(#153=[c#154])\n     org.junit.jupiter.api.extension.ExtendWith(\n       value=[class Lorg/mockito/junit/jupiter/MockitoExtension;]\n     )\n InnerClasses:\n-  public static #144= #104 of #13;        // LanguageModelQueryRouterBuilder=class dev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder of class dev/langchain4j/rag/query/router/LanguageModelQueryRouter\n+  public static #156= #89 of #45;         // LanguageModelQueryRouterBuilder=class dev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder of class dev/langchain4j/rag/query/router/LanguageModelQueryRouter\n"}]}, {"source1": "dev/langchain4j/rag/query/transformer/CompressingQueryTransformerTest.class", "source2": "dev/langchain4j/rag/query/transformer/CompressingQueryTransformerTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,234 +1,234 @@\n-  SHA-256 checksum c20a243e2341fb2e71ba3bc89578aa861c7751b3636c8532291f00014c8d77d6\n+  SHA-256 checksum bf39e3295650b81dd9025e16b7674880dc9588d8786bf97b2150df8568ec7dd0\n   Compiled from \"CompressingQueryTransformerTest.java\"\n class dev.langchain4j.rag.query.transformer.CompressingQueryTransformerTest\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #52                         // dev/langchain4j/rag/query/transformer/CompressingQueryTransformerTest\n-  super_class: #42                        // java/lang/Object\n+  this_class: #179                        // dev/langchain4j/rag/query/transformer/CompressingQueryTransformerTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 0, methods: 5, attributes: 2\n Constant pool:\n-    #1 = Methodref          #42.#90       // java/lang/Object.\"<init>\":()V\n-    #2 = Class              #91           // dev/langchain4j/data/message/ChatMessage\n-    #3 = String             #92           // Be polite\n-    #4 = Methodref          #93.#94       // dev/langchain4j/data/message/SystemMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n-    #5 = String             #95           // Tell me about Klaus Heisler\n-    #6 = Methodref          #96.#97       // dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-    #7 = String             #98           // He is a cool guy\n-    #8 = Methodref          #99.#100      // dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n-    #9 = Class              #101          // dev/langchain4j/agent/tool/ToolExecutionRequest\n-   #10 = Methodref          #9.#102       // dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #11 = String             #103          // 12345\n-   #12 = Methodref          #104.#105     // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #13 = String             #106          // current_time\n-   #14 = Methodref          #104.#107     // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #15 = String             #108          // {}\n-   #16 = Methodref          #104.#109     // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #17 = Methodref          #104.#110     // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-   #18 = Methodref          #99.#111      // dev/langchain4j/data/message/AiMessage.from:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n-   #19 = Methodref          #112.#113     // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-   #20 = String             #114          // How old is he?\n-   #21 = String             #115          // default\n-   #22 = Methodref          #116.#117     // dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n-   #23 = Methodref          #96.#118      // dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n-   #24 = Methodref          #31.#119      // dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n-   #25 = String             #120          // How old is Klaus Heisler?\n-   #26 = Methodref          #121.#122     // dev/langchain4j/model/chat/mock/ChatModelMock.withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n-   #27 = Class              #123          // dev/langchain4j/rag/query/transformer/CompressingQueryTransformer\n-   #28 = Methodref          #27.#124      // dev/langchain4j/rag/query/transformer/CompressingQueryTransformer.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;)V\n-   #29 = Methodref          #27.#125      // dev/langchain4j/rag/query/transformer/CompressingQueryTransformer.transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n-   #30 = Methodref          #126.#127     // org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n-   #31 = Class              #128          // dev/langchain4j/rag/query/Query\n-   #32 = Methodref          #31.#129      // dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-   #33 = Methodref          #130.#131     // org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-   #34 = Methodref          #121.#132     // dev/langchain4j/model/chat/mock/ChatModelMock.userMessageText:()Ljava/lang/String;\n-   #35 = Methodref          #126.#133     // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #36 = String             #134          // Read and understand the conversation between the User and the AI. Then, analyze the new query from the User. Identify all relevant details, terms, and context from both the conversation and the new query. Reformulate this query into a clear, concise, and self-contained format suitable for information retrieval.\\n\\nConversation:\\nUser: Tell me about Klaus Heisler\\nAI: He is a cool guy\\n\\nUser query: How old is he?\\n\\nIt is very important that you provide only reformulated query and nothing else! Do not prepend a query with anything!\n-   #37 = Methodref          #135.#136     // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #38 = Methodref          #137.#138     // java/util/Collections.emptyList:()Ljava/util/List;\n-   #39 = String             #139          // Hello\n-   #40 = Class              #140          // dev/langchain4j/model/chat/ChatLanguageModel\n-   #41 = Methodref          #141.#142     // org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-   #42 = Class              #143          // java/lang/Object\n-   #43 = Methodref          #141.#144     // org/mockito/Mockito.verifyNoInteractions:([Ljava/lang/Object;)V\n-   #44 = String             #145          // Given the following conversation: {{chatMemory}} reformulate the following query: {{query}}\n-   #45 = Methodref          #146.#147     // dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n-   #46 = Methodref          #27.#148      // dev/langchain4j/rag/query/transformer/CompressingQueryTransformer.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;Ldev/langchain4j/model/input/PromptTemplate;)V\n-   #47 = String             #149          // Given the following conversation: User: Tell me about Klaus Heisler\\nAI: He is a cool guy reformulate the following query: How old is he?\n-   #48 = Methodref          #27.#150      // dev/langchain4j/rag/query/transformer/CompressingQueryTransformer.builder:()Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder;\n-   #49 = Methodref          #151.#152     // dev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder.chatLanguageModel:(Ldev/langchain4j/model/chat/ChatLanguageModel;)Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder;\n-   #50 = Methodref          #151.#153     // dev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder.promptTemplate:(Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder;\n-   #51 = Methodref          #151.#154     // dev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder.build:()Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer;\n-   #52 = Class              #155          // dev/langchain4j/rag/query/transformer/CompressingQueryTransformerTest\n-   #53 = Utf8               <init>\n-   #54 = Utf8               ()V\n-   #55 = Utf8               Code\n-   #56 = Utf8               LineNumberTable\n-   #57 = Utf8               LocalVariableTable\n-   #58 = Utf8               this\n-   #59 = Utf8               Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformerTest;\n-   #60 = Utf8               should_compress_query_and_chat_memory_into_single_query\n-   #61 = Utf8               chatMemory\n-   #62 = Utf8               Ljava/util/List;\n-   #63 = Utf8               userMessage\n-   #64 = Utf8               Ldev/langchain4j/data/message/UserMessage;\n-   #65 = Utf8               metadata\n-   #66 = Utf8               Ldev/langchain4j/rag/query/Metadata;\n-   #67 = Utf8               query\n-   #68 = Utf8               Ldev/langchain4j/rag/query/Query;\n-   #69 = Utf8               expectedResultingQuery\n-   #70 = Utf8               Ljava/lang/String;\n-   #71 = Utf8               model\n-   #72 = Utf8               Ldev/langchain4j/model/chat/mock/ChatModelMock;\n-   #73 = Utf8               transformer\n-   #74 = Utf8               Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer;\n-   #75 = Utf8               queries\n-   #76 = Utf8               Ljava/util/Collection;\n-   #77 = Utf8               LocalVariableTypeTable\n-   #78 = Utf8               Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n-   #79 = Utf8               Ljava/util/Collection<Ldev/langchain4j/rag/query/Query;>;\n-   #80 = Utf8               RuntimeVisibleAnnotations\n-   #81 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #82 = Utf8               should_not_compress_when_empty_chat_memory\n-   #83 = Utf8               Ldev/langchain4j/model/chat/ChatLanguageModel;\n-   #84 = Utf8               should_compress_query_and_chat_memory_into_single_query_using_custom_prompt_template\n-   #85 = Utf8               promptTemplate\n-   #86 = Utf8               Ldev/langchain4j/model/input/PromptTemplate;\n-   #87 = Utf8               should_compress_query_and_chat_memory_into_single_query_using_custom_prompt_template_builder\n-   #88 = Utf8               SourceFile\n-   #89 = Utf8               CompressingQueryTransformerTest.java\n-   #90 = NameAndType        #53:#54       // \"<init>\":()V\n-   #91 = Utf8               dev/langchain4j/data/message/ChatMessage\n-   #92 = Utf8               Be polite\n-   #93 = Class              #156          // dev/langchain4j/data/message/SystemMessage\n-   #94 = NameAndType        #157:#158     // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n-   #95 = Utf8               Tell me about Klaus Heisler\n-   #96 = Class              #159          // dev/langchain4j/data/message/UserMessage\n-   #97 = NameAndType        #157:#160     // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-   #98 = Utf8               He is a cool guy\n-   #99 = Class              #161          // dev/langchain4j/data/message/AiMessage\n-  #100 = NameAndType        #157:#162     // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n-  #101 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest\n-  #102 = NameAndType        #163:#166     // builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #103 = Utf8               12345\n-  #104 = Class              #167          // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n-  #105 = NameAndType        #168:#169     // id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #106 = Utf8               current_time\n-  #107 = NameAndType        #170:#169     // name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #108 = Utf8               {}\n-  #109 = NameAndType        #171:#169     // arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #110 = NameAndType        #172:#173     // build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-  #111 = NameAndType        #157:#174     // from:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n-  #112 = Class              #175          // java/util/Arrays\n-  #113 = NameAndType        #176:#177     // asList:([Ljava/lang/Object;)Ljava/util/List;\n-  #114 = Utf8               How old is he?\n-  #115 = Utf8               default\n-  #116 = Class              #178          // dev/langchain4j/rag/query/Metadata\n-  #117 = NameAndType        #157:#179     // from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n-  #118 = NameAndType        #180:#181     // text:()Ljava/lang/String;\n-  #119 = NameAndType        #157:#182     // from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n-  #120 = Utf8               How old is Klaus Heisler?\n-  #121 = Class              #183          // dev/langchain4j/model/chat/mock/ChatModelMock\n-  #122 = NameAndType        #184:#185     // withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n-  #123 = Utf8               dev/langchain4j/rag/query/transformer/CompressingQueryTransformer\n-  #124 = NameAndType        #53:#186      // \"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;)V\n-  #125 = NameAndType        #187:#188     // transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n-  #126 = Class              #189          // org/assertj/core/api/Assertions\n-  #127 = NameAndType        #190:#191     // assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n-  #128 = Utf8               dev/langchain4j/rag/query/Query\n-  #129 = NameAndType        #157:#192     // from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-  #130 = Class              #193          // org/assertj/core/api/AbstractCollectionAssert\n-  #131 = NameAndType        #194:#195     // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #132 = NameAndType        #196:#181     // userMessageText:()Ljava/lang/String;\n-  #133 = NameAndType        #190:#197     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #134 = Utf8               Read and understand the conversation between the User and the AI. Then, analyze the new query from the User. Identify all relevant details, terms, and context from both the conversation and the new query. Reformulate this query into a clear, concise, and self-contained format suitable for information retrieval.\\n\\nConversation:\\nUser: Tell me about Klaus Heisler\\nAI: He is a cool guy\\n\\nUser query: How old is he?\\n\\nIt is very important that you provide only reformulated query and nothing else! Do not prepend a query with anything!\n-  #135 = Class              #198          // org/assertj/core/api/AbstractStringAssert\n-  #136 = NameAndType        #199:#197     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #137 = Class              #200          // java/util/Collections\n-  #138 = NameAndType        #201:#202     // emptyList:()Ljava/util/List;\n-  #139 = Utf8               Hello\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Class              #8            // dev/langchain4j/data/message/ChatMessage\n+    #8 = Utf8               dev/langchain4j/data/message/ChatMessage\n+    #9 = String             #10           // Be polite\n+   #10 = Utf8               Be polite\n+   #11 = Methodref          #12.#13       // dev/langchain4j/data/message/SystemMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n+   #12 = Class              #14           // dev/langchain4j/data/message/SystemMessage\n+   #13 = NameAndType        #15:#16       // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n+   #14 = Utf8               dev/langchain4j/data/message/SystemMessage\n+   #15 = Utf8               from\n+   #16 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n+   #17 = String             #18           // Tell me about Klaus Heisler\n+   #18 = Utf8               Tell me about Klaus Heisler\n+   #19 = Methodref          #20.#21       // dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+   #20 = Class              #22           // dev/langchain4j/data/message/UserMessage\n+   #21 = NameAndType        #15:#23       // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+   #22 = Utf8               dev/langchain4j/data/message/UserMessage\n+   #23 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+   #24 = String             #25           // He is a cool guy\n+   #25 = Utf8               He is a cool guy\n+   #26 = Methodref          #27.#28       // dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+   #27 = Class              #29           // dev/langchain4j/data/message/AiMessage\n+   #28 = NameAndType        #15:#30       // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+   #29 = Utf8               dev/langchain4j/data/message/AiMessage\n+   #30 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+   #31 = Class              #32           // dev/langchain4j/agent/tool/ToolExecutionRequest\n+   #32 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest\n+   #33 = Methodref          #31.#34       // dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #34 = NameAndType        #35:#36       // builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #35 = Utf8               builder\n+   #36 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #37 = String             #38           // 12345\n+   #38 = Utf8               12345\n+   #39 = Methodref          #40.#41       // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #40 = Class              #42           // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n+   #41 = NameAndType        #43:#44       // id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #42 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n+   #43 = Utf8               id\n+   #44 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #45 = String             #46           // current_time\n+   #46 = Utf8               current_time\n+   #47 = Methodref          #40.#48       // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #48 = NameAndType        #49:#44       // name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #49 = Utf8               name\n+   #50 = String             #51           // {}\n+   #51 = Utf8               {}\n+   #52 = Methodref          #40.#53       // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #53 = NameAndType        #54:#44       // arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #54 = Utf8               arguments\n+   #55 = Methodref          #40.#56       // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+   #56 = NameAndType        #57:#58       // build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+   #57 = Utf8               build\n+   #58 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+   #59 = Methodref          #27.#60       // dev/langchain4j/data/message/AiMessage.from:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n+   #60 = NameAndType        #15:#61       // from:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n+   #61 = Utf8               ([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n+   #62 = Methodref          #63.#64       // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+   #63 = Class              #65           // java/util/Arrays\n+   #64 = NameAndType        #66:#67       // asList:([Ljava/lang/Object;)Ljava/util/List;\n+   #65 = Utf8               java/util/Arrays\n+   #66 = Utf8               asList\n+   #67 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n+   #68 = String             #69           // How old is he?\n+   #69 = Utf8               How old is he?\n+   #70 = String             #71           // default\n+   #71 = Utf8               default\n+   #72 = Methodref          #73.#74       // dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n+   #73 = Class              #75           // dev/langchain4j/rag/query/Metadata\n+   #74 = NameAndType        #15:#76       // from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n+   #75 = Utf8               dev/langchain4j/rag/query/Metadata\n+   #76 = Utf8               (Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n+   #77 = Methodref          #20.#78       // dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n+   #78 = NameAndType        #79:#80       // text:()Ljava/lang/String;\n+   #79 = Utf8               text\n+   #80 = Utf8               ()Ljava/lang/String;\n+   #81 = Methodref          #82.#83       // dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n+   #82 = Class              #84           // dev/langchain4j/rag/query/Query\n+   #83 = NameAndType        #15:#85       // from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n+   #84 = Utf8               dev/langchain4j/rag/query/Query\n+   #85 = Utf8               (Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n+   #86 = String             #87           // How old is Klaus Heisler?\n+   #87 = Utf8               How old is Klaus Heisler?\n+   #88 = Methodref          #89.#90       // dev/langchain4j/model/chat/mock/ChatModelMock.withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n+   #89 = Class              #91           // dev/langchain4j/model/chat/mock/ChatModelMock\n+   #90 = NameAndType        #92:#93       // withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n+   #91 = Utf8               dev/langchain4j/model/chat/mock/ChatModelMock\n+   #92 = Utf8               withStaticResponse\n+   #93 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n+   #94 = Class              #95           // dev/langchain4j/rag/query/transformer/CompressingQueryTransformer\n+   #95 = Utf8               dev/langchain4j/rag/query/transformer/CompressingQueryTransformer\n+   #96 = Methodref          #94.#97       // dev/langchain4j/rag/query/transformer/CompressingQueryTransformer.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;)V\n+   #97 = NameAndType        #5:#98        // \"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;)V\n+   #98 = Utf8               (Ldev/langchain4j/model/chat/ChatLanguageModel;)V\n+   #99 = Methodref          #94.#100      // dev/langchain4j/rag/query/transformer/CompressingQueryTransformer.transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+  #100 = NameAndType        #101:#102     // transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+  #101 = Utf8               transform\n+  #102 = Utf8               (Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+  #103 = Methodref          #104.#105     // org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+  #104 = Class              #106          // org/assertj/core/api/Assertions\n+  #105 = NameAndType        #107:#108     // assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+  #106 = Utf8               org/assertj/core/api/Assertions\n+  #107 = Utf8               assertThat\n+  #108 = Utf8               (Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+  #109 = Methodref          #82.#110      // dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+  #110 = NameAndType        #15:#111      // from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+  #111 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+  #112 = Methodref          #113.#114     // org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #113 = Class              #115          // org/assertj/core/api/AbstractCollectionAssert\n+  #114 = NameAndType        #116:#117     // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #115 = Utf8               org/assertj/core/api/AbstractCollectionAssert\n+  #116 = Utf8               containsExactly\n+  #117 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #118 = Methodref          #89.#119      // dev/langchain4j/model/chat/mock/ChatModelMock.userMessageText:()Ljava/lang/String;\n+  #119 = NameAndType        #120:#80      // userMessageText:()Ljava/lang/String;\n+  #120 = Utf8               userMessageText\n+  #121 = Methodref          #104.#122     // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #122 = NameAndType        #107:#123     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #123 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #124 = String             #125          // Read and understand the conversation between the User and the AI. Then, analyze the new query from the User. Identify all relevant details, terms, and context from both the conversation and the new query. Reformulate this query into a clear, concise, and self-contained format suitable for information retrieval.\\n\\nConversation:\\nUser: Tell me about Klaus Heisler\\nAI: He is a cool guy\\n\\nUser query: How old is he?\\n\\nIt is very important that you provide only reformulated query and nothing else! Do not prepend a query with anything!\n+  #125 = Utf8               Read and understand the conversation between the User and the AI. Then, analyze the new query from the User. Identify all relevant details, terms, and context from both the conversation and the new query. Reformulate this query into a clear, concise, and self-contained format suitable for information retrieval.\\n\\nConversation:\\nUser: Tell me about Klaus Heisler\\nAI: He is a cool guy\\n\\nUser query: How old is he?\\n\\nIt is very important that you provide only reformulated query and nothing else! Do not prepend a query with anything!\n+  #126 = Methodref          #127.#128     // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #127 = Class              #129          // org/assertj/core/api/AbstractStringAssert\n+  #128 = NameAndType        #130:#123     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #129 = Utf8               org/assertj/core/api/AbstractStringAssert\n+  #130 = Utf8               isEqualTo\n+  #131 = Methodref          #132.#133     // java/util/Collections.emptyList:()Ljava/util/List;\n+  #132 = Class              #134          // java/util/Collections\n+  #133 = NameAndType        #135:#136     // emptyList:()Ljava/util/List;\n+  #134 = Utf8               java/util/Collections\n+  #135 = Utf8               emptyList\n+  #136 = Utf8               ()Ljava/util/List;\n+  #137 = String             #138          // Hello\n+  #138 = Utf8               Hello\n+  #139 = Class              #140          // dev/langchain4j/model/chat/ChatLanguageModel\n   #140 = Utf8               dev/langchain4j/model/chat/ChatLanguageModel\n-  #141 = Class              #203          // org/mockito/Mockito\n-  #142 = NameAndType        #204:#205     // mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-  #143 = Utf8               java/lang/Object\n-  #144 = NameAndType        #206:#207     // verifyNoInteractions:([Ljava/lang/Object;)V\n-  #145 = Utf8               Given the following conversation: {{chatMemory}} reformulate the following query: {{query}}\n-  #146 = Class              #208          // dev/langchain4j/model/input/PromptTemplate\n-  #147 = NameAndType        #157:#209     // from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n-  #148 = NameAndType        #53:#210      // \"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;Ldev/langchain4j/model/input/PromptTemplate;)V\n-  #149 = Utf8               Given the following conversation: User: Tell me about Klaus Heisler\\nAI: He is a cool guy reformulate the following query: How old is he?\n-  #150 = NameAndType        #163:#212     // builder:()Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder;\n-  #151 = Class              #213          // dev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder\n-  #152 = NameAndType        #214:#215     // chatLanguageModel:(Ldev/langchain4j/model/chat/ChatLanguageModel;)Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder;\n-  #153 = NameAndType        #85:#216      // promptTemplate:(Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder;\n-  #154 = NameAndType        #172:#217     // build:()Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer;\n-  #155 = Utf8               dev/langchain4j/rag/query/transformer/CompressingQueryTransformerTest\n-  #156 = Utf8               dev/langchain4j/data/message/SystemMessage\n-  #157 = Utf8               from\n-  #158 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n-  #159 = Utf8               dev/langchain4j/data/message/UserMessage\n-  #160 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-  #161 = Utf8               dev/langchain4j/data/message/AiMessage\n-  #162 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n-  #163 = Utf8               builder\n-  #164 = Utf8               Builder\n-  #165 = Utf8               InnerClasses\n-  #166 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #167 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n-  #168 = Utf8               id\n-  #169 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #170 = Utf8               name\n-  #171 = Utf8               arguments\n-  #172 = Utf8               build\n-  #173 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-  #174 = Utf8               ([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n-  #175 = Utf8               java/util/Arrays\n-  #176 = Utf8               asList\n-  #177 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n-  #178 = Utf8               dev/langchain4j/rag/query/Metadata\n-  #179 = Utf8               (Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n-  #180 = Utf8               text\n-  #181 = Utf8               ()Ljava/lang/String;\n-  #182 = Utf8               (Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n-  #183 = Utf8               dev/langchain4j/model/chat/mock/ChatModelMock\n-  #184 = Utf8               withStaticResponse\n-  #185 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n-  #186 = Utf8               (Ldev/langchain4j/model/chat/ChatLanguageModel;)V\n-  #187 = Utf8               transform\n-  #188 = Utf8               (Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n-  #189 = Utf8               org/assertj/core/api/Assertions\n-  #190 = Utf8               assertThat\n-  #191 = Utf8               (Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n-  #192 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-  #193 = Utf8               org/assertj/core/api/AbstractCollectionAssert\n-  #194 = Utf8               containsExactly\n-  #195 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #196 = Utf8               userMessageText\n-  #197 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #198 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #199 = Utf8               isEqualTo\n-  #200 = Utf8               java/util/Collections\n-  #201 = Utf8               emptyList\n-  #202 = Utf8               ()Ljava/util/List;\n-  #203 = Utf8               org/mockito/Mockito\n-  #204 = Utf8               mock\n-  #205 = Utf8               (Ljava/lang/Class;)Ljava/lang/Object;\n-  #206 = Utf8               verifyNoInteractions\n-  #207 = Utf8               ([Ljava/lang/Object;)V\n-  #208 = Utf8               dev/langchain4j/model/input/PromptTemplate\n-  #209 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n-  #210 = Utf8               (Ldev/langchain4j/model/chat/ChatLanguageModel;Ldev/langchain4j/model/input/PromptTemplate;)V\n-  #211 = Utf8               CompressingQueryTransformerBuilder\n-  #212 = Utf8               ()Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder;\n-  #213 = Utf8               dev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder\n-  #214 = Utf8               chatLanguageModel\n-  #215 = Utf8               (Ldev/langchain4j/model/chat/ChatLanguageModel;)Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder;\n-  #216 = Utf8               (Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder;\n-  #217 = Utf8               ()Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer;\n+  #141 = Methodref          #142.#143     // org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+  #142 = Class              #144          // org/mockito/Mockito\n+  #143 = NameAndType        #145:#146     // mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+  #144 = Utf8               org/mockito/Mockito\n+  #145 = Utf8               mock\n+  #146 = Utf8               (Ljava/lang/Class;)Ljava/lang/Object;\n+  #147 = Methodref          #142.#148     // org/mockito/Mockito.verifyNoInteractions:([Ljava/lang/Object;)V\n+  #148 = NameAndType        #149:#150     // verifyNoInteractions:([Ljava/lang/Object;)V\n+  #149 = Utf8               verifyNoInteractions\n+  #150 = Utf8               ([Ljava/lang/Object;)V\n+  #151 = String             #152          // Given the following conversation: {{chatMemory}} reformulate the following query: {{query}}\n+  #152 = Utf8               Given the following conversation: {{chatMemory}} reformulate the following query: {{query}}\n+  #153 = Methodref          #154.#155     // dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+  #154 = Class              #156          // dev/langchain4j/model/input/PromptTemplate\n+  #155 = NameAndType        #15:#157      // from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+  #156 = Utf8               dev/langchain4j/model/input/PromptTemplate\n+  #157 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+  #158 = Methodref          #94.#159      // dev/langchain4j/rag/query/transformer/CompressingQueryTransformer.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;Ldev/langchain4j/model/input/PromptTemplate;)V\n+  #159 = NameAndType        #5:#160       // \"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;Ldev/langchain4j/model/input/PromptTemplate;)V\n+  #160 = Utf8               (Ldev/langchain4j/model/chat/ChatLanguageModel;Ldev/langchain4j/model/input/PromptTemplate;)V\n+  #161 = String             #162          // Given the following conversation: User: Tell me about Klaus Heisler\\nAI: He is a cool guy reformulate the following query: How old is he?\n+  #162 = Utf8               Given the following conversation: User: Tell me about Klaus Heisler\\nAI: He is a cool guy reformulate the following query: How old is he?\n+  #163 = Methodref          #94.#164      // dev/langchain4j/rag/query/transformer/CompressingQueryTransformer.builder:()Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder;\n+  #164 = NameAndType        #35:#165      // builder:()Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder;\n+  #165 = Utf8               ()Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder;\n+  #166 = Methodref          #167.#168     // dev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder.chatLanguageModel:(Ldev/langchain4j/model/chat/ChatLanguageModel;)Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder;\n+  #167 = Class              #169          // dev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder\n+  #168 = NameAndType        #170:#171     // chatLanguageModel:(Ldev/langchain4j/model/chat/ChatLanguageModel;)Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder;\n+  #169 = Utf8               dev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder\n+  #170 = Utf8               chatLanguageModel\n+  #171 = Utf8               (Ldev/langchain4j/model/chat/ChatLanguageModel;)Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder;\n+  #172 = Methodref          #167.#173     // dev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder.promptTemplate:(Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder;\n+  #173 = NameAndType        #174:#175     // promptTemplate:(Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder;\n+  #174 = Utf8               promptTemplate\n+  #175 = Utf8               (Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder;\n+  #176 = Methodref          #167.#177     // dev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder.build:()Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer;\n+  #177 = NameAndType        #57:#178      // build:()Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer;\n+  #178 = Utf8               ()Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer;\n+  #179 = Class              #180          // dev/langchain4j/rag/query/transformer/CompressingQueryTransformerTest\n+  #180 = Utf8               dev/langchain4j/rag/query/transformer/CompressingQueryTransformerTest\n+  #181 = Utf8               Code\n+  #182 = Utf8               LineNumberTable\n+  #183 = Utf8               LocalVariableTable\n+  #184 = Utf8               this\n+  #185 = Utf8               Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformerTest;\n+  #186 = Utf8               should_compress_query_and_chat_memory_into_single_query\n+  #187 = Utf8               chatMemory\n+  #188 = Utf8               Ljava/util/List;\n+  #189 = Utf8               userMessage\n+  #190 = Utf8               Ldev/langchain4j/data/message/UserMessage;\n+  #191 = Utf8               metadata\n+  #192 = Utf8               Ldev/langchain4j/rag/query/Metadata;\n+  #193 = Utf8               query\n+  #194 = Utf8               Ldev/langchain4j/rag/query/Query;\n+  #195 = Utf8               expectedResultingQuery\n+  #196 = Utf8               Ljava/lang/String;\n+  #197 = Utf8               model\n+  #198 = Utf8               Ldev/langchain4j/model/chat/mock/ChatModelMock;\n+  #199 = Utf8               transformer\n+  #200 = Utf8               Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer;\n+  #201 = Utf8               queries\n+  #202 = Utf8               Ljava/util/Collection;\n+  #203 = Utf8               LocalVariableTypeTable\n+  #204 = Utf8               Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n+  #205 = Utf8               Ljava/util/Collection<Ldev/langchain4j/rag/query/Query;>;\n+  #206 = Utf8               RuntimeVisibleAnnotations\n+  #207 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #208 = Utf8               should_not_compress_when_empty_chat_memory\n+  #209 = Utf8               Ldev/langchain4j/model/chat/ChatLanguageModel;\n+  #210 = Utf8               should_compress_query_and_chat_memory_into_single_query_using_custom_prompt_template\n+  #211 = Utf8               Ldev/langchain4j/model/input/PromptTemplate;\n+  #212 = Utf8               should_compress_query_and_chat_memory_into_single_query_using_custom_prompt_template_builder\n+  #213 = Utf8               SourceFile\n+  #214 = Utf8               CompressingQueryTransformerTest.java\n+  #215 = Utf8               InnerClasses\n+  #216 = Utf8               Builder\n+  #217 = Utf8               CompressingQueryTransformerBuilder\n {\n   dev.langchain4j.rag.query.transformer.CompressingQueryTransformerTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -242,92 +242,92 @@\n \n   void should_compress_query_and_chat_memory_into_single_query();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=8, locals=9, args_size=1\n          0: iconst_4\n-         1: anewarray     #2                  // class dev/langchain4j/data/message/ChatMessage\n+         1: anewarray     #7                  // class dev/langchain4j/data/message/ChatMessage\n          4: dup\n          5: iconst_0\n-         6: ldc           #3                  // String Be polite\n-         8: invokestatic  #4                  // Method dev/langchain4j/data/message/SystemMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n+         6: ldc           #9                  // String Be polite\n+         8: invokestatic  #11                 // Method dev/langchain4j/data/message/SystemMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n         11: aastore\n         12: dup\n         13: iconst_1\n-        14: ldc           #5                  // String Tell me about Klaus Heisler\n-        16: invokestatic  #6                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+        14: ldc           #17                 // String Tell me about Klaus Heisler\n+        16: invokestatic  #19                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n         19: aastore\n         20: dup\n         21: iconst_2\n-        22: ldc           #7                  // String He is a cool guy\n-        24: invokestatic  #8                  // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+        22: ldc           #24                 // String He is a cool guy\n+        24: invokestatic  #26                 // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n         27: aastore\n         28: dup\n         29: iconst_3\n         30: iconst_1\n-        31: anewarray     #9                  // class dev/langchain4j/agent/tool/ToolExecutionRequest\n+        31: anewarray     #31                 // class dev/langchain4j/agent/tool/ToolExecutionRequest\n         34: dup\n         35: iconst_0\n-        36: invokestatic  #10                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        39: ldc           #11                 // String 12345\n-        41: invokevirtual #12                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        44: ldc           #13                 // String current_time\n-        46: invokevirtual #14                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        49: ldc           #15                 // String {}\n-        51: invokevirtual #16                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        54: invokevirtual #17                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+        36: invokestatic  #33                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        39: ldc           #37                 // String 12345\n+        41: invokevirtual #39                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        44: ldc           #45                 // String current_time\n+        46: invokevirtual #47                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        49: ldc           #50                 // String {}\n+        51: invokevirtual #52                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        54: invokevirtual #55                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n         57: aastore\n-        58: invokestatic  #18                 // Method dev/langchain4j/data/message/AiMessage.from:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n+        58: invokestatic  #59                 // Method dev/langchain4j/data/message/AiMessage.from:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n         61: aastore\n-        62: invokestatic  #19                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        62: invokestatic  #62                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n         65: astore_1\n-        66: ldc           #20                 // String How old is he?\n-        68: invokestatic  #6                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+        66: ldc           #68                 // String How old is he?\n+        68: invokestatic  #19                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n         71: astore_2\n         72: aload_2\n-        73: ldc           #21                 // String default\n+        73: ldc           #70                 // String default\n         75: aload_1\n-        76: invokestatic  #22                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n+        76: invokestatic  #72                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n         79: astore_3\n         80: aload_2\n-        81: invokevirtual #23                 // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n+        81: invokevirtual #77                 // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n         84: aload_3\n-        85: invokestatic  #24                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n+        85: invokestatic  #81                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n         88: astore        4\n-        90: ldc           #25                 // String How old is Klaus Heisler?\n+        90: ldc           #86                 // String How old is Klaus Heisler?\n         92: astore        5\n         94: aload         5\n-        96: invokestatic  #26                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n+        96: invokestatic  #88                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n         99: astore        6\n-       101: new           #27                 // class dev/langchain4j/rag/query/transformer/CompressingQueryTransformer\n+       101: new           #94                 // class dev/langchain4j/rag/query/transformer/CompressingQueryTransformer\n        104: dup\n        105: aload         6\n-       107: invokespecial #28                 // Method dev/langchain4j/rag/query/transformer/CompressingQueryTransformer.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;)V\n+       107: invokespecial #96                 // Method dev/langchain4j/rag/query/transformer/CompressingQueryTransformer.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;)V\n        110: astore        7\n        112: aload         7\n        114: aload         4\n-       116: invokevirtual #29                 // Method dev/langchain4j/rag/query/transformer/CompressingQueryTransformer.transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+       116: invokevirtual #99                 // Method dev/langchain4j/rag/query/transformer/CompressingQueryTransformer.transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n        119: astore        8\n        121: aload         8\n-       123: invokestatic  #30                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+       123: invokestatic  #103                // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n        126: iconst_1\n-       127: anewarray     #31                 // class dev/langchain4j/rag/query/Query\n+       127: anewarray     #82                 // class dev/langchain4j/rag/query/Query\n        130: dup\n        131: iconst_0\n        132: aload         5\n-       134: invokestatic  #32                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+       134: invokestatic  #109                // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n        137: aastore\n-       138: invokevirtual #33                 // Method org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+       138: invokevirtual #112                // Method org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n        141: pop\n        142: aload         6\n-       144: invokevirtual #34                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.userMessageText:()Ljava/lang/String;\n-       147: invokestatic  #35                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       150: ldc           #36                 // String Read and understand the conversation between the User and the AI. Then, analyze the new query from the User. Identify all relevant details, terms, and context from both the conversation and the new query. Reformulate this query into a clear, concise, and self-contained format suitable for information retrieval.\\n\\nConversation:\\nUser: Tell me about Klaus Heisler\\nAI: He is a cool guy\\n\\nUser query: How old is he?\\n\\nIt is very important that you provide only reformulated query and nothing else! Do not prepend a query with anything!\n-       152: invokevirtual #37                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       144: invokevirtual #118                // Method dev/langchain4j/model/chat/mock/ChatModelMock.userMessageText:()Ljava/lang/String;\n+       147: invokestatic  #121                // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       150: ldc           #124                // String Read and understand the conversation between the User and the AI. Then, analyze the new query from the User. Identify all relevant details, terms, and context from both the conversation and the new query. Reformulate this query into a clear, concise, and self-contained format suitable for information retrieval.\\n\\nConversation:\\nUser: Tell me about Klaus Heisler\\nAI: He is a cool guy\\n\\nUser query: How old is he?\\n\\nIt is very important that you provide only reformulated query and nothing else! Do not prepend a query with anything!\n+       152: invokevirtual #126                // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n        155: pop\n        156: return\n       LineNumberTable:\n         line 30: 0\n         line 31: 8\n         line 32: 16\n         line 33: 24\n@@ -360,67 +360,67 @@\n           112      45     7 transformer   Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer;\n           121      36     8 queries   Ljava/util/Collection;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            66      91     1 chatMemory   Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n           121      36     8 queries   Ljava/util/Collection<Ldev/langchain4j/rag/query/Query;>;\n     RuntimeVisibleAnnotations:\n-      0: #81()\n+      0: #207()\n         org.junit.jupiter.api.Test\n \n   void should_not_compress_when_empty_chat_memory();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=5, locals=8, args_size=1\n-         0: invokestatic  #38                 // Method java/util/Collections.emptyList:()Ljava/util/List;\n+         0: invokestatic  #131                // Method java/util/Collections.emptyList:()Ljava/util/List;\n          3: astore_1\n-         4: ldc           #39                 // String Hello\n-         6: invokestatic  #6                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+         4: ldc           #137                // String Hello\n+         6: invokestatic  #19                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n          9: astore_2\n         10: aload_2\n-        11: ldc           #21                 // String default\n+        11: ldc           #70                 // String default\n         13: aload_1\n-        14: invokestatic  #22                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n+        14: invokestatic  #72                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n         17: astore_3\n         18: aload_2\n-        19: invokevirtual #23                 // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n+        19: invokevirtual #77                 // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n         22: aload_3\n-        23: invokestatic  #24                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n+        23: invokestatic  #81                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n         26: astore        4\n-        28: ldc           #40                 // class dev/langchain4j/model/chat/ChatLanguageModel\n-        30: invokestatic  #41                 // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-        33: checkcast     #40                 // class dev/langchain4j/model/chat/ChatLanguageModel\n+        28: ldc           #139                // class dev/langchain4j/model/chat/ChatLanguageModel\n+        30: invokestatic  #141                // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+        33: checkcast     #139                // class dev/langchain4j/model/chat/ChatLanguageModel\n         36: astore        5\n-        38: new           #27                 // class dev/langchain4j/rag/query/transformer/CompressingQueryTransformer\n+        38: new           #94                 // class dev/langchain4j/rag/query/transformer/CompressingQueryTransformer\n         41: dup\n         42: aload         5\n-        44: invokespecial #28                 // Method dev/langchain4j/rag/query/transformer/CompressingQueryTransformer.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;)V\n+        44: invokespecial #96                 // Method dev/langchain4j/rag/query/transformer/CompressingQueryTransformer.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;)V\n         47: astore        6\n         49: aload         6\n         51: aload         4\n-        53: invokevirtual #29                 // Method dev/langchain4j/rag/query/transformer/CompressingQueryTransformer.transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+        53: invokevirtual #99                 // Method dev/langchain4j/rag/query/transformer/CompressingQueryTransformer.transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n         56: astore        7\n         58: aload         7\n-        60: invokestatic  #30                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+        60: invokestatic  #103                // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n         63: iconst_1\n-        64: anewarray     #31                 // class dev/langchain4j/rag/query/Query\n+        64: anewarray     #82                 // class dev/langchain4j/rag/query/Query\n         67: dup\n         68: iconst_0\n         69: aload         4\n         71: aastore\n-        72: invokevirtual #33                 // Method org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+        72: invokevirtual #112                // Method org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n         75: pop\n         76: iconst_1\n-        77: anewarray     #42                 // class java/lang/Object\n+        77: anewarray     #2                  // class java/lang/Object\n         80: dup\n         81: iconst_0\n         82: aload         5\n         84: aastore\n-        85: invokestatic  #43                 // Method org/mockito/Mockito.verifyNoInteractions:([Ljava/lang/Object;)V\n+        85: invokestatic  #147                // Method org/mockito/Mockito.verifyNoInteractions:([Ljava/lang/Object;)V\n         88: return\n       LineNumberTable:\n         line 79: 0\n         line 81: 4\n         line 82: 10\n         line 84: 18\n         line 86: 28\n@@ -440,83 +440,83 @@\n            49      40     6 transformer   Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer;\n            58      31     7 queries   Ljava/util/Collection;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             4      85     1 chatMemory   Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n            58      31     7 queries   Ljava/util/Collection<Ldev/langchain4j/rag/query/Query;>;\n     RuntimeVisibleAnnotations:\n-      0: #81()\n+      0: #207()\n         org.junit.jupiter.api.Test\n \n   void should_compress_query_and_chat_memory_into_single_query_using_custom_prompt_template();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=5, locals=10, args_size=1\n-         0: ldc           #44                 // String Given the following conversation: {{chatMemory}} reformulate the following query: {{query}}\n-         2: invokestatic  #45                 // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+         0: ldc           #151                // String Given the following conversation: {{chatMemory}} reformulate the following query: {{query}}\n+         2: invokestatic  #153                // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n          5: astore_1\n          6: iconst_2\n-         7: anewarray     #2                  // class dev/langchain4j/data/message/ChatMessage\n+         7: anewarray     #7                  // class dev/langchain4j/data/message/ChatMessage\n         10: dup\n         11: iconst_0\n-        12: ldc           #5                  // String Tell me about Klaus Heisler\n-        14: invokestatic  #6                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+        12: ldc           #17                 // String Tell me about Klaus Heisler\n+        14: invokestatic  #19                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n         17: aastore\n         18: dup\n         19: iconst_1\n-        20: ldc           #7                  // String He is a cool guy\n-        22: invokestatic  #8                  // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+        20: ldc           #24                 // String He is a cool guy\n+        22: invokestatic  #26                 // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n         25: aastore\n-        26: invokestatic  #19                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        26: invokestatic  #62                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n         29: astore_2\n-        30: ldc           #20                 // String How old is he?\n-        32: invokestatic  #6                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+        30: ldc           #68                 // String How old is he?\n+        32: invokestatic  #19                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n         35: astore_3\n         36: aload_3\n-        37: ldc           #21                 // String default\n+        37: ldc           #70                 // String default\n         39: aload_2\n-        40: invokestatic  #22                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n+        40: invokestatic  #72                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n         43: astore        4\n         45: aload_3\n-        46: invokevirtual #23                 // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n+        46: invokevirtual #77                 // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n         49: aload         4\n-        51: invokestatic  #24                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n+        51: invokestatic  #81                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n         54: astore        5\n-        56: ldc           #25                 // String How old is Klaus Heisler?\n+        56: ldc           #86                 // String How old is Klaus Heisler?\n         58: astore        6\n         60: aload         6\n-        62: invokestatic  #26                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n+        62: invokestatic  #88                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n         65: astore        7\n-        67: new           #27                 // class dev/langchain4j/rag/query/transformer/CompressingQueryTransformer\n+        67: new           #94                 // class dev/langchain4j/rag/query/transformer/CompressingQueryTransformer\n         70: dup\n         71: aload         7\n         73: aload_1\n-        74: invokespecial #46                 // Method dev/langchain4j/rag/query/transformer/CompressingQueryTransformer.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;Ldev/langchain4j/model/input/PromptTemplate;)V\n+        74: invokespecial #158                // Method dev/langchain4j/rag/query/transformer/CompressingQueryTransformer.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;Ldev/langchain4j/model/input/PromptTemplate;)V\n         77: astore        8\n         79: aload         8\n         81: aload         5\n-        83: invokevirtual #29                 // Method dev/langchain4j/rag/query/transformer/CompressingQueryTransformer.transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+        83: invokevirtual #99                 // Method dev/langchain4j/rag/query/transformer/CompressingQueryTransformer.transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n         86: astore        9\n         88: aload         9\n-        90: invokestatic  #30                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+        90: invokestatic  #103                // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n         93: iconst_1\n-        94: anewarray     #31                 // class dev/langchain4j/rag/query/Query\n+        94: anewarray     #82                 // class dev/langchain4j/rag/query/Query\n         97: dup\n         98: iconst_0\n         99: aload         6\n-       101: invokestatic  #32                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+       101: invokestatic  #109                // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n        104: aastore\n-       105: invokevirtual #33                 // Method org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+       105: invokevirtual #112                // Method org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n        108: pop\n        109: aload         7\n-       111: invokevirtual #34                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.userMessageText:()Ljava/lang/String;\n-       114: invokestatic  #35                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       117: ldc           #47                 // String Given the following conversation: User: Tell me about Klaus Heisler\\nAI: He is a cool guy reformulate the following query: How old is he?\n-       119: invokevirtual #37                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       111: invokevirtual #118                // Method dev/langchain4j/model/chat/mock/ChatModelMock.userMessageText:()Ljava/lang/String;\n+       114: invokestatic  #121                // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       117: ldc           #161                // String Given the following conversation: User: Tell me about Klaus Heisler\\nAI: He is a cool guy reformulate the following query: How old is he?\n+       119: invokevirtual #126                // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n        122: pop\n        123: return\n       LineNumberTable:\n         line 102: 0\n         line 105: 6\n         line 106: 14\n         line 107: 22\n@@ -544,84 +544,84 @@\n            79      45     8 transformer   Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer;\n            88      36     9 queries   Ljava/util/Collection;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            30      94     2 chatMemory   Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n            88      36     9 queries   Ljava/util/Collection<Ldev/langchain4j/rag/query/Query;>;\n     RuntimeVisibleAnnotations:\n-      0: #81()\n+      0: #207()\n         org.junit.jupiter.api.Test\n \n   void should_compress_query_and_chat_memory_into_single_query_using_custom_prompt_template_builder();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=5, locals=10, args_size=1\n-         0: ldc           #44                 // String Given the following conversation: {{chatMemory}} reformulate the following query: {{query}}\n-         2: invokestatic  #45                 // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+         0: ldc           #151                // String Given the following conversation: {{chatMemory}} reformulate the following query: {{query}}\n+         2: invokestatic  #153                // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n          5: astore_1\n          6: iconst_2\n-         7: anewarray     #2                  // class dev/langchain4j/data/message/ChatMessage\n+         7: anewarray     #7                  // class dev/langchain4j/data/message/ChatMessage\n         10: dup\n         11: iconst_0\n-        12: ldc           #5                  // String Tell me about Klaus Heisler\n-        14: invokestatic  #6                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+        12: ldc           #17                 // String Tell me about Klaus Heisler\n+        14: invokestatic  #19                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n         17: aastore\n         18: dup\n         19: iconst_1\n-        20: ldc           #7                  // String He is a cool guy\n-        22: invokestatic  #8                  // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+        20: ldc           #24                 // String He is a cool guy\n+        22: invokestatic  #26                 // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n         25: aastore\n-        26: invokestatic  #19                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        26: invokestatic  #62                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n         29: astore_2\n-        30: ldc           #20                 // String How old is he?\n-        32: invokestatic  #6                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+        30: ldc           #68                 // String How old is he?\n+        32: invokestatic  #19                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n         35: astore_3\n         36: aload_3\n-        37: ldc           #21                 // String default\n+        37: ldc           #70                 // String default\n         39: aload_2\n-        40: invokestatic  #22                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n+        40: invokestatic  #72                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n         43: astore        4\n         45: aload_3\n-        46: invokevirtual #23                 // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n+        46: invokevirtual #77                 // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n         49: aload         4\n-        51: invokestatic  #24                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n+        51: invokestatic  #81                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n         54: astore        5\n-        56: ldc           #25                 // String How old is Klaus Heisler?\n+        56: ldc           #86                 // String How old is Klaus Heisler?\n         58: astore        6\n         60: aload         6\n-        62: invokestatic  #26                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n+        62: invokestatic  #88                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n         65: astore        7\n-        67: invokestatic  #48                 // Method dev/langchain4j/rag/query/transformer/CompressingQueryTransformer.builder:()Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder;\n+        67: invokestatic  #163                // Method dev/langchain4j/rag/query/transformer/CompressingQueryTransformer.builder:()Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder;\n         70: aload         7\n-        72: invokevirtual #49                 // Method dev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder.chatLanguageModel:(Ldev/langchain4j/model/chat/ChatLanguageModel;)Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder;\n+        72: invokevirtual #166                // Method dev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder.chatLanguageModel:(Ldev/langchain4j/model/chat/ChatLanguageModel;)Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder;\n         75: aload_1\n-        76: invokevirtual #50                 // Method dev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder.promptTemplate:(Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder;\n-        79: invokevirtual #51                 // Method dev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder.build:()Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer;\n+        76: invokevirtual #172                // Method dev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder.promptTemplate:(Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder;\n+        79: invokevirtual #176                // Method dev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder.build:()Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer;\n         82: astore        8\n         84: aload         8\n         86: aload         5\n-        88: invokevirtual #29                 // Method dev/langchain4j/rag/query/transformer/CompressingQueryTransformer.transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+        88: invokevirtual #99                 // Method dev/langchain4j/rag/query/transformer/CompressingQueryTransformer.transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n         91: astore        9\n         93: aload         9\n-        95: invokestatic  #30                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+        95: invokestatic  #103                // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n         98: iconst_1\n-        99: anewarray     #31                 // class dev/langchain4j/rag/query/Query\n+        99: anewarray     #82                 // class dev/langchain4j/rag/query/Query\n        102: dup\n        103: iconst_0\n        104: aload         6\n-       106: invokestatic  #32                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+       106: invokestatic  #109                // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n        109: aastore\n-       110: invokevirtual #33                 // Method org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+       110: invokevirtual #112                // Method org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n        113: pop\n        114: aload         7\n-       116: invokevirtual #34                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.userMessageText:()Ljava/lang/String;\n-       119: invokestatic  #35                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       122: ldc           #47                 // String Given the following conversation: User: Tell me about Klaus Heisler\\nAI: He is a cool guy reformulate the following query: How old is he?\n-       124: invokevirtual #37                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       116: invokevirtual #118                // Method dev/langchain4j/model/chat/mock/ChatModelMock.userMessageText:()Ljava/lang/String;\n+       119: invokestatic  #121                // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       122: ldc           #161                // String Given the following conversation: User: Tell me about Klaus Heisler\\nAI: He is a cool guy reformulate the following query: How old is he?\n+       124: invokevirtual #126                // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n        127: pop\n        128: return\n       LineNumberTable:\n         line 136: 0\n         line 139: 6\n         line 140: 14\n         line 141: 22\n@@ -652,14 +652,14 @@\n            84      45     8 transformer   Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer;\n            93      36     9 queries   Ljava/util/Collection;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            30      99     2 chatMemory   Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n            93      36     9 queries   Ljava/util/Collection<Ldev/langchain4j/rag/query/Query;>;\n     RuntimeVisibleAnnotations:\n-      0: #81()\n+      0: #207()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"CompressingQueryTransformerTest.java\"\n InnerClasses:\n-  public static final #164= #104 of #9;   // Builder=class dev/langchain4j/agent/tool/ToolExecutionRequest$Builder of class dev/langchain4j/agent/tool/ToolExecutionRequest\n-  public static #211= #151 of #27;        // CompressingQueryTransformerBuilder=class dev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder of class dev/langchain4j/rag/query/transformer/CompressingQueryTransformer\n+  public static final #216= #40 of #31;   // Builder=class dev/langchain4j/agent/tool/ToolExecutionRequest$Builder of class dev/langchain4j/agent/tool/ToolExecutionRequest\n+  public static #217= #167 of #94;        // CompressingQueryTransformerBuilder=class dev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder of class dev/langchain4j/rag/query/transformer/CompressingQueryTransformer\n"}]}, {"source1": "dev/langchain4j/rag/query/transformer/DefaultQueryTransformerTest.class", "source2": "dev/langchain4j/rag/query/transformer/DefaultQueryTransformerTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,71 +1,71 @@\n-  SHA-256 checksum 9c84977cbf339620d86e3961be6f673e09d1620ee7f58cea95467e2e172cb266\n+  SHA-256 checksum 68d67d456ba8dcd1cb0c7e771b1bd9b43b1576e35bc2284cae72605da44a4402\n   Compiled from \"DefaultQueryTransformerTest.java\"\n class dev.langchain4j.rag.query.transformer.DefaultQueryTransformerTest\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #10                         // dev/langchain4j/rag/query/transformer/DefaultQueryTransformerTest\n-  super_class: #11                        // java/lang/Object\n+  this_class: #36                         // dev/langchain4j/rag/query/transformer/DefaultQueryTransformerTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 0, methods: 2, attributes: 1\n Constant pool:\n-   #1 = Methodref          #11.#32        // java/lang/Object.\"<init>\":()V\n-   #2 = Class              #33            // dev/langchain4j/rag/query/transformer/DefaultQueryTransformer\n-   #3 = Methodref          #2.#32         // dev/langchain4j/rag/query/transformer/DefaultQueryTransformer.\"<init>\":()V\n-   #4 = String             #22            // query\n-   #5 = Methodref          #8.#34         // dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-   #6 = InterfaceMethodref #35.#36        // dev/langchain4j/rag/query/transformer/QueryTransformer.transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n-   #7 = Methodref          #37.#38        // org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n-   #8 = Class              #39            // dev/langchain4j/rag/query/Query\n-   #9 = Methodref          #40.#41        // org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #10 = Class              #42            // dev/langchain4j/rag/query/transformer/DefaultQueryTransformerTest\n-  #11 = Class              #43            // java/lang/Object\n-  #12 = Utf8               <init>\n-  #13 = Utf8               ()V\n-  #14 = Utf8               Code\n-  #15 = Utf8               LineNumberTable\n-  #16 = Utf8               LocalVariableTable\n-  #17 = Utf8               this\n-  #18 = Utf8               Ldev/langchain4j/rag/query/transformer/DefaultQueryTransformerTest;\n-  #19 = Utf8               should_return_same_query\n-  #20 = Utf8               transformer\n-  #21 = Utf8               Ldev/langchain4j/rag/query/transformer/QueryTransformer;\n-  #22 = Utf8               query\n-  #23 = Utf8               Ldev/langchain4j/rag/query/Query;\n-  #24 = Utf8               transformed\n-  #25 = Utf8               Ljava/util/Collection;\n-  #26 = Utf8               LocalVariableTypeTable\n-  #27 = Utf8               Ljava/util/Collection<Ldev/langchain4j/rag/query/Query;>;\n-  #28 = Utf8               RuntimeVisibleAnnotations\n-  #29 = Utf8               Lorg/junit/jupiter/api/Test;\n-  #30 = Utf8               SourceFile\n-  #31 = Utf8               DefaultQueryTransformerTest.java\n-  #32 = NameAndType        #12:#13        // \"<init>\":()V\n-  #33 = Utf8               dev/langchain4j/rag/query/transformer/DefaultQueryTransformer\n-  #34 = NameAndType        #44:#45        // from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-  #35 = Class              #46            // dev/langchain4j/rag/query/transformer/QueryTransformer\n-  #36 = NameAndType        #47:#48        // transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n-  #37 = Class              #49            // org/assertj/core/api/Assertions\n-  #38 = NameAndType        #50:#51        // assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n-  #39 = Utf8               dev/langchain4j/rag/query/Query\n-  #40 = Class              #52            // org/assertj/core/api/AbstractCollectionAssert\n-  #41 = NameAndType        #53:#54        // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #42 = Utf8               dev/langchain4j/rag/query/transformer/DefaultQueryTransformerTest\n-  #43 = Utf8               java/lang/Object\n-  #44 = Utf8               from\n-  #45 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-  #46 = Utf8               dev/langchain4j/rag/query/transformer/QueryTransformer\n-  #47 = Utf8               transform\n-  #48 = Utf8               (Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n-  #49 = Utf8               org/assertj/core/api/Assertions\n-  #50 = Utf8               assertThat\n-  #51 = Utf8               (Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n-  #52 = Utf8               org/assertj/core/api/AbstractCollectionAssert\n-  #53 = Utf8               containsExactly\n-  #54 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Class              #8             // dev/langchain4j/rag/query/transformer/DefaultQueryTransformer\n+   #8 = Utf8               dev/langchain4j/rag/query/transformer/DefaultQueryTransformer\n+   #9 = Methodref          #7.#3          // dev/langchain4j/rag/query/transformer/DefaultQueryTransformer.\"<init>\":()V\n+  #10 = String             #11            // query\n+  #11 = Utf8               query\n+  #12 = Methodref          #13.#14        // dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+  #13 = Class              #15            // dev/langchain4j/rag/query/Query\n+  #14 = NameAndType        #16:#17        // from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+  #15 = Utf8               dev/langchain4j/rag/query/Query\n+  #16 = Utf8               from\n+  #17 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+  #18 = InterfaceMethodref #19.#20        // dev/langchain4j/rag/query/transformer/QueryTransformer.transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+  #19 = Class              #21            // dev/langchain4j/rag/query/transformer/QueryTransformer\n+  #20 = NameAndType        #22:#23        // transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+  #21 = Utf8               dev/langchain4j/rag/query/transformer/QueryTransformer\n+  #22 = Utf8               transform\n+  #23 = Utf8               (Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+  #24 = Methodref          #25.#26        // org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+  #25 = Class              #27            // org/assertj/core/api/Assertions\n+  #26 = NameAndType        #28:#29        // assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+  #27 = Utf8               org/assertj/core/api/Assertions\n+  #28 = Utf8               assertThat\n+  #29 = Utf8               (Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+  #30 = Methodref          #31.#32        // org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #31 = Class              #33            // org/assertj/core/api/AbstractCollectionAssert\n+  #32 = NameAndType        #34:#35        // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #33 = Utf8               org/assertj/core/api/AbstractCollectionAssert\n+  #34 = Utf8               containsExactly\n+  #35 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #36 = Class              #37            // dev/langchain4j/rag/query/transformer/DefaultQueryTransformerTest\n+  #37 = Utf8               dev/langchain4j/rag/query/transformer/DefaultQueryTransformerTest\n+  #38 = Utf8               Code\n+  #39 = Utf8               LineNumberTable\n+  #40 = Utf8               LocalVariableTable\n+  #41 = Utf8               this\n+  #42 = Utf8               Ldev/langchain4j/rag/query/transformer/DefaultQueryTransformerTest;\n+  #43 = Utf8               should_return_same_query\n+  #44 = Utf8               transformer\n+  #45 = Utf8               Ldev/langchain4j/rag/query/transformer/QueryTransformer;\n+  #46 = Utf8               Ldev/langchain4j/rag/query/Query;\n+  #47 = Utf8               transformed\n+  #48 = Utf8               Ljava/util/Collection;\n+  #49 = Utf8               LocalVariableTypeTable\n+  #50 = Utf8               Ljava/util/Collection<Ldev/langchain4j/rag/query/Query;>;\n+  #51 = Utf8               RuntimeVisibleAnnotations\n+  #52 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #53 = Utf8               SourceFile\n+  #54 = Utf8               DefaultQueryTransformerTest.java\n {\n   dev.langchain4j.rag.query.transformer.DefaultQueryTransformerTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -78,34 +78,34 @@\n             0       5     0  this   Ldev/langchain4j/rag/query/transformer/DefaultQueryTransformerTest;\n \n   void should_return_same_query();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=5, locals=4, args_size=1\n-         0: new           #2                  // class dev/langchain4j/rag/query/transformer/DefaultQueryTransformer\n+         0: new           #7                  // class dev/langchain4j/rag/query/transformer/DefaultQueryTransformer\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/rag/query/transformer/DefaultQueryTransformer.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/rag/query/transformer/DefaultQueryTransformer.\"<init>\":()V\n          7: astore_1\n-         8: ldc           #4                  // String query\n-        10: invokestatic  #5                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+         8: ldc           #10                 // String query\n+        10: invokestatic  #12                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n         13: astore_2\n         14: aload_1\n         15: aload_2\n-        16: invokeinterface #6,  2            // InterfaceMethod dev/langchain4j/rag/query/transformer/QueryTransformer.transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+        16: invokeinterface #18,  2           // InterfaceMethod dev/langchain4j/rag/query/transformer/QueryTransformer.transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n         21: astore_3\n         22: aload_3\n-        23: invokestatic  #7                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+        23: invokestatic  #24                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n         26: iconst_1\n-        27: anewarray     #8                  // class dev/langchain4j/rag/query/Query\n+        27: anewarray     #13                 // class dev/langchain4j/rag/query/Query\n         30: dup\n         31: iconst_0\n         32: aload_2\n         33: aastore\n-        34: invokevirtual #9                  // Method org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+        34: invokevirtual #30                 // Method org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n         37: pop\n         38: return\n       LineNumberTable:\n         line 16: 0\n         line 17: 8\n         line 20: 14\n         line 23: 22\n@@ -116,11 +116,11 @@\n             8      31     1 transformer   Ldev/langchain4j/rag/query/transformer/QueryTransformer;\n            14      25     2 query   Ldev/langchain4j/rag/query/Query;\n            22      17     3 transformed   Ljava/util/Collection;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            22      17     3 transformed   Ljava/util/Collection<Ldev/langchain4j/rag/query/Query;>;\n     RuntimeVisibleAnnotations:\n-      0: #29()\n+      0: #52()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"DefaultQueryTransformerTest.java\"\n"}]}, {"source1": "dev/langchain4j/rag/query/transformer/ExpandingQueryTransformerTest.class", "source2": "dev/langchain4j/rag/query/transformer/ExpandingQueryTransformerTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,171 +1,171 @@\n-  SHA-256 checksum 27a9ecd8d496e57e4a3a0dc94b187383f28c58e253e0a5113338b803e8f410d6\n+  SHA-256 checksum a35acf6f556edc379fa30332d3595dde4a2cd18af4973e8f35e61c72e7fb17f5\n   Compiled from \"ExpandingQueryTransformerTest.java\"\n class dev.langchain4j.rag.query.transformer.ExpandingQueryTransformerTest\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #34                         // dev/langchain4j/rag/query/transformer/ExpandingQueryTransformerTest\n-  super_class: #35                        // java/lang/Object\n+  this_class: #119                        // dev/langchain4j/rag/query/transformer/ExpandingQueryTransformerTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 0, methods: 5, attributes: 2\n Constant pool:\n-    #1 = Methodref          #35.#73       // java/lang/Object.\"<init>\":()V\n-    #2 = String             #47           // query\n-    #3 = Methodref          #9.#74        // dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-    #4 = Methodref          #75.#76       // dev/langchain4j/model/chat/mock/ChatModelMock.withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n-    #5 = Class              #77           // dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer\n-    #6 = Methodref          #5.#78        // dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;)V\n-    #7 = InterfaceMethodref #79.#80       // dev/langchain4j/rag/query/transformer/QueryTransformer.transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n-    #8 = Methodref          #81.#82       // org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n-    #9 = Class              #83           // dev/langchain4j/rag/query/Query\n-   #10 = String             #84           // query 1\n-   #11 = String             #85           // query 2\n-   #12 = String             #86           // query 3\n-   #13 = Methodref          #87.#88       // org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-   #14 = Methodref          #75.#89       // dev/langchain4j/model/chat/mock/ChatModelMock.userMessageText:()Ljava/lang/String;\n-   #15 = Methodref          #81.#90       // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #16 = String             #91           // Generate 3 different versions of a provided user query. Each version should be worded differently, using synonyms or alternative sentence structures, but they should all retain the original meaning. These versions will be used to retrieve relevant documents. It is very important to provide each query version on a separate line, without enumerations, hyphens, or any additional formatting!\\nUser query: query\n-   #17 = Methodref          #92.#93       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #18 = String             #94           // does not matter\n-   #19 = Methodref          #5.#95        // dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;I)V\n-   #20 = Class              #96           // java/lang/CharSequence\n-   #21 = String             #97           // Generate 5 different versions\n-   #22 = Methodref          #92.#98       // org/assertj/core/api/AbstractStringAssert.contains:([Ljava/lang/CharSequence;)Lorg/assertj/core/api/AbstractCharSequenceAssert;\n-   #23 = String             #99           // Generate 7 variations of {{query}}\n-   #24 = Methodref          #100.#101     // dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n-   #25 = Methodref          #5.#102       // dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;Ldev/langchain4j/model/input/PromptTemplate;)V\n-   #26 = String             #103          // Generate 7 variations of query\n-   #27 = String             #104          // Generate {{n}} variations of {{query}}\n-   #28 = Methodref          #5.#105       // dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer.builder:()Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n-   #29 = Methodref          #106.#107     // dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder.chatLanguageModel:(Ldev/langchain4j/model/chat/ChatLanguageModel;)Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n-   #30 = Methodref          #106.#108     // dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder.promptTemplate:(Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n-   #31 = Methodref          #109.#110     // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-   #32 = Methodref          #106.#111     // dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder.n:(Ljava/lang/Integer;)Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n-   #33 = Methodref          #106.#112     // dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder.build:()Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer;\n-   #34 = Class              #113          // dev/langchain4j/rag/query/transformer/ExpandingQueryTransformerTest\n-   #35 = Class              #114          // java/lang/Object\n-   #36 = Utf8               <init>\n-   #37 = Utf8               ()V\n-   #38 = Utf8               Code\n-   #39 = Utf8               LineNumberTable\n-   #40 = Utf8               LocalVariableTable\n-   #41 = Utf8               this\n-   #42 = Utf8               Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformerTest;\n-   #43 = Utf8               should_expand_query\n-   #44 = Utf8               (Ljava/lang/String;)V\n-   #45 = Utf8               queriesString\n-   #46 = Utf8               Ljava/lang/String;\n-   #47 = Utf8               query\n-   #48 = Utf8               Ldev/langchain4j/rag/query/Query;\n-   #49 = Utf8               model\n-   #50 = Utf8               Ldev/langchain4j/model/chat/mock/ChatModelMock;\n-   #51 = Utf8               transformer\n-   #52 = Utf8               Ldev/langchain4j/rag/query/transformer/QueryTransformer;\n-   #53 = Utf8               queries\n-   #54 = Utf8               Ljava/util/Collection;\n-   #55 = Utf8               LocalVariableTypeTable\n-   #56 = Utf8               Ljava/util/Collection<Ldev/langchain4j/rag/query/Query;>;\n-   #57 = Utf8               RuntimeVisibleAnnotations\n-   #58 = Utf8               Lorg/junit/jupiter/params/ParameterizedTest;\n-   #59 = Utf8               Lorg/junit/jupiter/params/provider/ValueSource;\n-   #60 = Utf8               strings\n-   #61 = Utf8               query 1\\nquery 2\\nquery 3\n-   #62 = Utf8               query 1\\n\\nquery 2\\n\\nquery 3\n-   #63 = Utf8               should_expand_query_with_custom_N\n-   #64 = Utf8               n\n-   #65 = Utf8               I\n-   #66 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #67 = Utf8               should_expand_query_with_custom_prompt_template\n-   #68 = Utf8               promptTemplate\n-   #69 = Utf8               Ldev/langchain4j/model/input/PromptTemplate;\n-   #70 = Utf8               should_expand_query_with_custom_prompt_template_and_n_builder\n-   #71 = Utf8               SourceFile\n-   #72 = Utf8               ExpandingQueryTransformerTest.java\n-   #73 = NameAndType        #36:#37       // \"<init>\":()V\n-   #74 = NameAndType        #115:#116     // from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-   #75 = Class              #117          // dev/langchain4j/model/chat/mock/ChatModelMock\n-   #76 = NameAndType        #118:#119     // withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n-   #77 = Utf8               dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer\n-   #78 = NameAndType        #36:#120      // \"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;)V\n-   #79 = Class              #121          // dev/langchain4j/rag/query/transformer/QueryTransformer\n-   #80 = NameAndType        #122:#123     // transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n-   #81 = Class              #124          // org/assertj/core/api/Assertions\n-   #82 = NameAndType        #125:#126     // assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n-   #83 = Utf8               dev/langchain4j/rag/query/Query\n-   #84 = Utf8               query 1\n-   #85 = Utf8               query 2\n-   #86 = Utf8               query 3\n-   #87 = Class              #127          // org/assertj/core/api/AbstractCollectionAssert\n-   #88 = NameAndType        #128:#129     // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-   #89 = NameAndType        #130:#131     // userMessageText:()Ljava/lang/String;\n-   #90 = NameAndType        #125:#132     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #91 = Utf8               Generate 3 different versions of a provided user query. Each version should be worded differently, using synonyms or alternative sentence structures, but they should all retain the original meaning. These versions will be used to retrieve relevant documents. It is very important to provide each query version on a separate line, without enumerations, hyphens, or any additional formatting!\\nUser query: query\n-   #92 = Class              #133          // org/assertj/core/api/AbstractStringAssert\n-   #93 = NameAndType        #134:#132     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #94 = Utf8               does not matter\n-   #95 = NameAndType        #36:#135      // \"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;I)V\n-   #96 = Utf8               java/lang/CharSequence\n-   #97 = Utf8               Generate 5 different versions\n-   #98 = NameAndType        #136:#137     // contains:([Ljava/lang/CharSequence;)Lorg/assertj/core/api/AbstractCharSequenceAssert;\n-   #99 = Utf8               Generate 7 variations of {{query}}\n-  #100 = Class              #138          // dev/langchain4j/model/input/PromptTemplate\n-  #101 = NameAndType        #115:#139     // from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n-  #102 = NameAndType        #36:#140      // \"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;Ldev/langchain4j/model/input/PromptTemplate;)V\n-  #103 = Utf8               Generate 7 variations of query\n-  #104 = Utf8               Generate {{n}} variations of {{query}}\n-  #105 = NameAndType        #141:#144     // builder:()Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n-  #106 = Class              #145          // dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder\n-  #107 = NameAndType        #146:#147     // chatLanguageModel:(Ldev/langchain4j/model/chat/ChatLanguageModel;)Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n-  #108 = NameAndType        #68:#148      // promptTemplate:(Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n-  #109 = Class              #149          // java/lang/Integer\n-  #110 = NameAndType        #150:#151     // valueOf:(I)Ljava/lang/Integer;\n-  #111 = NameAndType        #64:#152      // n:(Ljava/lang/Integer;)Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n-  #112 = NameAndType        #153:#154     // build:()Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer;\n-  #113 = Utf8               dev/langchain4j/rag/query/transformer/ExpandingQueryTransformerTest\n-  #114 = Utf8               java/lang/Object\n-  #115 = Utf8               from\n-  #116 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-  #117 = Utf8               dev/langchain4j/model/chat/mock/ChatModelMock\n-  #118 = Utf8               withStaticResponse\n-  #119 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n-  #120 = Utf8               (Ldev/langchain4j/model/chat/ChatLanguageModel;)V\n-  #121 = Utf8               dev/langchain4j/rag/query/transformer/QueryTransformer\n-  #122 = Utf8               transform\n-  #123 = Utf8               (Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n-  #124 = Utf8               org/assertj/core/api/Assertions\n-  #125 = Utf8               assertThat\n-  #126 = Utf8               (Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n-  #127 = Utf8               org/assertj/core/api/AbstractCollectionAssert\n-  #128 = Utf8               containsExactly\n-  #129 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #130 = Utf8               userMessageText\n-  #131 = Utf8               ()Ljava/lang/String;\n-  #132 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #133 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #134 = Utf8               isEqualTo\n-  #135 = Utf8               (Ldev/langchain4j/model/chat/ChatLanguageModel;I)V\n-  #136 = Utf8               contains\n-  #137 = Utf8               ([Ljava/lang/CharSequence;)Lorg/assertj/core/api/AbstractCharSequenceAssert;\n-  #138 = Utf8               dev/langchain4j/model/input/PromptTemplate\n-  #139 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n-  #140 = Utf8               (Ldev/langchain4j/model/chat/ChatLanguageModel;Ldev/langchain4j/model/input/PromptTemplate;)V\n-  #141 = Utf8               builder\n-  #142 = Utf8               ExpandingQueryTransformerBuilder\n-  #143 = Utf8               InnerClasses\n-  #144 = Utf8               ()Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n-  #145 = Utf8               dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder\n-  #146 = Utf8               chatLanguageModel\n-  #147 = Utf8               (Ldev/langchain4j/model/chat/ChatLanguageModel;)Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n-  #148 = Utf8               (Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n-  #149 = Utf8               java/lang/Integer\n-  #150 = Utf8               valueOf\n-  #151 = Utf8               (I)Ljava/lang/Integer;\n-  #152 = Utf8               (Ljava/lang/Integer;)Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n-  #153 = Utf8               build\n-  #154 = Utf8               ()Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer;\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = String             #8            // query\n+    #8 = Utf8               query\n+    #9 = Methodref          #10.#11       // dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+   #10 = Class              #12           // dev/langchain4j/rag/query/Query\n+   #11 = NameAndType        #13:#14       // from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+   #12 = Utf8               dev/langchain4j/rag/query/Query\n+   #13 = Utf8               from\n+   #14 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+   #15 = Methodref          #16.#17       // dev/langchain4j/model/chat/mock/ChatModelMock.withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n+   #16 = Class              #18           // dev/langchain4j/model/chat/mock/ChatModelMock\n+   #17 = NameAndType        #19:#20       // withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n+   #18 = Utf8               dev/langchain4j/model/chat/mock/ChatModelMock\n+   #19 = Utf8               withStaticResponse\n+   #20 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n+   #21 = Class              #22           // dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer\n+   #22 = Utf8               dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer\n+   #23 = Methodref          #21.#24       // dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;)V\n+   #24 = NameAndType        #5:#25        // \"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;)V\n+   #25 = Utf8               (Ldev/langchain4j/model/chat/ChatLanguageModel;)V\n+   #26 = InterfaceMethodref #27.#28       // dev/langchain4j/rag/query/transformer/QueryTransformer.transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+   #27 = Class              #29           // dev/langchain4j/rag/query/transformer/QueryTransformer\n+   #28 = NameAndType        #30:#31       // transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+   #29 = Utf8               dev/langchain4j/rag/query/transformer/QueryTransformer\n+   #30 = Utf8               transform\n+   #31 = Utf8               (Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+   #32 = Methodref          #33.#34       // org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+   #33 = Class              #35           // org/assertj/core/api/Assertions\n+   #34 = NameAndType        #36:#37       // assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+   #35 = Utf8               org/assertj/core/api/Assertions\n+   #36 = Utf8               assertThat\n+   #37 = Utf8               (Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+   #38 = String             #39           // query 1\n+   #39 = Utf8               query 1\n+   #40 = String             #41           // query 2\n+   #41 = Utf8               query 2\n+   #42 = String             #43           // query 3\n+   #43 = Utf8               query 3\n+   #44 = Methodref          #45.#46       // org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #45 = Class              #47           // org/assertj/core/api/AbstractCollectionAssert\n+   #46 = NameAndType        #48:#49       // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #47 = Utf8               org/assertj/core/api/AbstractCollectionAssert\n+   #48 = Utf8               containsExactly\n+   #49 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #50 = Methodref          #16.#51       // dev/langchain4j/model/chat/mock/ChatModelMock.userMessageText:()Ljava/lang/String;\n+   #51 = NameAndType        #52:#53       // userMessageText:()Ljava/lang/String;\n+   #52 = Utf8               userMessageText\n+   #53 = Utf8               ()Ljava/lang/String;\n+   #54 = Methodref          #33.#55       // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #55 = NameAndType        #36:#56       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #56 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #57 = String             #58           // Generate 3 different versions of a provided user query. Each version should be worded differently, using synonyms or alternative sentence structures, but they should all retain the original meaning. These versions will be used to retrieve relevant documents. It is very important to provide each query version on a separate line, without enumerations, hyphens, or any additional formatting!\\nUser query: query\n+   #58 = Utf8               Generate 3 different versions of a provided user query. Each version should be worded differently, using synonyms or alternative sentence structures, but they should all retain the original meaning. These versions will be used to retrieve relevant documents. It is very important to provide each query version on a separate line, without enumerations, hyphens, or any additional formatting!\\nUser query: query\n+   #59 = Methodref          #60.#61       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #60 = Class              #62           // org/assertj/core/api/AbstractStringAssert\n+   #61 = NameAndType        #63:#56       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #62 = Utf8               org/assertj/core/api/AbstractStringAssert\n+   #63 = Utf8               isEqualTo\n+   #64 = String             #65           // does not matter\n+   #65 = Utf8               does not matter\n+   #66 = Methodref          #21.#67       // dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;I)V\n+   #67 = NameAndType        #5:#68        // \"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;I)V\n+   #68 = Utf8               (Ldev/langchain4j/model/chat/ChatLanguageModel;I)V\n+   #69 = Class              #70           // java/lang/CharSequence\n+   #70 = Utf8               java/lang/CharSequence\n+   #71 = String             #72           // Generate 5 different versions\n+   #72 = Utf8               Generate 5 different versions\n+   #73 = Methodref          #60.#74       // org/assertj/core/api/AbstractStringAssert.contains:([Ljava/lang/CharSequence;)Lorg/assertj/core/api/AbstractCharSequenceAssert;\n+   #74 = NameAndType        #75:#76       // contains:([Ljava/lang/CharSequence;)Lorg/assertj/core/api/AbstractCharSequenceAssert;\n+   #75 = Utf8               contains\n+   #76 = Utf8               ([Ljava/lang/CharSequence;)Lorg/assertj/core/api/AbstractCharSequenceAssert;\n+   #77 = String             #78           // Generate 7 variations of {{query}}\n+   #78 = Utf8               Generate 7 variations of {{query}}\n+   #79 = Methodref          #80.#81       // dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+   #80 = Class              #82           // dev/langchain4j/model/input/PromptTemplate\n+   #81 = NameAndType        #13:#83       // from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+   #82 = Utf8               dev/langchain4j/model/input/PromptTemplate\n+   #83 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+   #84 = Methodref          #21.#85       // dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;Ldev/langchain4j/model/input/PromptTemplate;)V\n+   #85 = NameAndType        #5:#86        // \"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;Ldev/langchain4j/model/input/PromptTemplate;)V\n+   #86 = Utf8               (Ldev/langchain4j/model/chat/ChatLanguageModel;Ldev/langchain4j/model/input/PromptTemplate;)V\n+   #87 = String             #88           // Generate 7 variations of query\n+   #88 = Utf8               Generate 7 variations of query\n+   #89 = String             #90           // Generate {{n}} variations of {{query}}\n+   #90 = Utf8               Generate {{n}} variations of {{query}}\n+   #91 = Methodref          #21.#92       // dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer.builder:()Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n+   #92 = NameAndType        #93:#94       // builder:()Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n+   #93 = Utf8               builder\n+   #94 = Utf8               ()Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n+   #95 = Methodref          #96.#97       // dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder.chatLanguageModel:(Ldev/langchain4j/model/chat/ChatLanguageModel;)Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n+   #96 = Class              #98           // dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder\n+   #97 = NameAndType        #99:#100      // chatLanguageModel:(Ldev/langchain4j/model/chat/ChatLanguageModel;)Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n+   #98 = Utf8               dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder\n+   #99 = Utf8               chatLanguageModel\n+  #100 = Utf8               (Ldev/langchain4j/model/chat/ChatLanguageModel;)Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n+  #101 = Methodref          #96.#102      // dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder.promptTemplate:(Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n+  #102 = NameAndType        #103:#104     // promptTemplate:(Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n+  #103 = Utf8               promptTemplate\n+  #104 = Utf8               (Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n+  #105 = Methodref          #106.#107     // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+  #106 = Class              #108          // java/lang/Integer\n+  #107 = NameAndType        #109:#110     // valueOf:(I)Ljava/lang/Integer;\n+  #108 = Utf8               java/lang/Integer\n+  #109 = Utf8               valueOf\n+  #110 = Utf8               (I)Ljava/lang/Integer;\n+  #111 = Methodref          #96.#112      // dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder.n:(Ljava/lang/Integer;)Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n+  #112 = NameAndType        #113:#114     // n:(Ljava/lang/Integer;)Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n+  #113 = Utf8               n\n+  #114 = Utf8               (Ljava/lang/Integer;)Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n+  #115 = Methodref          #96.#116      // dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder.build:()Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer;\n+  #116 = NameAndType        #117:#118     // build:()Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer;\n+  #117 = Utf8               build\n+  #118 = Utf8               ()Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer;\n+  #119 = Class              #120          // dev/langchain4j/rag/query/transformer/ExpandingQueryTransformerTest\n+  #120 = Utf8               dev/langchain4j/rag/query/transformer/ExpandingQueryTransformerTest\n+  #121 = Utf8               Code\n+  #122 = Utf8               LineNumberTable\n+  #123 = Utf8               LocalVariableTable\n+  #124 = Utf8               this\n+  #125 = Utf8               Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformerTest;\n+  #126 = Utf8               should_expand_query\n+  #127 = Utf8               (Ljava/lang/String;)V\n+  #128 = Utf8               queriesString\n+  #129 = Utf8               Ljava/lang/String;\n+  #130 = Utf8               Ldev/langchain4j/rag/query/Query;\n+  #131 = Utf8               model\n+  #132 = Utf8               Ldev/langchain4j/model/chat/mock/ChatModelMock;\n+  #133 = Utf8               transformer\n+  #134 = Utf8               Ldev/langchain4j/rag/query/transformer/QueryTransformer;\n+  #135 = Utf8               queries\n+  #136 = Utf8               Ljava/util/Collection;\n+  #137 = Utf8               LocalVariableTypeTable\n+  #138 = Utf8               Ljava/util/Collection<Ldev/langchain4j/rag/query/Query;>;\n+  #139 = Utf8               RuntimeVisibleAnnotations\n+  #140 = Utf8               Lorg/junit/jupiter/params/ParameterizedTest;\n+  #141 = Utf8               Lorg/junit/jupiter/params/provider/ValueSource;\n+  #142 = Utf8               strings\n+  #143 = Utf8               query 1\\nquery 2\\nquery 3\n+  #144 = Utf8               query 1\\n\\nquery 2\\n\\nquery 3\n+  #145 = Utf8               should_expand_query_with_custom_N\n+  #146 = Utf8               I\n+  #147 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #148 = Utf8               should_expand_query_with_custom_prompt_template\n+  #149 = Utf8               Ldev/langchain4j/model/input/PromptTemplate;\n+  #150 = Utf8               should_expand_query_with_custom_prompt_template_and_n_builder\n+  #151 = Utf8               SourceFile\n+  #152 = Utf8               ExpandingQueryTransformerTest.java\n+  #153 = Utf8               InnerClasses\n+  #154 = Utf8               ExpandingQueryTransformerBuilder\n {\n   dev.langchain4j.rag.query.transformer.ExpandingQueryTransformerTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -178,55 +178,55 @@\n             0       5     0  this   Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformerTest;\n \n   void should_expand_query(java.lang.String);\n     descriptor: (Ljava/lang/String;)V\n     flags: (0x0000)\n     Code:\n       stack=5, locals=6, args_size=2\n-         0: ldc           #2                  // String query\n-         2: invokestatic  #3                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+         0: ldc           #7                  // String query\n+         2: invokestatic  #9                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n          5: astore_2\n          6: aload_1\n-         7: invokestatic  #4                  // Method dev/langchain4j/model/chat/mock/ChatModelMock.withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n+         7: invokestatic  #15                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n         10: astore_3\n-        11: new           #5                  // class dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer\n+        11: new           #21                 // class dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer\n         14: dup\n         15: aload_3\n-        16: invokespecial #6                  // Method dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;)V\n+        16: invokespecial #23                 // Method dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;)V\n         19: astore        4\n         21: aload         4\n         23: aload_2\n-        24: invokeinterface #7,  2            // InterfaceMethod dev/langchain4j/rag/query/transformer/QueryTransformer.transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+        24: invokeinterface #26,  2           // InterfaceMethod dev/langchain4j/rag/query/transformer/QueryTransformer.transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n         29: astore        5\n         31: aload         5\n-        33: invokestatic  #8                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+        33: invokestatic  #32                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n         36: iconst_3\n-        37: anewarray     #9                  // class dev/langchain4j/rag/query/Query\n+        37: anewarray     #10                 // class dev/langchain4j/rag/query/Query\n         40: dup\n         41: iconst_0\n-        42: ldc           #10                 // String query 1\n-        44: invokestatic  #3                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+        42: ldc           #38                 // String query 1\n+        44: invokestatic  #9                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n         47: aastore\n         48: dup\n         49: iconst_1\n-        50: ldc           #11                 // String query 2\n-        52: invokestatic  #3                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+        50: ldc           #40                 // String query 2\n+        52: invokestatic  #9                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n         55: aastore\n         56: dup\n         57: iconst_2\n-        58: ldc           #12                 // String query 3\n-        60: invokestatic  #3                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+        58: ldc           #42                 // String query 3\n+        60: invokestatic  #9                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n         63: aastore\n-        64: invokevirtual #13                 // Method org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+        64: invokevirtual #44                 // Method org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n         67: pop\n         68: aload_3\n-        69: invokevirtual #14                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.userMessageText:()Ljava/lang/String;\n-        72: invokestatic  #15                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        75: ldc           #16                 // String Generate 3 different versions of a provided user query. Each version should be worded differently, using synonyms or alternative sentence structures, but they should all retain the original meaning. These versions will be used to retrieve relevant documents. It is very important to provide each query version on a separate line, without enumerations, hyphens, or any additional formatting!\\nUser query: query\n-        77: invokevirtual #17                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        69: invokevirtual #50                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.userMessageText:()Ljava/lang/String;\n+        72: invokestatic  #54                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        75: ldc           #57                 // String Generate 3 different versions of a provided user query. Each version should be worded differently, using synonyms or alternative sentence structures, but they should all retain the original meaning. These versions will be used to retrieve relevant documents. It is very important to provide each query version on a separate line, without enumerations, hyphens, or any additional formatting!\\nUser query: query\n+        77: invokevirtual #59                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         80: pop\n         81: return\n       LineNumberTable:\n         line 24: 0\n         line 26: 6\n         line 28: 11\n         line 31: 21\n@@ -245,54 +245,54 @@\n            11      71     3 model   Ldev/langchain4j/model/chat/mock/ChatModelMock;\n            21      61     4 transformer   Ldev/langchain4j/rag/query/transformer/QueryTransformer;\n            31      51     5 queries   Ljava/util/Collection;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            31      51     5 queries   Ljava/util/Collection<Ldev/langchain4j/rag/query/Query;>;\n     RuntimeVisibleAnnotations:\n-      0: #58()\n+      0: #140()\n         org.junit.jupiter.params.ParameterizedTest\n-      1: #59(#60=[s#61,s#62])\n+      1: #141(#142=[s#143,s#144])\n         org.junit.jupiter.params.provider.ValueSource(\n           strings=[\"query 1\\nquery 2\\nquery 3\",\"query 1\\n\\nquery 2\\n\\nquery 3\"]\n         )\n \n   void should_expand_query_with_custom_N();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=5, locals=5, args_size=1\n          0: iconst_5\n          1: istore_1\n-         2: ldc           #18                 // String does not matter\n-         4: invokestatic  #4                  // Method dev/langchain4j/model/chat/mock/ChatModelMock.withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n+         2: ldc           #64                 // String does not matter\n+         4: invokestatic  #15                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n          7: astore_2\n-         8: new           #5                  // class dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer\n+         8: new           #21                 // class dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer\n         11: dup\n         12: aload_2\n         13: iload_1\n-        14: invokespecial #19                 // Method dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;I)V\n+        14: invokespecial #66                 // Method dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;I)V\n         17: astore_3\n-        18: ldc           #2                  // String query\n-        20: invokestatic  #3                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+        18: ldc           #7                  // String query\n+        20: invokestatic  #9                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n         23: astore        4\n         25: aload_3\n         26: aload         4\n-        28: invokeinterface #7,  2            // InterfaceMethod dev/langchain4j/rag/query/transformer/QueryTransformer.transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+        28: invokeinterface #26,  2           // InterfaceMethod dev/langchain4j/rag/query/transformer/QueryTransformer.transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n         33: pop\n         34: aload_2\n-        35: invokevirtual #14                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.userMessageText:()Ljava/lang/String;\n-        38: invokestatic  #15                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        35: invokevirtual #50                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.userMessageText:()Ljava/lang/String;\n+        38: invokestatic  #54                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         41: iconst_1\n-        42: anewarray     #20                 // class java/lang/CharSequence\n+        42: anewarray     #69                 // class java/lang/CharSequence\n         45: dup\n         46: iconst_0\n-        47: ldc           #21                 // String Generate 5 different versions\n+        47: ldc           #71                 // String Generate 5 different versions\n         49: aastore\n-        50: invokevirtual #22                 // Method org/assertj/core/api/AbstractStringAssert.contains:([Ljava/lang/CharSequence;)Lorg/assertj/core/api/AbstractCharSequenceAssert;\n+        50: invokevirtual #73                 // Method org/assertj/core/api/AbstractStringAssert.contains:([Ljava/lang/CharSequence;)Lorg/assertj/core/api/AbstractCharSequenceAssert;\n         53: pop\n         54: return\n       LineNumberTable:\n         line 54: 0\n         line 56: 2\n         line 58: 8\n         line 60: 18\n@@ -303,46 +303,46 @@\n         Start  Length  Slot  Name   Signature\n             0      55     0  this   Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformerTest;\n             2      53     1     n   I\n             8      47     2 model   Ldev/langchain4j/model/chat/mock/ChatModelMock;\n            18      37     3 transformer   Ldev/langchain4j/rag/query/transformer/QueryTransformer;\n            25      30     4 query   Ldev/langchain4j/rag/query/Query;\n     RuntimeVisibleAnnotations:\n-      0: #66()\n+      0: #147()\n         org.junit.jupiter.api.Test\n \n   void should_expand_query_with_custom_prompt_template();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=4, locals=5, args_size=1\n-         0: ldc           #23                 // String Generate 7 variations of {{query}}\n-         2: invokestatic  #24                 // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+         0: ldc           #77                 // String Generate 7 variations of {{query}}\n+         2: invokestatic  #79                 // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n          5: astore_1\n-         6: ldc           #18                 // String does not matter\n-         8: invokestatic  #4                  // Method dev/langchain4j/model/chat/mock/ChatModelMock.withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n+         6: ldc           #64                 // String does not matter\n+         8: invokestatic  #15                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n         11: astore_2\n-        12: new           #5                  // class dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer\n+        12: new           #21                 // class dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer\n         15: dup\n         16: aload_2\n         17: aload_1\n-        18: invokespecial #25                 // Method dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;Ldev/langchain4j/model/input/PromptTemplate;)V\n+        18: invokespecial #84                 // Method dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;Ldev/langchain4j/model/input/PromptTemplate;)V\n         21: astore_3\n-        22: ldc           #2                  // String query\n-        24: invokestatic  #3                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+        22: ldc           #7                  // String query\n+        24: invokestatic  #9                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n         27: astore        4\n         29: aload_3\n         30: aload         4\n-        32: invokeinterface #7,  2            // InterfaceMethod dev/langchain4j/rag/query/transformer/QueryTransformer.transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+        32: invokeinterface #26,  2           // InterfaceMethod dev/langchain4j/rag/query/transformer/QueryTransformer.transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n         37: pop\n         38: aload_2\n-        39: invokevirtual #14                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.userMessageText:()Ljava/lang/String;\n-        42: invokestatic  #15                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        45: ldc           #26                 // String Generate 7 variations of query\n-        47: invokevirtual #17                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        39: invokevirtual #50                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.userMessageText:()Ljava/lang/String;\n+        42: invokestatic  #54                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        45: ldc           #87                 // String Generate 7 variations of query\n+        47: invokevirtual #59                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         50: pop\n         51: return\n       LineNumberTable:\n         line 73: 0\n         line 75: 6\n         line 77: 12\n         line 79: 22\n@@ -353,50 +353,50 @@\n         Start  Length  Slot  Name   Signature\n             0      52     0  this   Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformerTest;\n             6      46     1 promptTemplate   Ldev/langchain4j/model/input/PromptTemplate;\n            12      40     2 model   Ldev/langchain4j/model/chat/mock/ChatModelMock;\n            22      30     3 transformer   Ldev/langchain4j/rag/query/transformer/QueryTransformer;\n            29      23     4 query   Ldev/langchain4j/rag/query/Query;\n     RuntimeVisibleAnnotations:\n-      0: #66()\n+      0: #147()\n         org.junit.jupiter.api.Test\n \n   void should_expand_query_with_custom_prompt_template_and_n_builder();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=2, locals=5, args_size=1\n-         0: ldc           #27                 // String Generate {{n}} variations of {{query}}\n-         2: invokestatic  #24                 // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+         0: ldc           #89                 // String Generate {{n}} variations of {{query}}\n+         2: invokestatic  #79                 // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n          5: astore_1\n-         6: ldc           #18                 // String does not matter\n-         8: invokestatic  #4                  // Method dev/langchain4j/model/chat/mock/ChatModelMock.withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n+         6: ldc           #64                 // String does not matter\n+         8: invokestatic  #15                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n         11: astore_2\n-        12: invokestatic  #28                 // Method dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer.builder:()Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n+        12: invokestatic  #91                 // Method dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer.builder:()Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n         15: aload_2\n-        16: invokevirtual #29                 // Method dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder.chatLanguageModel:(Ldev/langchain4j/model/chat/ChatLanguageModel;)Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n+        16: invokevirtual #95                 // Method dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder.chatLanguageModel:(Ldev/langchain4j/model/chat/ChatLanguageModel;)Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n         19: aload_1\n-        20: invokevirtual #30                 // Method dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder.promptTemplate:(Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n+        20: invokevirtual #101                // Method dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder.promptTemplate:(Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n         23: bipush        7\n-        25: invokestatic  #31                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-        28: invokevirtual #32                 // Method dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder.n:(Ljava/lang/Integer;)Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n-        31: invokevirtual #33                 // Method dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder.build:()Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer;\n+        25: invokestatic  #105                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        28: invokevirtual #111                // Method dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder.n:(Ljava/lang/Integer;)Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n+        31: invokevirtual #115                // Method dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder.build:()Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer;\n         34: astore_3\n-        35: ldc           #2                  // String query\n-        37: invokestatic  #3                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+        35: ldc           #7                  // String query\n+        37: invokestatic  #9                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n         40: astore        4\n         42: aload_3\n         43: aload         4\n-        45: invokeinterface #7,  2            // InterfaceMethod dev/langchain4j/rag/query/transformer/QueryTransformer.transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+        45: invokeinterface #26,  2           // InterfaceMethod dev/langchain4j/rag/query/transformer/QueryTransformer.transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n         50: pop\n         51: aload_2\n-        52: invokevirtual #14                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.userMessageText:()Ljava/lang/String;\n-        55: invokestatic  #15                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        58: ldc           #26                 // String Generate 7 variations of query\n-        60: invokevirtual #17                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        52: invokevirtual #50                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.userMessageText:()Ljava/lang/String;\n+        55: invokestatic  #54                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        58: ldc           #87                 // String Generate 7 variations of query\n+        60: invokevirtual #59                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         63: pop\n         64: return\n       LineNumberTable:\n         line 92: 0\n         line 94: 6\n         line 96: 12\n         line 97: 16\n@@ -411,13 +411,13 @@\n         Start  Length  Slot  Name   Signature\n             0      65     0  this   Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformerTest;\n             6      59     1 promptTemplate   Ldev/langchain4j/model/input/PromptTemplate;\n            12      53     2 model   Ldev/langchain4j/model/chat/mock/ChatModelMock;\n            35      30     3 transformer   Ldev/langchain4j/rag/query/transformer/QueryTransformer;\n            42      23     4 query   Ldev/langchain4j/rag/query/Query;\n     RuntimeVisibleAnnotations:\n-      0: #66()\n+      0: #147()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"ExpandingQueryTransformerTest.java\"\n InnerClasses:\n-  public static #142= #106 of #5;         // ExpandingQueryTransformerBuilder=class dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder of class dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer\n+  public static #154= #96 of #21;         // ExpandingQueryTransformerBuilder=class dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder of class dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer\n"}]}, {"source1": "dev/langchain4j/retriever/RetrieverTest$TestRetriever.class", "source2": "dev/langchain4j/retriever/RetrieverTest$TestRetriever.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,53 +1,53 @@\n-  SHA-256 checksum f3be74db17a669412cec51874115000241b7e3ce340dc937a11ccb61782ee1d5\n+  SHA-256 checksum 76b2da523c3b6af14df5b0cb68d08b74a16e58e6618ac8a60b26887feef3885a\n   Compiled from \"RetrieverTest.java\"\n public class dev.langchain4j.retriever.RetrieverTest$TestRetriever extends java.lang.Object implements dev.langchain4j.retriever.Retriever<java.lang.String>\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #4                          // dev/langchain4j/retriever/RetrieverTest$TestRetriever\n-  super_class: #5                         // java/lang/Object\n+  this_class: #15                         // dev/langchain4j/retriever/RetrieverTest$TestRetriever\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 3\n Constant pool:\n-   #1 = Methodref          #5.#25         // java/lang/Object.\"<init>\":()V\n-   #2 = String             #26            // abc\n-   #3 = Methodref          #27.#28        // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-   #4 = Class              #30            // dev/langchain4j/retriever/RetrieverTest$TestRetriever\n-   #5 = Class              #31            // java/lang/Object\n-   #6 = Class              #32            // dev/langchain4j/retriever/Retriever\n-   #7 = Utf8               <init>\n-   #8 = Utf8               ()V\n-   #9 = Utf8               Code\n-  #10 = Utf8               LineNumberTable\n-  #11 = Utf8               LocalVariableTable\n-  #12 = Utf8               this\n-  #13 = Utf8               TestRetriever\n-  #14 = Utf8               InnerClasses\n-  #15 = Utf8               Ldev/langchain4j/retriever/RetrieverTest$TestRetriever;\n-  #16 = Utf8               findRelevant\n-  #17 = Utf8               (Ljava/lang/String;)Ljava/util/List;\n-  #18 = Utf8               text\n-  #19 = Utf8               Ljava/lang/String;\n-  #20 = Utf8               Signature\n-  #21 = Utf8               (Ljava/lang/String;)Ljava/util/List<Ljava/lang/String;>;\n-  #22 = Utf8               Ljava/lang/Object;Ldev/langchain4j/retriever/Retriever<Ljava/lang/String;>;\n-  #23 = Utf8               SourceFile\n-  #24 = Utf8               RetrieverTest.java\n-  #25 = NameAndType        #7:#8          // \"<init>\":()V\n-  #26 = Utf8               abc\n-  #27 = Class              #33            // java/util/Collections\n-  #28 = NameAndType        #34:#35        // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-  #29 = Class              #36            // dev/langchain4j/retriever/RetrieverTest\n-  #30 = Utf8               dev/langchain4j/retriever/RetrieverTest$TestRetriever\n-  #31 = Utf8               java/lang/Object\n-  #32 = Utf8               dev/langchain4j/retriever/Retriever\n-  #33 = Utf8               java/util/Collections\n-  #34 = Utf8               singletonList\n-  #35 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n-  #36 = Utf8               dev/langchain4j/retriever/RetrieverTest\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = String             #8             // abc\n+   #8 = Utf8               abc\n+   #9 = Methodref          #10.#11        // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+  #10 = Class              #12            // java/util/Collections\n+  #11 = NameAndType        #13:#14        // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+  #12 = Utf8               java/util/Collections\n+  #13 = Utf8               singletonList\n+  #14 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n+  #15 = Class              #16            // dev/langchain4j/retriever/RetrieverTest$TestRetriever\n+  #16 = Utf8               dev/langchain4j/retriever/RetrieverTest$TestRetriever\n+  #17 = Class              #18            // dev/langchain4j/retriever/Retriever\n+  #18 = Utf8               dev/langchain4j/retriever/Retriever\n+  #19 = Utf8               Code\n+  #20 = Utf8               LineNumberTable\n+  #21 = Utf8               LocalVariableTable\n+  #22 = Utf8               this\n+  #23 = Utf8               Ldev/langchain4j/retriever/RetrieverTest$TestRetriever;\n+  #24 = Utf8               findRelevant\n+  #25 = Utf8               (Ljava/lang/String;)Ljava/util/List;\n+  #26 = Utf8               text\n+  #27 = Utf8               Ljava/lang/String;\n+  #28 = Utf8               Signature\n+  #29 = Utf8               (Ljava/lang/String;)Ljava/util/List<Ljava/lang/String;>;\n+  #30 = Utf8               Ljava/lang/Object;Ldev/langchain4j/retriever/Retriever<Ljava/lang/String;>;\n+  #31 = Utf8               SourceFile\n+  #32 = Utf8               RetrieverTest.java\n+  #33 = Utf8               InnerClasses\n+  #34 = Class              #35            // dev/langchain4j/retriever/RetrieverTest\n+  #35 = Utf8               dev/langchain4j/retriever/RetrieverTest\n+  #36 = Utf8               TestRetriever\n {\n   public dev.langchain4j.retriever.RetrieverTest$TestRetriever();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -60,22 +60,22 @@\n             0       5     0  this   Ldev/langchain4j/retriever/RetrieverTest$TestRetriever;\n \n   public java.util.List<java.lang.String> findRelevant(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ljava/util/List;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=2, args_size=2\n-         0: ldc           #2                  // String abc\n-         2: invokestatic  #3                  // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+         0: ldc           #7                  // String abc\n+         2: invokestatic  #9                  // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n          5: areturn\n       LineNumberTable:\n         line 18: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       6     0  this   Ldev/langchain4j/retriever/RetrieverTest$TestRetriever;\n             0       6     1  text   Ljava/lang/String;\n-    Signature: #21                          // (Ljava/lang/String;)Ljava/util/List<Ljava/lang/String;>;\n+    Signature: #29                          // (Ljava/lang/String;)Ljava/util/List<Ljava/lang/String;>;\n }\n-Signature: #22                          // Ljava/lang/Object;Ldev/langchain4j/retriever/Retriever<Ljava/lang/String;>;\n+Signature: #30                          // Ljava/lang/Object;Ldev/langchain4j/retriever/Retriever<Ljava/lang/String;>;\n SourceFile: \"RetrieverTest.java\"\n InnerClasses:\n-  public static #13= #4 of #29;           // TestRetriever=class dev/langchain4j/retriever/RetrieverTest$TestRetriever of class dev/langchain4j/retriever/RetrieverTest\n+  public static #36= #15 of #34;          // TestRetriever=class dev/langchain4j/retriever/RetrieverTest$TestRetriever of class dev/langchain4j/retriever/RetrieverTest\n"}]}, {"source1": "dev/langchain4j/retriever/RetrieverTest.class", "source2": "dev/langchain4j/retriever/RetrieverTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,174 +1,174 @@\n-  SHA-256 checksum ec7492a3b56d91fecc7af46914308a7dc751d6c71a2d78ce97f7905912c1c223\n+  SHA-256 checksum 1628fc6ceb50b3fb423c88766de8bf69f612e54c473216ce76cb3c37ab4a8ee0\n   Compiled from \"RetrieverTest.java\"\n class dev.langchain4j.retriever.RetrieverTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #27                         // dev/langchain4j/retriever/RetrieverTest\n-  super_class: #28                        // java/lang/Object\n+  this_class: #19                         // dev/langchain4j/retriever/RetrieverTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 5, attributes: 3\n Constant pool:\n-    #1 = Methodref          #28.#61       // java/lang/Object.\"<init>\":()V\n-    #2 = Class              #62           // dev/langchain4j/retriever/RetrieverTest$TestRetriever\n-    #3 = Methodref          #2.#61        // dev/langchain4j/retriever/RetrieverTest$TestRetriever.\"<init>\":()V\n-    #4 = String             #63           // test\n-    #5 = InterfaceMethodref #64.#65       // dev/langchain4j/retriever/Retriever.findRelevant:(Ljava/lang/String;)Ljava/util/List;\n-    #6 = Methodref          #27.#66       // dev/langchain4j/retriever/RetrieverTest.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-    #7 = Class              #67           // java/lang/String\n-    #8 = String             #68           // abc\n-    #9 = Methodref          #69.#70       // org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-   #10 = Class              #71           // java/lang/RuntimeException\n-   #11 = Methodref          #27.#72       // dev/langchain4j/retriever/RetrieverTest.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-   #12 = InvokeDynamic      #0:#77        // #0:call:(Ldev/langchain4j/retriever/Retriever;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #13 = Methodref          #78.#79       // org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #14 = String             #80           // Not implemented\n-   #15 = Methodref          #81.#82       // org/assertj/core/api/ThrowableAssertAlternative.withMessage:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #16 = InvokeDynamic      #1:#85        // #1:findRelevant:()Ldev/langchain4j/retriever/Retriever;\n-   #17 = String             #86           // does not matter\n-   #18 = InterfaceMethodref #64.#87       // dev/langchain4j/retriever/Retriever.toContentRetriever:()Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n-   #19 = Methodref          #88.#89       // dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-   #20 = InterfaceMethodref #90.#91       // dev/langchain4j/rag/content/retriever/ContentRetriever.retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n-   #21 = Class              #92           // dev/langchain4j/rag/content/Content\n-   #22 = Methodref          #21.#93       // dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n-   #23 = Methodref          #69.#94       // org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-   #24 = Methodref          #95.#96       // dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-   #25 = Methodref          #97.#98       // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-   #26 = InterfaceMethodref #64.#99       // dev/langchain4j/retriever/Retriever.findRelevant:(Ljava/lang/Object;Ljava/lang/String;)Ljava/util/List;\n-   #27 = Class              #100          // dev/langchain4j/retriever/RetrieverTest\n-   #28 = Class              #101          // java/lang/Object\n-   #29 = Class              #102          // org/assertj/core/api/WithAssertions\n-   #30 = Utf8               TestRetriever\n-   #31 = Utf8               InnerClasses\n-   #32 = Utf8               <init>\n-   #33 = Utf8               ()V\n-   #34 = Utf8               Code\n-   #35 = Utf8               LineNumberTable\n-   #36 = Utf8               LocalVariableTable\n-   #37 = Utf8               this\n-   #38 = Utf8               Ldev/langchain4j/retriever/RetrieverTest;\n-   #39 = Utf8               testFindRelevant\n-   #40 = Utf8               retriever\n-   #41 = Utf8               Ldev/langchain4j/retriever/Retriever;\n-   #42 = Utf8               LocalVariableTypeTable\n-   #43 = Utf8               Ldev/langchain4j/retriever/Retriever<Ljava/lang/String;>;\n-   #44 = Utf8               RuntimeVisibleAnnotations\n-   #45 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #46 = Utf8               should_convert_to_content_retriever\n-   #47 = Utf8               query\n-   #48 = Utf8               Ljava/lang/String;\n-   #49 = Utf8               contentRetriever\n-   #50 = Utf8               Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n-   #51 = Utf8               Ldev/langchain4j/retriever/Retriever<Ldev/langchain4j/data/segment/TextSegment;>;\n-   #52 = Utf8               lambda$should_convert_to_content_retriever$1\n-   #53 = Utf8               (Ljava/lang/String;)Ljava/util/List;\n-   #54 = Utf8               text\n-   #55 = Utf8               lambda$testFindRelevant$0\n-   #56 = Utf8               (Ldev/langchain4j/retriever/Retriever;)V\n-   #57 = Utf8               Exceptions\n-   #58 = Class              #103          // java/lang/Throwable\n-   #59 = Utf8               SourceFile\n-   #60 = Utf8               RetrieverTest.java\n-   #61 = NameAndType        #32:#33       // \"<init>\":()V\n-   #62 = Utf8               dev/langchain4j/retriever/RetrieverTest$TestRetriever\n-   #63 = Utf8               test\n-   #64 = Class              #104          // dev/langchain4j/retriever/Retriever\n-   #65 = NameAndType        #105:#53      // findRelevant:(Ljava/lang/String;)Ljava/util/List;\n-   #66 = NameAndType        #106:#107     // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-   #67 = Utf8               java/lang/String\n-   #68 = Utf8               abc\n-   #69 = Class              #108          // org/assertj/core/api/ListAssert\n-   #70 = NameAndType        #109:#110     // containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-   #71 = Utf8               java/lang/RuntimeException\n-   #72 = NameAndType        #111:#112     // assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-   #73 = Utf8               BootstrapMethods\n-   #74 = MethodHandle       6:#113        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-   #75 = MethodType         #33           //  ()V\n-   #76 = MethodHandle       6:#114        // REF_invokeStatic dev/langchain4j/retriever/RetrieverTest.lambda$testFindRelevant$0:(Ldev/langchain4j/retriever/Retriever;)V\n-   #77 = NameAndType        #115:#118     // call:(Ldev/langchain4j/retriever/Retriever;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #78 = Class              #119          // org/assertj/core/api/ThrowableTypeAssert\n-   #79 = NameAndType        #120:#121     // isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #80 = Utf8               Not implemented\n-   #81 = Class              #122          // org/assertj/core/api/ThrowableAssertAlternative\n-   #82 = NameAndType        #123:#124     // withMessage:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #83 = MethodType         #53           //  (Ljava/lang/String;)Ljava/util/List;\n-   #84 = MethodHandle       6:#125        // REF_invokeStatic dev/langchain4j/retriever/RetrieverTest.lambda$should_convert_to_content_retriever$1:(Ljava/lang/String;)Ljava/util/List;\n-   #85 = NameAndType        #105:#126     // findRelevant:()Ldev/langchain4j/retriever/Retriever;\n-   #86 = Utf8               does not matter\n-   #87 = NameAndType        #127:#128     // toContentRetriever:()Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n-   #88 = Class              #129          // dev/langchain4j/rag/query/Query\n-   #89 = NameAndType        #130:#131     // from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-   #90 = Class              #132          // dev/langchain4j/rag/content/retriever/ContentRetriever\n-   #91 = NameAndType        #133:#134     // retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n-   #92 = Utf8               dev/langchain4j/rag/content/Content\n-   #93 = NameAndType        #130:#135     // from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n-   #94 = NameAndType        #136:#110     // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-   #95 = Class              #137          // dev/langchain4j/data/segment/TextSegment\n-   #96 = NameAndType        #130:#138     // from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-   #97 = Class              #139          // java/util/Collections\n-   #98 = NameAndType        #140:#141     // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-   #99 = NameAndType        #105:#142     // findRelevant:(Ljava/lang/Object;Ljava/lang/String;)Ljava/util/List;\n-  #100 = Utf8               dev/langchain4j/retriever/RetrieverTest\n-  #101 = Utf8               java/lang/Object\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Class              #8            // dev/langchain4j/retriever/RetrieverTest$TestRetriever\n+    #8 = Utf8               dev/langchain4j/retriever/RetrieverTest$TestRetriever\n+    #9 = Methodref          #7.#3         // dev/langchain4j/retriever/RetrieverTest$TestRetriever.\"<init>\":()V\n+   #10 = String             #11           // test\n+   #11 = Utf8               test\n+   #12 = InterfaceMethodref #13.#14       // dev/langchain4j/retriever/Retriever.findRelevant:(Ljava/lang/String;)Ljava/util/List;\n+   #13 = Class              #15           // dev/langchain4j/retriever/Retriever\n+   #14 = NameAndType        #16:#17       // findRelevant:(Ljava/lang/String;)Ljava/util/List;\n+   #15 = Utf8               dev/langchain4j/retriever/Retriever\n+   #16 = Utf8               findRelevant\n+   #17 = Utf8               (Ljava/lang/String;)Ljava/util/List;\n+   #18 = Methodref          #19.#20       // dev/langchain4j/retriever/RetrieverTest.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+   #19 = Class              #21           // dev/langchain4j/retriever/RetrieverTest\n+   #20 = NameAndType        #22:#23       // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+   #21 = Utf8               dev/langchain4j/retriever/RetrieverTest\n+   #22 = Utf8               assertThat\n+   #23 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+   #24 = Class              #25           // java/lang/String\n+   #25 = Utf8               java/lang/String\n+   #26 = String             #27           // abc\n+   #27 = Utf8               abc\n+   #28 = Methodref          #29.#30       // org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #29 = Class              #31           // org/assertj/core/api/ListAssert\n+   #30 = NameAndType        #32:#33       // containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #31 = Utf8               org/assertj/core/api/ListAssert\n+   #32 = Utf8               containsOnly\n+   #33 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #34 = Class              #35           // java/lang/RuntimeException\n+   #35 = Utf8               java/lang/RuntimeException\n+   #36 = Methodref          #19.#37       // dev/langchain4j/retriever/RetrieverTest.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #37 = NameAndType        #38:#39       // assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #38 = Utf8               assertThatExceptionOfType\n+   #39 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #40 = InvokeDynamic      #0:#41        // #0:call:(Ldev/langchain4j/retriever/Retriever;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #41 = NameAndType        #42:#43       // call:(Ldev/langchain4j/retriever/Retriever;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #42 = Utf8               call\n+   #43 = Utf8               (Ldev/langchain4j/retriever/Retriever;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #44 = Methodref          #45.#46       // org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #45 = Class              #47           // org/assertj/core/api/ThrowableTypeAssert\n+   #46 = NameAndType        #48:#49       // isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #47 = Utf8               org/assertj/core/api/ThrowableTypeAssert\n+   #48 = Utf8               isThrownBy\n+   #49 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #50 = String             #51           // Not implemented\n+   #51 = Utf8               Not implemented\n+   #52 = Methodref          #53.#54       // org/assertj/core/api/ThrowableAssertAlternative.withMessage:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #53 = Class              #55           // org/assertj/core/api/ThrowableAssertAlternative\n+   #54 = NameAndType        #56:#57       // withMessage:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #55 = Utf8               org/assertj/core/api/ThrowableAssertAlternative\n+   #56 = Utf8               withMessage\n+   #57 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #58 = InvokeDynamic      #1:#59        // #1:findRelevant:()Ldev/langchain4j/retriever/Retriever;\n+   #59 = NameAndType        #16:#60       // findRelevant:()Ldev/langchain4j/retriever/Retriever;\n+   #60 = Utf8               ()Ldev/langchain4j/retriever/Retriever;\n+   #61 = String             #62           // does not matter\n+   #62 = Utf8               does not matter\n+   #63 = InterfaceMethodref #13.#64       // dev/langchain4j/retriever/Retriever.toContentRetriever:()Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n+   #64 = NameAndType        #65:#66       // toContentRetriever:()Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n+   #65 = Utf8               toContentRetriever\n+   #66 = Utf8               ()Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n+   #67 = Methodref          #68.#69       // dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+   #68 = Class              #70           // dev/langchain4j/rag/query/Query\n+   #69 = NameAndType        #71:#72       // from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+   #70 = Utf8               dev/langchain4j/rag/query/Query\n+   #71 = Utf8               from\n+   #72 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+   #73 = InterfaceMethodref #74.#75       // dev/langchain4j/rag/content/retriever/ContentRetriever.retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n+   #74 = Class              #76           // dev/langchain4j/rag/content/retriever/ContentRetriever\n+   #75 = NameAndType        #77:#78       // retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n+   #76 = Utf8               dev/langchain4j/rag/content/retriever/ContentRetriever\n+   #77 = Utf8               retrieve\n+   #78 = Utf8               (Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n+   #79 = Class              #80           // dev/langchain4j/rag/content/Content\n+   #80 = Utf8               dev/langchain4j/rag/content/Content\n+   #81 = Methodref          #79.#82       // dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+   #82 = NameAndType        #71:#83       // from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+   #83 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+   #84 = Methodref          #29.#85       // org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #85 = NameAndType        #86:#33       // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #86 = Utf8               containsExactly\n+   #87 = Methodref          #88.#89       // dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+   #88 = Class              #90           // dev/langchain4j/data/segment/TextSegment\n+   #89 = NameAndType        #71:#91       // from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+   #90 = Utf8               dev/langchain4j/data/segment/TextSegment\n+   #91 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+   #92 = Methodref          #93.#94       // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+   #93 = Class              #95           // java/util/Collections\n+   #94 = NameAndType        #96:#97       // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+   #95 = Utf8               java/util/Collections\n+   #96 = Utf8               singletonList\n+   #97 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n+   #98 = InterfaceMethodref #13.#99       // dev/langchain4j/retriever/Retriever.findRelevant:(Ljava/lang/Object;Ljava/lang/String;)Ljava/util/List;\n+   #99 = NameAndType        #16:#100      // findRelevant:(Ljava/lang/Object;Ljava/lang/String;)Ljava/util/List;\n+  #100 = Utf8               (Ljava/lang/Object;Ljava/lang/String;)Ljava/util/List;\n+  #101 = Class              #102          // org/assertj/core/api/WithAssertions\n   #102 = Utf8               org/assertj/core/api/WithAssertions\n-  #103 = Utf8               java/lang/Throwable\n-  #104 = Utf8               dev/langchain4j/retriever/Retriever\n-  #105 = Utf8               findRelevant\n-  #106 = Utf8               assertThat\n-  #107 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #108 = Utf8               org/assertj/core/api/ListAssert\n-  #109 = Utf8               containsOnly\n-  #110 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #111 = Utf8               assertThatExceptionOfType\n-  #112 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-  #113 = Methodref          #143.#144     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #114 = Methodref          #27.#145      // dev/langchain4j/retriever/RetrieverTest.lambda$testFindRelevant$0:(Ldev/langchain4j/retriever/Retriever;)V\n-  #115 = Utf8               call\n-  #116 = Class              #147          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #117 = Utf8               ThrowingCallable\n-  #118 = Utf8               (Ldev/langchain4j/retriever/Retriever;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-  #119 = Utf8               org/assertj/core/api/ThrowableTypeAssert\n-  #120 = Utf8               isThrownBy\n-  #121 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #122 = Utf8               org/assertj/core/api/ThrowableAssertAlternative\n-  #123 = Utf8               withMessage\n-  #124 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #125 = Methodref          #27.#148      // dev/langchain4j/retriever/RetrieverTest.lambda$should_convert_to_content_retriever$1:(Ljava/lang/String;)Ljava/util/List;\n-  #126 = Utf8               ()Ldev/langchain4j/retriever/Retriever;\n-  #127 = Utf8               toContentRetriever\n-  #128 = Utf8               ()Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n-  #129 = Utf8               dev/langchain4j/rag/query/Query\n-  #130 = Utf8               from\n-  #131 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-  #132 = Utf8               dev/langchain4j/rag/content/retriever/ContentRetriever\n-  #133 = Utf8               retrieve\n-  #134 = Utf8               (Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n-  #135 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n-  #136 = Utf8               containsExactly\n-  #137 = Utf8               dev/langchain4j/data/segment/TextSegment\n-  #138 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #139 = Utf8               java/util/Collections\n-  #140 = Utf8               singletonList\n-  #141 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n-  #142 = Utf8               (Ljava/lang/Object;Ljava/lang/String;)Ljava/util/List;\n-  #143 = Class              #149          // java/lang/invoke/LambdaMetafactory\n-  #144 = NameAndType        #150:#153     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #145 = NameAndType        #55:#56       // lambda$testFindRelevant$0:(Ldev/langchain4j/retriever/Retriever;)V\n-  #146 = Class              #154          // org/assertj/core/api/ThrowableAssert\n-  #147 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #148 = NameAndType        #52:#53       // lambda$should_convert_to_content_retriever$1:(Ljava/lang/String;)Ljava/util/List;\n-  #149 = Utf8               java/lang/invoke/LambdaMetafactory\n-  #150 = Utf8               metafactory\n-  #151 = Class              #156          // java/lang/invoke/MethodHandles$Lookup\n-  #152 = Utf8               Lookup\n-  #153 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #154 = Utf8               org/assertj/core/api/ThrowableAssert\n-  #155 = Class              #157          // java/lang/invoke/MethodHandles\n-  #156 = Utf8               java/lang/invoke/MethodHandles$Lookup\n-  #157 = Utf8               java/lang/invoke/MethodHandles\n+  #103 = Utf8               Code\n+  #104 = Utf8               LineNumberTable\n+  #105 = Utf8               LocalVariableTable\n+  #106 = Utf8               this\n+  #107 = Utf8               Ldev/langchain4j/retriever/RetrieverTest;\n+  #108 = Utf8               testFindRelevant\n+  #109 = Utf8               retriever\n+  #110 = Utf8               Ldev/langchain4j/retriever/Retriever;\n+  #111 = Utf8               LocalVariableTypeTable\n+  #112 = Utf8               Ldev/langchain4j/retriever/Retriever<Ljava/lang/String;>;\n+  #113 = Utf8               RuntimeVisibleAnnotations\n+  #114 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #115 = Utf8               should_convert_to_content_retriever\n+  #116 = Utf8               query\n+  #117 = Utf8               Ljava/lang/String;\n+  #118 = Utf8               contentRetriever\n+  #119 = Utf8               Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n+  #120 = Utf8               Ldev/langchain4j/retriever/Retriever<Ldev/langchain4j/data/segment/TextSegment;>;\n+  #121 = Utf8               lambda$should_convert_to_content_retriever$1\n+  #122 = Utf8               text\n+  #123 = Utf8               lambda$testFindRelevant$0\n+  #124 = Utf8               (Ldev/langchain4j/retriever/Retriever;)V\n+  #125 = Utf8               Exceptions\n+  #126 = Class              #127          // java/lang/Throwable\n+  #127 = Utf8               java/lang/Throwable\n+  #128 = Utf8               SourceFile\n+  #129 = Utf8               RetrieverTest.java\n+  #130 = Utf8               BootstrapMethods\n+  #131 = MethodHandle       6:#132        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #132 = Methodref          #133.#134     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #133 = Class              #135          // java/lang/invoke/LambdaMetafactory\n+  #134 = NameAndType        #136:#137     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #135 = Utf8               java/lang/invoke/LambdaMetafactory\n+  #136 = Utf8               metafactory\n+  #137 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #138 = MethodType         #6            //  ()V\n+  #139 = MethodHandle       6:#140        // REF_invokeStatic dev/langchain4j/retriever/RetrieverTest.lambda$testFindRelevant$0:(Ldev/langchain4j/retriever/Retriever;)V\n+  #140 = Methodref          #19.#141      // dev/langchain4j/retriever/RetrieverTest.lambda$testFindRelevant$0:(Ldev/langchain4j/retriever/Retriever;)V\n+  #141 = NameAndType        #123:#124     // lambda$testFindRelevant$0:(Ldev/langchain4j/retriever/Retriever;)V\n+  #142 = MethodType         #17           //  (Ljava/lang/String;)Ljava/util/List;\n+  #143 = MethodHandle       6:#144        // REF_invokeStatic dev/langchain4j/retriever/RetrieverTest.lambda$should_convert_to_content_retriever$1:(Ljava/lang/String;)Ljava/util/List;\n+  #144 = Methodref          #19.#145      // dev/langchain4j/retriever/RetrieverTest.lambda$should_convert_to_content_retriever$1:(Ljava/lang/String;)Ljava/util/List;\n+  #145 = NameAndType        #121:#17      // lambda$should_convert_to_content_retriever$1:(Ljava/lang/String;)Ljava/util/List;\n+  #146 = Utf8               InnerClasses\n+  #147 = Utf8               TestRetriever\n+  #148 = Class              #149          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n+  #149 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n+  #150 = Class              #151          // org/assertj/core/api/ThrowableAssert\n+  #151 = Utf8               org/assertj/core/api/ThrowableAssert\n+  #152 = Utf8               ThrowingCallable\n+  #153 = Class              #154          // java/lang/invoke/MethodHandles$Lookup\n+  #154 = Utf8               java/lang/invoke/MethodHandles$Lookup\n+  #155 = Class              #156          // java/lang/invoke/MethodHandles\n+  #156 = Utf8               java/lang/invoke/MethodHandles\n+  #157 = Utf8               Lookup\n {\n   dev.langchain4j.retriever.RetrieverTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -181,39 +181,39 @@\n             0       5     0  this   Ldev/langchain4j/retriever/RetrieverTest;\n \n   public void testFindRelevant();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=5, locals=2, args_size=1\n-         0: new           #2                  // class dev/langchain4j/retriever/RetrieverTest$TestRetriever\n+         0: new           #7                  // class dev/langchain4j/retriever/RetrieverTest$TestRetriever\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/retriever/RetrieverTest$TestRetriever.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/retriever/RetrieverTest$TestRetriever.\"<init>\":()V\n          7: astore_1\n          8: aload_0\n          9: aload_1\n-        10: ldc           #4                  // String test\n-        12: invokeinterface #5,  2            // InterfaceMethod dev/langchain4j/retriever/Retriever.findRelevant:(Ljava/lang/String;)Ljava/util/List;\n-        17: invokevirtual #6                  // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+        10: ldc           #10                 // String test\n+        12: invokeinterface #12,  2           // InterfaceMethod dev/langchain4j/retriever/Retriever.findRelevant:(Ljava/lang/String;)Ljava/util/List;\n+        17: invokevirtual #18                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n         20: iconst_1\n-        21: anewarray     #7                  // class java/lang/String\n+        21: anewarray     #24                 // class java/lang/String\n         24: dup\n         25: iconst_0\n-        26: ldc           #8                  // String abc\n+        26: ldc           #26                 // String abc\n         28: aastore\n-        29: invokevirtual #9                  // Method org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+        29: invokevirtual #28                 // Method org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n         32: pop\n         33: aload_0\n-        34: ldc           #10                 // class java/lang/RuntimeException\n-        36: invokevirtual #11                 // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+        34: ldc           #34                 // class java/lang/RuntimeException\n+        36: invokevirtual #36                 // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n         39: aload_1\n-        40: invokedynamic #12,  0             // InvokeDynamic #0:call:(Ldev/langchain4j/retriever/Retriever;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-        45: invokevirtual #13                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-        48: ldc           #14                 // String Not implemented\n-        50: invokevirtual #15                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessage:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        40: invokedynamic #40,  0             // InvokeDynamic #0:call:(Ldev/langchain4j/retriever/Retriever;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+        45: invokevirtual #44                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        48: ldc           #50                 // String Not implemented\n+        50: invokevirtual #52                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessage:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n         53: pop\n         54: return\n       LineNumberTable:\n         line 24: 0\n         line 25: 8\n         line 26: 29\n         line 28: 33\n@@ -224,43 +224,43 @@\n         Start  Length  Slot  Name   Signature\n             0      55     0  this   Ldev/langchain4j/retriever/RetrieverTest;\n             8      47     1 retriever   Ldev/langchain4j/retriever/Retriever;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             8      47     1 retriever   Ldev/langchain4j/retriever/Retriever<Ljava/lang/String;>;\n     RuntimeVisibleAnnotations:\n-      0: #45()\n+      0: #114()\n         org.junit.jupiter.api.Test\n \n   public void should_convert_to_content_retriever();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=5, locals=4, args_size=1\n-         0: invokedynamic #16,  0             // InvokeDynamic #1:findRelevant:()Ldev/langchain4j/retriever/Retriever;\n+         0: invokedynamic #58,  0             // InvokeDynamic #1:findRelevant:()Ldev/langchain4j/retriever/Retriever;\n          5: astore_1\n-         6: ldc           #17                 // String does not matter\n+         6: ldc           #61                 // String does not matter\n          8: astore_2\n          9: aload_1\n-        10: invokeinterface #18,  1           // InterfaceMethod dev/langchain4j/retriever/Retriever.toContentRetriever:()Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n+        10: invokeinterface #63,  1           // InterfaceMethod dev/langchain4j/retriever/Retriever.toContentRetriever:()Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n         15: astore_3\n         16: aload_0\n         17: aload_3\n         18: aload_2\n-        19: invokestatic  #19                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-        22: invokeinterface #20,  2           // InterfaceMethod dev/langchain4j/rag/content/retriever/ContentRetriever.retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n-        27: invokevirtual #6                  // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+        19: invokestatic  #67                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+        22: invokeinterface #73,  2           // InterfaceMethod dev/langchain4j/rag/content/retriever/ContentRetriever.retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n+        27: invokevirtual #18                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n         30: iconst_1\n-        31: anewarray     #21                 // class dev/langchain4j/rag/content/Content\n+        31: anewarray     #79                 // class dev/langchain4j/rag/content/Content\n         34: dup\n         35: iconst_0\n         36: aload_2\n-        37: invokestatic  #22                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        37: invokestatic  #81                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         40: aastore\n-        41: invokevirtual #23                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+        41: invokevirtual #84                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n         44: pop\n         45: return\n       LineNumberTable:\n         line 37: 0\n         line 39: 6\n         line 42: 9\n         line 45: 16\n@@ -271,60 +271,60 @@\n             6      40     1 retriever   Ldev/langchain4j/retriever/Retriever;\n             9      37     2 query   Ljava/lang/String;\n            16      30     3 contentRetriever   Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             6      40     1 retriever   Ldev/langchain4j/retriever/Retriever<Ldev/langchain4j/data/segment/TextSegment;>;\n     RuntimeVisibleAnnotations:\n-      0: #45()\n+      0: #114()\n         org.junit.jupiter.api.Test\n \n   private static java.util.List lambda$should_convert_to_content_retriever$1(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ljava/util/List;\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n-         1: invokestatic  #24                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-         4: invokestatic  #25                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+         1: invokestatic  #87                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+         4: invokestatic  #92                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n          7: areturn\n       LineNumberTable:\n         line 37: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       8     0  text   Ljava/lang/String;\n \n   private static void lambda$testFindRelevant$0(dev.langchain4j.retriever.Retriever) throws java.lang.Throwable;\n     descriptor: (Ldev/langchain4j/retriever/Retriever;)V\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=3, locals=1, args_size=1\n          0: aload_0\n-         1: ldc           #4                  // String test\n-         3: ldc           #4                  // String test\n-         5: invokeinterface #26,  3           // InterfaceMethod dev/langchain4j/retriever/Retriever.findRelevant:(Ljava/lang/Object;Ljava/lang/String;)Ljava/util/List;\n+         1: ldc           #10                 // String test\n+         3: ldc           #10                 // String test\n+         5: invokeinterface #98,  3           // InterfaceMethod dev/langchain4j/retriever/Retriever.findRelevant:(Ljava/lang/Object;Ljava/lang/String;)Ljava/util/List;\n         10: pop\n         11: return\n       LineNumberTable:\n         line 29: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      12     0 retriever   Ldev/langchain4j/retriever/Retriever;\n     Exceptions:\n       throws java.lang.Throwable\n }\n SourceFile: \"RetrieverTest.java\"\n-InnerClasses:\n-  public static #30= #2 of #27;           // TestRetriever=class dev/langchain4j/retriever/RetrieverTest$TestRetriever of class dev/langchain4j/retriever/RetrieverTest\n-  public static #117= #116 of #146;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n-  public static final #152= #151 of #155; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n BootstrapMethods:\n-  0: #74 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  0: #131 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #75 ()V\n-      #76 REF_invokeStatic dev/langchain4j/retriever/RetrieverTest.lambda$testFindRelevant$0:(Ldev/langchain4j/retriever/Retriever;)V\n-      #75 ()V\n-  1: #74 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #138 ()V\n+      #139 REF_invokeStatic dev/langchain4j/retriever/RetrieverTest.lambda$testFindRelevant$0:(Ldev/langchain4j/retriever/Retriever;)V\n+      #138 ()V\n+  1: #131 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #83 (Ljava/lang/String;)Ljava/util/List;\n-      #84 REF_invokeStatic dev/langchain4j/retriever/RetrieverTest.lambda$should_convert_to_content_retriever$1:(Ljava/lang/String;)Ljava/util/List;\n-      #83 (Ljava/lang/String;)Ljava/util/List;\n+      #142 (Ljava/lang/String;)Ljava/util/List;\n+      #143 REF_invokeStatic dev/langchain4j/retriever/RetrieverTest.lambda$should_convert_to_content_retriever$1:(Ljava/lang/String;)Ljava/util/List;\n+      #142 (Ljava/lang/String;)Ljava/util/List;\n+InnerClasses:\n+  public static #147= #7 of #19;          // TestRetriever=class dev/langchain4j/retriever/RetrieverTest$TestRetriever of class dev/langchain4j/retriever/RetrieverTest\n+  public static #152= #148 of #150;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n+  public static final #157= #153 of #155; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n"}]}, {"source1": "dev/langchain4j/spi/ExampleService.class", "source2": "dev/langchain4j/spi/ExampleService.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,24 +1,24 @@\n-  SHA-256 checksum 3ad59d134ad825776bb9fed7bfac4a81d065cf2f7ec6d6dbc88d13e4532c8617\n+  SHA-256 checksum 310f2d855efb70cd4f351b4407cb40f81d04dfd9f61bf4639ac8a52999ae545c\n   Compiled from \"ExampleService.java\"\n public interface dev.langchain4j.spi.ExampleService\n   minor version: 0\n   major version: 52\n   flags: (0x0601) ACC_PUBLIC, ACC_INTERFACE, ACC_ABSTRACT\n   this_class: #1                          // dev/langchain4j/spi/ExampleService\n-  super_class: #2                         // java/lang/Object\n+  super_class: #3                         // java/lang/Object\n   interfaces: 0, fields: 0, methods: 1, attributes: 1\n Constant pool:\n-  #1 = Class              #7              // dev/langchain4j/spi/ExampleService\n-  #2 = Class              #8              // java/lang/Object\n-  #3 = Utf8               getGreeting\n-  #4 = Utf8               ()Ljava/lang/String;\n-  #5 = Utf8               SourceFile\n-  #6 = Utf8               ExampleService.java\n-  #7 = Utf8               dev/langchain4j/spi/ExampleService\n-  #8 = Utf8               java/lang/Object\n+  #1 = Class              #2              // dev/langchain4j/spi/ExampleService\n+  #2 = Utf8               dev/langchain4j/spi/ExampleService\n+  #3 = Class              #4              // java/lang/Object\n+  #4 = Utf8               java/lang/Object\n+  #5 = Utf8               getGreeting\n+  #6 = Utf8               ()Ljava/lang/String;\n+  #7 = Utf8               SourceFile\n+  #8 = Utf8               ExampleService.java\n {\n   public abstract java.lang.String getGreeting();\n     descriptor: ()Ljava/lang/String;\n     flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT\n }\n SourceFile: \"ExampleService.java\"\n"}]}, {"source1": "dev/langchain4j/spi/ExampleServiceGoodbye.class", "source2": "dev/langchain4j/spi/ExampleServiceGoodbye.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,38 +1,38 @@\n-  SHA-256 checksum 91964900f930088c65d1c71eb35a015ba5aec87e4561b85f42d59aef11c59c37\n+  SHA-256 checksum eb5471e24911f27428787f6d3979ddeae60200d8d41e7046ac1893aecdb45a61\n   Compiled from \"ExampleServiceGoodbye.java\"\n public class dev.langchain4j.spi.ExampleServiceGoodbye implements dev.langchain4j.spi.ExampleService\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #3                          // dev/langchain4j/spi/ExampleServiceGoodbye\n-  super_class: #4                         // java/lang/Object\n+  this_class: #9                          // dev/langchain4j/spi/ExampleServiceGoodbye\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 1\n Constant pool:\n-   #1 = Methodref          #4.#17         // java/lang/Object.\"<init>\":()V\n-   #2 = String             #18            // Goodbye\n-   #3 = Class              #19            // dev/langchain4j/spi/ExampleServiceGoodbye\n-   #4 = Class              #20            // java/lang/Object\n-   #5 = Class              #21            // dev/langchain4j/spi/ExampleService\n-   #6 = Utf8               <init>\n-   #7 = Utf8               ()V\n-   #8 = Utf8               Code\n-   #9 = Utf8               LineNumberTable\n-  #10 = Utf8               LocalVariableTable\n-  #11 = Utf8               this\n-  #12 = Utf8               Ldev/langchain4j/spi/ExampleServiceGoodbye;\n-  #13 = Utf8               getGreeting\n-  #14 = Utf8               ()Ljava/lang/String;\n-  #15 = Utf8               SourceFile\n-  #16 = Utf8               ExampleServiceGoodbye.java\n-  #17 = NameAndType        #6:#7          // \"<init>\":()V\n-  #18 = Utf8               Goodbye\n-  #19 = Utf8               dev/langchain4j/spi/ExampleServiceGoodbye\n-  #20 = Utf8               java/lang/Object\n-  #21 = Utf8               dev/langchain4j/spi/ExampleService\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = String             #8             // Goodbye\n+   #8 = Utf8               Goodbye\n+   #9 = Class              #10            // dev/langchain4j/spi/ExampleServiceGoodbye\n+  #10 = Utf8               dev/langchain4j/spi/ExampleServiceGoodbye\n+  #11 = Class              #12            // dev/langchain4j/spi/ExampleService\n+  #12 = Utf8               dev/langchain4j/spi/ExampleService\n+  #13 = Utf8               Code\n+  #14 = Utf8               LineNumberTable\n+  #15 = Utf8               LocalVariableTable\n+  #16 = Utf8               this\n+  #17 = Utf8               Ldev/langchain4j/spi/ExampleServiceGoodbye;\n+  #18 = Utf8               getGreeting\n+  #19 = Utf8               ()Ljava/lang/String;\n+  #20 = Utf8               SourceFile\n+  #21 = Utf8               ExampleServiceGoodbye.java\n {\n   public dev.langchain4j.spi.ExampleServiceGoodbye();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -45,15 +45,15 @@\n             0       5     0  this   Ldev/langchain4j/spi/ExampleServiceGoodbye;\n \n   public java.lang.String getGreeting();\n     descriptor: ()Ljava/lang/String;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n-         0: ldc           #2                  // String Goodbye\n+         0: ldc           #7                  // String Goodbye\n          2: areturn\n       LineNumberTable:\n         line 6: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       3     0  this   Ldev/langchain4j/spi/ExampleServiceGoodbye;\n }\n"}]}, {"source1": "dev/langchain4j/spi/ExampleServiceHello.class", "source2": "dev/langchain4j/spi/ExampleServiceHello.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,38 +1,38 @@\n-  SHA-256 checksum 5ce3766fdc9e1dbeea2f14be82301ae043856bd14fcaec72b225ce1622def833\n+  SHA-256 checksum 9e110855382c4105ae439ba4f447582a3b9e037f3b6499eacab985724401b5ce\n   Compiled from \"ExampleServiceHello.java\"\n public class dev.langchain4j.spi.ExampleServiceHello implements dev.langchain4j.spi.ExampleService\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #3                          // dev/langchain4j/spi/ExampleServiceHello\n-  super_class: #4                         // java/lang/Object\n+  this_class: #9                          // dev/langchain4j/spi/ExampleServiceHello\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 1\n Constant pool:\n-   #1 = Methodref          #4.#17         // java/lang/Object.\"<init>\":()V\n-   #2 = String             #18            // Hello\n-   #3 = Class              #19            // dev/langchain4j/spi/ExampleServiceHello\n-   #4 = Class              #20            // java/lang/Object\n-   #5 = Class              #21            // dev/langchain4j/spi/ExampleService\n-   #6 = Utf8               <init>\n-   #7 = Utf8               ()V\n-   #8 = Utf8               Code\n-   #9 = Utf8               LineNumberTable\n-  #10 = Utf8               LocalVariableTable\n-  #11 = Utf8               this\n-  #12 = Utf8               Ldev/langchain4j/spi/ExampleServiceHello;\n-  #13 = Utf8               getGreeting\n-  #14 = Utf8               ()Ljava/lang/String;\n-  #15 = Utf8               SourceFile\n-  #16 = Utf8               ExampleServiceHello.java\n-  #17 = NameAndType        #6:#7          // \"<init>\":()V\n-  #18 = Utf8               Hello\n-  #19 = Utf8               dev/langchain4j/spi/ExampleServiceHello\n-  #20 = Utf8               java/lang/Object\n-  #21 = Utf8               dev/langchain4j/spi/ExampleService\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = String             #8             // Hello\n+   #8 = Utf8               Hello\n+   #9 = Class              #10            // dev/langchain4j/spi/ExampleServiceHello\n+  #10 = Utf8               dev/langchain4j/spi/ExampleServiceHello\n+  #11 = Class              #12            // dev/langchain4j/spi/ExampleService\n+  #12 = Utf8               dev/langchain4j/spi/ExampleService\n+  #13 = Utf8               Code\n+  #14 = Utf8               LineNumberTable\n+  #15 = Utf8               LocalVariableTable\n+  #16 = Utf8               this\n+  #17 = Utf8               Ldev/langchain4j/spi/ExampleServiceHello;\n+  #18 = Utf8               getGreeting\n+  #19 = Utf8               ()Ljava/lang/String;\n+  #20 = Utf8               SourceFile\n+  #21 = Utf8               ExampleServiceHello.java\n {\n   public dev.langchain4j.spi.ExampleServiceHello();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -45,15 +45,15 @@\n             0       5     0  this   Ldev/langchain4j/spi/ExampleServiceHello;\n \n   public java.lang.String getGreeting();\n     descriptor: ()Ljava/lang/String;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n-         0: ldc           #2                  // String Hello\n+         0: ldc           #7                  // String Hello\n          2: areturn\n       LineNumberTable:\n         line 6: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       3     0  this   Ldev/langchain4j/spi/ExampleServiceHello;\n }\n"}]}, {"source1": "dev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders.class", "source2": "dev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,43 +1,43 @@\n-  SHA-256 checksum a2dae2d97b9505f9763371f8b9c808619c784a5c993cf8422b4efede1db9c9fa\n+  SHA-256 checksum 28dff3f7a8e6f462db8afd03a4d074b1ca4e69fee8272afc5f018362e24b05dd\n   Compiled from \"ServiceHelperTest.java\"\n public class dev.langchain4j.spi.ServiceHelperTest$ExampleServiceWithNoProviders implements dev.langchain4j.spi.ServiceHelperTest$ServiceWithNoProviders\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #3                          // dev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders\n-  super_class: #4                         // java/lang/Object\n+  this_class: #9                          // dev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 2\n Constant pool:\n-   #1 = Methodref          #4.#19         // java/lang/Object.\"<init>\":()V\n-   #2 = String             #20            // Hello\n-   #3 = Class              #22            // dev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders\n-   #4 = Class              #23            // java/lang/Object\n-   #5 = Class              #24            // dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders\n-   #6 = Utf8               <init>\n-   #7 = Utf8               ()V\n-   #8 = Utf8               Code\n-   #9 = Utf8               LineNumberTable\n-  #10 = Utf8               LocalVariableTable\n-  #11 = Utf8               this\n-  #12 = Utf8               ExampleServiceWithNoProviders\n-  #13 = Utf8               InnerClasses\n-  #14 = Utf8               Ldev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders;\n-  #15 = Utf8               build\n-  #16 = Utf8               ()Ljava/lang/String;\n-  #17 = Utf8               SourceFile\n-  #18 = Utf8               ServiceHelperTest.java\n-  #19 = NameAndType        #6:#7          // \"<init>\":()V\n-  #20 = Utf8               Hello\n-  #21 = Class              #26            // dev/langchain4j/spi/ServiceHelperTest\n-  #22 = Utf8               dev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders\n-  #23 = Utf8               java/lang/Object\n-  #24 = Utf8               dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders\n-  #25 = Utf8               ServiceWithNoProviders\n-  #26 = Utf8               dev/langchain4j/spi/ServiceHelperTest\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = String             #8             // Hello\n+   #8 = Utf8               Hello\n+   #9 = Class              #10            // dev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders\n+  #10 = Utf8               dev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders\n+  #11 = Class              #12            // dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders\n+  #12 = Utf8               dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders\n+  #13 = Utf8               Code\n+  #14 = Utf8               LineNumberTable\n+  #15 = Utf8               LocalVariableTable\n+  #16 = Utf8               this\n+  #17 = Utf8               Ldev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders;\n+  #18 = Utf8               build\n+  #19 = Utf8               ()Ljava/lang/String;\n+  #20 = Utf8               SourceFile\n+  #21 = Utf8               ServiceHelperTest.java\n+  #22 = Utf8               InnerClasses\n+  #23 = Class              #24            // dev/langchain4j/spi/ServiceHelperTest\n+  #24 = Utf8               dev/langchain4j/spi/ServiceHelperTest\n+  #25 = Utf8               ExampleServiceWithNoProviders\n+  #26 = Utf8               ServiceWithNoProviders\n {\n   public dev.langchain4j.spi.ServiceHelperTest$ExampleServiceWithNoProviders();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -50,19 +50,19 @@\n             0       5     0  this   Ldev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders;\n \n   public java.lang.String build();\n     descriptor: ()Ljava/lang/String;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n-         0: ldc           #2                  // String Hello\n+         0: ldc           #7                  // String Hello\n          2: areturn\n       LineNumberTable:\n         line 21: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       3     0  this   Ldev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders;\n }\n SourceFile: \"ServiceHelperTest.java\"\n InnerClasses:\n-  public static #12= #3 of #21;           // ExampleServiceWithNoProviders=class dev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders of class dev/langchain4j/spi/ServiceHelperTest\n-  static #25= #5 of #21;                  // ServiceWithNoProviders=class dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders of class dev/langchain4j/spi/ServiceHelperTest\n+  public static #25= #9 of #23;           // ExampleServiceWithNoProviders=class dev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders of class dev/langchain4j/spi/ServiceHelperTest\n+  static #26= #11 of #23;                 // ServiceWithNoProviders=class dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders of class dev/langchain4j/spi/ServiceHelperTest\n"}]}, {"source1": "dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders.class", "source2": "dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,30 +1,30 @@\n-  SHA-256 checksum 0f512976993aaace9cfd7cb396c8ab4a4ea7efd4a77771ec2aa450d39000b934\n+  SHA-256 checksum 8ffef77637b8fbb9f182c9fa9063cf919277c6d0a83a2621c7a547c4c7597b36\n   Compiled from \"ServiceHelperTest.java\"\n interface dev.langchain4j.spi.ServiceHelperTest$ServiceWithNoProviders\n   minor version: 0\n   major version: 52\n   flags: (0x0600) ACC_INTERFACE, ACC_ABSTRACT\n   this_class: #1                          // dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders\n-  super_class: #2                         // java/lang/Object\n+  super_class: #3                         // java/lang/Object\n   interfaces: 0, fields: 0, methods: 1, attributes: 2\n Constant pool:\n-   #1 = Class              #8             // dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders\n-   #2 = Class              #11            // java/lang/Object\n-   #3 = Utf8               build\n-   #4 = Utf8               ()Ljava/lang/String;\n-   #5 = Utf8               SourceFile\n-   #6 = Utf8               ServiceHelperTest.java\n-   #7 = Class              #12            // dev/langchain4j/spi/ServiceHelperTest\n-   #8 = Utf8               dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders\n-   #9 = Utf8               ServiceWithNoProviders\n-  #10 = Utf8               InnerClasses\n-  #11 = Utf8               java/lang/Object\n-  #12 = Utf8               dev/langchain4j/spi/ServiceHelperTest\n+   #1 = Class              #2             // dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders\n+   #2 = Utf8               dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders\n+   #3 = Class              #4             // java/lang/Object\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               build\n+   #6 = Utf8               ()Ljava/lang/String;\n+   #7 = Utf8               SourceFile\n+   #8 = Utf8               ServiceHelperTest.java\n+   #9 = Utf8               InnerClasses\n+  #10 = Class              #11            // dev/langchain4j/spi/ServiceHelperTest\n+  #11 = Utf8               dev/langchain4j/spi/ServiceHelperTest\n+  #12 = Utf8               ServiceWithNoProviders\n {\n   public abstract java.lang.String build();\n     descriptor: ()Ljava/lang/String;\n     flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT\n }\n SourceFile: \"ServiceHelperTest.java\"\n InnerClasses:\n-  static #9= #1 of #7;                    // ServiceWithNoProviders=class dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders of class dev/langchain4j/spi/ServiceHelperTest\n+  static #12= #1 of #10;                  // ServiceWithNoProviders=class dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders of class dev/langchain4j/spi/ServiceHelperTest\n"}]}, {"source1": "dev/langchain4j/spi/ServiceHelperTest.class", "source2": "dev/langchain4j/spi/ServiceHelperTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,231 +1,231 @@\n-  SHA-256 checksum 8da720c62cd5f0c95b55d714e1768f914d6da10650f52a75b0e64699ab09ea5c\n+  SHA-256 checksum d8a765d35fcd272d6fcbdd9f9eb62123fcfa8b9cd3137a69286f788fe50ddd5d\n   Compiled from \"ServiceHelperTest.java\"\n class dev.langchain4j.spi.ServiceHelperTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #33                         // dev/langchain4j/spi/ServiceHelperTest\n-  super_class: #21                        // java/lang/Object\n+  this_class: #8                          // dev/langchain4j/spi/ServiceHelperTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 11, attributes: 3\n Constant pool:\n-    #1 = Methodref          #21.#82       // java/lang/Object.\"<init>\":()V\n-    #2 = Methodref          #33.#83       // dev/langchain4j/spi/ServiceHelperTest.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n-    #3 = InvokeDynamic      #0:#89        // #0:extractThrows:()Lorg/assertj/core/api/iterable/ThrowingExtractor;\n-    #4 = Methodref          #90.#91       // org/assertj/core/api/AbstractCollectionAssert.extracting:(Lorg/assertj/core/api/iterable/ThrowingExtractor;)Lorg/assertj/core/api/AbstractListAssert;\n-    #5 = Class              #92           // java/lang/String\n-    #6 = String             #93           // Hello\n-    #7 = String             #94           // Goodbye\n-    #8 = Methodref          #95.#96       // org/assertj/core/api/AbstractListAssert.containsExactlyInAnyOrder:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-    #9 = Class              #97           // dev/langchain4j/spi/ExampleService\n-   #10 = InvokeDynamic      #1:#101       // #1:get:()Ljava/util/function/Supplier;\n-   #11 = Methodref          #102.#103     // dev/langchain4j/spi/ServiceHelper.loadService:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-   #12 = Methodref          #33.#104      // dev/langchain4j/spi/ServiceHelperTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #13 = Class              #105          // java/lang/Class\n-   #14 = Class              #106          // dev/langchain4j/spi/ExampleServiceHello\n-   #15 = Class              #107          // dev/langchain4j/spi/ExampleServiceGoodbye\n-   #16 = Methodref          #108.#109     // org/assertj/core/api/ObjectAssert.isInstanceOfAny:([Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n-   #17 = InvokeDynamic      #2:#110       // #2:apply:()Ljava/util/function/Function;\n-   #18 = InvokeDynamic      #3:#101       // #3:get:()Ljava/util/function/Supplier;\n-   #19 = Methodref          #102.#113     // dev/langchain4j/spi/ServiceHelper.loadFactoryService:(Ljava/lang/Class;Ljava/util/function/Function;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-   #20 = Methodref          #33.#114      // dev/langchain4j/spi/ServiceHelperTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #21 = Class              #115          // java/lang/Object\n-   #22 = Methodref          #116.#117     // org/assertj/core/api/AbstractStringAssert.isIn:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #23 = Class              #118          // dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders\n-   #24 = InvokeDynamic      #4:#101       // #4:get:()Ljava/util/function/Supplier;\n-   #25 = Class              #121          // dev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders\n-   #26 = Methodref          #108.#122     // org/assertj/core/api/ObjectAssert.isInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n-   #27 = InvokeDynamic      #5:#110       // #5:apply:()Ljava/util/function/Function;\n-   #28 = InvokeDynamic      #6:#101       // #6:get:()Ljava/util/function/Supplier;\n-   #29 = String             #126          // Holla\n-   #30 = Methodref          #116.#127     // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #31 = Methodref          #102.#128     // dev/langchain4j/spi/ServiceHelper.loadFactories:(Ljava/lang/Class;)Ljava/util/Collection;\n-   #32 = Methodref          #33.#129      // dev/langchain4j/spi/ServiceHelperTest.assertServices:(Ljava/util/Collection;)V\n-   #33 = Class              #130          // dev/langchain4j/spi/ServiceHelperTest\n-   #34 = Methodref          #13.#131      // java/lang/Class.getClassLoader:()Ljava/lang/ClassLoader;\n-   #35 = Methodref          #102.#132     // dev/langchain4j/spi/ServiceHelper.loadFactories:(Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/util/Collection;\n-   #36 = Methodref          #90.#133      // org/assertj/core/api/AbstractCollectionAssert.isEmpty:()V\n-   #37 = Class              #134          // dev/langchain4j/spi/SupplierService\n-   #38 = InvokeDynamic      #7:#101       // #7:get:()Ljava/util/function/Supplier;\n-   #39 = Methodref          #102.#136     // dev/langchain4j/spi/ServiceHelper.loadFactoryService:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-   #40 = String             #137          // Hello world!\n-   #41 = Class              #138          // dev/langchain4j/spi/SupplierServiceNotFound\n-   #42 = InvokeDynamic      #8:#101       // #8:get:()Ljava/util/function/Supplier;\n-   #43 = String             #140          // Not found\n-   #44 = InvokeDynamic      #9:#142       // #9:getGreeting:()Ldev/langchain4j/spi/ExampleService;\n-   #45 = Class              #143          // org/assertj/core/api/WithAssertions\n-   #46 = Utf8               ExampleServiceWithNoProviders\n-   #47 = Utf8               InnerClasses\n-   #48 = Utf8               ServiceWithNoProviders\n-   #49 = Utf8               <init>\n-   #50 = Utf8               ()V\n-   #51 = Utf8               Code\n-   #52 = Utf8               LineNumberTable\n-   #53 = Utf8               LocalVariableTable\n-   #54 = Utf8               this\n-   #55 = Utf8               Ldev/langchain4j/spi/ServiceHelperTest;\n-   #56 = Utf8               assertServices\n-   #57 = Utf8               (Ljava/util/Collection;)V\n-   #58 = Utf8               services\n-   #59 = Utf8               Ljava/util/Collection;\n-   #60 = Utf8               LocalVariableTypeTable\n-   #61 = Utf8               Ljava/util/Collection<Ldev/langchain4j/spi/ExampleService;>;\n-   #62 = Utf8               Signature\n-   #63 = Utf8               (Ljava/util/Collection<Ldev/langchain4j/spi/ExampleService;>;)V\n-   #64 = Utf8               test_loadService\n-   #65 = Utf8               service\n-   #66 = Utf8               Ldev/langchain4j/spi/ExampleService;\n-   #67 = Utf8               Ldev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders;\n-   #68 = Utf8               RuntimeVisibleAnnotations\n-   #69 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #70 = Utf8               test_loadFactories\n-   #71 = Utf8               test_supplierServices\n-   #72 = Utf8               lambda$test_supplierServices$5\n-   #73 = Utf8               ()Ljava/lang/String;\n-   #74 = Utf8               lambda$test_supplierServices$4\n-   #75 = Utf8               lambda$test_loadService$3\n-   #76 = Utf8               lambda$test_loadService$2\n-   #77 = Utf8               lambda$test_loadService$1\n-   #78 = Utf8               ()Ldev/langchain4j/spi/ExampleService;\n-   #79 = Utf8               lambda$null$0\n-   #80 = Utf8               SourceFile\n-   #81 = Utf8               ServiceHelperTest.java\n-   #82 = NameAndType        #49:#50       // \"<init>\":()V\n-   #83 = NameAndType        #144:#145     // assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n-   #84 = Utf8               BootstrapMethods\n-   #85 = MethodHandle       6:#146        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-   #86 = MethodType         #147          //  (Ljava/lang/Object;)Ljava/lang/Object;\n-   #87 = MethodHandle       9:#148        // REF_invokeInterface dev/langchain4j/spi/ExampleService.getGreeting:()Ljava/lang/String;\n-   #88 = MethodType         #149          //  (Ldev/langchain4j/spi/ExampleService;)Ljava/lang/String;\n-   #89 = NameAndType        #150:#151     // extractThrows:()Lorg/assertj/core/api/iterable/ThrowingExtractor;\n-   #90 = Class              #152          // org/assertj/core/api/AbstractCollectionAssert\n-   #91 = NameAndType        #153:#154     // extracting:(Lorg/assertj/core/api/iterable/ThrowingExtractor;)Lorg/assertj/core/api/AbstractListAssert;\n-   #92 = Utf8               java/lang/String\n-   #93 = Utf8               Hello\n-   #94 = Utf8               Goodbye\n-   #95 = Class              #155          // org/assertj/core/api/AbstractListAssert\n-   #96 = NameAndType        #156:#157     // containsExactlyInAnyOrder:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-   #97 = Utf8               dev/langchain4j/spi/ExampleService\n-   #98 = MethodType         #158          //  ()Ljava/lang/Object;\n-   #99 = MethodHandle       6:#159        // REF_invokeStatic dev/langchain4j/spi/ServiceHelperTest.lambda$test_loadService$1:()Ldev/langchain4j/spi/ExampleService;\n-  #100 = MethodType         #78           //  ()Ldev/langchain4j/spi/ExampleService;\n-  #101 = NameAndType        #160:#161     // get:()Ljava/util/function/Supplier;\n-  #102 = Class              #162          // dev/langchain4j/spi/ServiceHelper\n-  #103 = NameAndType        #163:#164     // loadService:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-  #104 = NameAndType        #144:#165     // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #105 = Utf8               java/lang/Class\n-  #106 = Utf8               dev/langchain4j/spi/ExampleServiceHello\n-  #107 = Utf8               dev/langchain4j/spi/ExampleServiceGoodbye\n-  #108 = Class              #166          // org/assertj/core/api/ObjectAssert\n-  #109 = NameAndType        #167:#168     // isInstanceOfAny:([Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n-  #110 = NameAndType        #169:#170     // apply:()Ljava/util/function/Function;\n-  #111 = MethodHandle       6:#171        // REF_invokeStatic dev/langchain4j/spi/ServiceHelperTest.lambda$test_loadService$2:()Ljava/lang/String;\n-  #112 = MethodType         #73           //  ()Ljava/lang/String;\n-  #113 = NameAndType        #172:#173     // loadFactoryService:(Ljava/lang/Class;Ljava/util/function/Function;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-  #114 = NameAndType        #144:#174     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #115 = Utf8               java/lang/Object\n-  #116 = Class              #175          // org/assertj/core/api/AbstractStringAssert\n-  #117 = NameAndType        #176:#177     // isIn:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #118 = Utf8               dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders\n-  #119 = MethodHandle       8:#178        // REF_newInvokeSpecial dev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders.\"<init>\":()V\n-  #120 = MethodType         #179          //  ()Ldev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders;\n-  #121 = Utf8               dev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders\n-  #122 = NameAndType        #180:#181     // isInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n-  #123 = MethodHandle       9:#182        // REF_invokeInterface dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders.build:()Ljava/lang/String;\n-  #124 = MethodType         #183          //  (Ldev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders;)Ljava/lang/String;\n-  #125 = MethodHandle       6:#184        // REF_invokeStatic dev/langchain4j/spi/ServiceHelperTest.lambda$test_loadService$3:()Ljava/lang/String;\n-  #126 = Utf8               Holla\n-  #127 = NameAndType        #185:#174     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #128 = NameAndType        #186:#187     // loadFactories:(Ljava/lang/Class;)Ljava/util/Collection;\n-  #129 = NameAndType        #56:#57       // assertServices:(Ljava/util/Collection;)V\n-  #130 = Utf8               dev/langchain4j/spi/ServiceHelperTest\n-  #131 = NameAndType        #188:#189     // getClassLoader:()Ljava/lang/ClassLoader;\n-  #132 = NameAndType        #186:#190     // loadFactories:(Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/util/Collection;\n-  #133 = NameAndType        #191:#50      // isEmpty:()V\n-  #134 = Utf8               dev/langchain4j/spi/SupplierService\n-  #135 = MethodHandle       6:#192        // REF_invokeStatic dev/langchain4j/spi/ServiceHelperTest.lambda$test_supplierServices$4:()Ljava/lang/String;\n-  #136 = NameAndType        #172:#164     // loadFactoryService:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-  #137 = Utf8               Hello world!\n-  #138 = Utf8               dev/langchain4j/spi/SupplierServiceNotFound\n-  #139 = MethodHandle       6:#193        // REF_invokeStatic dev/langchain4j/spi/ServiceHelperTest.lambda$test_supplierServices$5:()Ljava/lang/String;\n-  #140 = Utf8               Not found\n-  #141 = MethodHandle       6:#194        // REF_invokeStatic dev/langchain4j/spi/ServiceHelperTest.lambda$null$0:()Ljava/lang/String;\n-  #142 = NameAndType        #195:#78      // getGreeting:()Ldev/langchain4j/spi/ExampleService;\n-  #143 = Utf8               org/assertj/core/api/WithAssertions\n-  #144 = Utf8               assertThat\n-  #145 = Utf8               (Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n-  #146 = Methodref          #196.#197     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #147 = Utf8               (Ljava/lang/Object;)Ljava/lang/Object;\n-  #148 = InterfaceMethodref #9.#198       // dev/langchain4j/spi/ExampleService.getGreeting:()Ljava/lang/String;\n-  #149 = Utf8               (Ldev/langchain4j/spi/ExampleService;)Ljava/lang/String;\n-  #150 = Utf8               extractThrows\n-  #151 = Utf8               ()Lorg/assertj/core/api/iterable/ThrowingExtractor;\n-  #152 = Utf8               org/assertj/core/api/AbstractCollectionAssert\n-  #153 = Utf8               extracting\n-  #154 = Utf8               (Lorg/assertj/core/api/iterable/ThrowingExtractor;)Lorg/assertj/core/api/AbstractListAssert;\n-  #155 = Utf8               org/assertj/core/api/AbstractListAssert\n-  #156 = Utf8               containsExactlyInAnyOrder\n-  #157 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #158 = Utf8               ()Ljava/lang/Object;\n-  #159 = Methodref          #33.#199      // dev/langchain4j/spi/ServiceHelperTest.lambda$test_loadService$1:()Ldev/langchain4j/spi/ExampleService;\n-  #160 = Utf8               get\n-  #161 = Utf8               ()Ljava/util/function/Supplier;\n-  #162 = Utf8               dev/langchain4j/spi/ServiceHelper\n-  #163 = Utf8               loadService\n-  #164 = Utf8               (Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-  #165 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #166 = Utf8               org/assertj/core/api/ObjectAssert\n-  #167 = Utf8               isInstanceOfAny\n-  #168 = Utf8               ([Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n-  #169 = Utf8               apply\n-  #170 = Utf8               ()Ljava/util/function/Function;\n-  #171 = Methodref          #33.#200      // dev/langchain4j/spi/ServiceHelperTest.lambda$test_loadService$2:()Ljava/lang/String;\n-  #172 = Utf8               loadFactoryService\n-  #173 = Utf8               (Ljava/lang/Class;Ljava/util/function/Function;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-  #174 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #175 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #176 = Utf8               isIn\n-  #177 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #178 = Methodref          #25.#82       // dev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders.\"<init>\":()V\n-  #179 = Utf8               ()Ldev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders;\n-  #180 = Utf8               isInstanceOf\n-  #181 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n-  #182 = InterfaceMethodref #23.#201      // dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders.build:()Ljava/lang/String;\n-  #183 = Utf8               (Ldev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders;)Ljava/lang/String;\n-  #184 = Methodref          #33.#202      // dev/langchain4j/spi/ServiceHelperTest.lambda$test_loadService$3:()Ljava/lang/String;\n-  #185 = Utf8               isEqualTo\n-  #186 = Utf8               loadFactories\n-  #187 = Utf8               (Ljava/lang/Class;)Ljava/util/Collection;\n-  #188 = Utf8               getClassLoader\n-  #189 = Utf8               ()Ljava/lang/ClassLoader;\n-  #190 = Utf8               (Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/util/Collection;\n-  #191 = Utf8               isEmpty\n-  #192 = Methodref          #33.#203      // dev/langchain4j/spi/ServiceHelperTest.lambda$test_supplierServices$4:()Ljava/lang/String;\n-  #193 = Methodref          #33.#204      // dev/langchain4j/spi/ServiceHelperTest.lambda$test_supplierServices$5:()Ljava/lang/String;\n-  #194 = Methodref          #33.#205      // dev/langchain4j/spi/ServiceHelperTest.lambda$null$0:()Ljava/lang/String;\n-  #195 = Utf8               getGreeting\n-  #196 = Class              #206          // java/lang/invoke/LambdaMetafactory\n-  #197 = NameAndType        #207:#210     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #198 = NameAndType        #195:#73      // getGreeting:()Ljava/lang/String;\n-  #199 = NameAndType        #77:#78       // lambda$test_loadService$1:()Ldev/langchain4j/spi/ExampleService;\n-  #200 = NameAndType        #76:#73       // lambda$test_loadService$2:()Ljava/lang/String;\n-  #201 = NameAndType        #211:#73      // build:()Ljava/lang/String;\n-  #202 = NameAndType        #75:#73       // lambda$test_loadService$3:()Ljava/lang/String;\n-  #203 = NameAndType        #74:#73       // lambda$test_supplierServices$4:()Ljava/lang/String;\n-  #204 = NameAndType        #72:#73       // lambda$test_supplierServices$5:()Ljava/lang/String;\n-  #205 = NameAndType        #79:#73       // lambda$null$0:()Ljava/lang/String;\n-  #206 = Utf8               java/lang/invoke/LambdaMetafactory\n-  #207 = Utf8               metafactory\n-  #208 = Class              #213          // java/lang/invoke/MethodHandles$Lookup\n-  #209 = Utf8               Lookup\n-  #210 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #211 = Utf8               build\n-  #212 = Class              #214          // java/lang/invoke/MethodHandles\n-  #213 = Utf8               java/lang/invoke/MethodHandles$Lookup\n-  #214 = Utf8               java/lang/invoke/MethodHandles\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Methodref          #8.#9         // dev/langchain4j/spi/ServiceHelperTest.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+    #8 = Class              #10           // dev/langchain4j/spi/ServiceHelperTest\n+    #9 = NameAndType        #11:#12       // assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+   #10 = Utf8               dev/langchain4j/spi/ServiceHelperTest\n+   #11 = Utf8               assertThat\n+   #12 = Utf8               (Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+   #13 = InvokeDynamic      #0:#14        // #0:extractThrows:()Lorg/assertj/core/api/iterable/ThrowingExtractor;\n+   #14 = NameAndType        #15:#16       // extractThrows:()Lorg/assertj/core/api/iterable/ThrowingExtractor;\n+   #15 = Utf8               extractThrows\n+   #16 = Utf8               ()Lorg/assertj/core/api/iterable/ThrowingExtractor;\n+   #17 = Methodref          #18.#19       // org/assertj/core/api/AbstractCollectionAssert.extracting:(Lorg/assertj/core/api/iterable/ThrowingExtractor;)Lorg/assertj/core/api/AbstractListAssert;\n+   #18 = Class              #20           // org/assertj/core/api/AbstractCollectionAssert\n+   #19 = NameAndType        #21:#22       // extracting:(Lorg/assertj/core/api/iterable/ThrowingExtractor;)Lorg/assertj/core/api/AbstractListAssert;\n+   #20 = Utf8               org/assertj/core/api/AbstractCollectionAssert\n+   #21 = Utf8               extracting\n+   #22 = Utf8               (Lorg/assertj/core/api/iterable/ThrowingExtractor;)Lorg/assertj/core/api/AbstractListAssert;\n+   #23 = Class              #24           // java/lang/String\n+   #24 = Utf8               java/lang/String\n+   #25 = String             #26           // Hello\n+   #26 = Utf8               Hello\n+   #27 = String             #28           // Goodbye\n+   #28 = Utf8               Goodbye\n+   #29 = Methodref          #30.#31       // org/assertj/core/api/AbstractListAssert.containsExactlyInAnyOrder:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #30 = Class              #32           // org/assertj/core/api/AbstractListAssert\n+   #31 = NameAndType        #33:#34       // containsExactlyInAnyOrder:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #32 = Utf8               org/assertj/core/api/AbstractListAssert\n+   #33 = Utf8               containsExactlyInAnyOrder\n+   #34 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #35 = Class              #36           // dev/langchain4j/spi/ExampleService\n+   #36 = Utf8               dev/langchain4j/spi/ExampleService\n+   #37 = InvokeDynamic      #1:#38        // #1:get:()Ljava/util/function/Supplier;\n+   #38 = NameAndType        #39:#40       // get:()Ljava/util/function/Supplier;\n+   #39 = Utf8               get\n+   #40 = Utf8               ()Ljava/util/function/Supplier;\n+   #41 = Methodref          #42.#43       // dev/langchain4j/spi/ServiceHelper.loadService:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+   #42 = Class              #44           // dev/langchain4j/spi/ServiceHelper\n+   #43 = NameAndType        #45:#46       // loadService:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+   #44 = Utf8               dev/langchain4j/spi/ServiceHelper\n+   #45 = Utf8               loadService\n+   #46 = Utf8               (Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+   #47 = Methodref          #8.#48        // dev/langchain4j/spi/ServiceHelperTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #48 = NameAndType        #11:#49       // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #49 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #50 = Class              #51           // java/lang/Class\n+   #51 = Utf8               java/lang/Class\n+   #52 = Class              #53           // dev/langchain4j/spi/ExampleServiceHello\n+   #53 = Utf8               dev/langchain4j/spi/ExampleServiceHello\n+   #54 = Class              #55           // dev/langchain4j/spi/ExampleServiceGoodbye\n+   #55 = Utf8               dev/langchain4j/spi/ExampleServiceGoodbye\n+   #56 = Methodref          #57.#58       // org/assertj/core/api/ObjectAssert.isInstanceOfAny:([Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+   #57 = Class              #59           // org/assertj/core/api/ObjectAssert\n+   #58 = NameAndType        #60:#61       // isInstanceOfAny:([Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+   #59 = Utf8               org/assertj/core/api/ObjectAssert\n+   #60 = Utf8               isInstanceOfAny\n+   #61 = Utf8               ([Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+   #62 = InvokeDynamic      #0:#63        // #0:apply:()Ljava/util/function/Function;\n+   #63 = NameAndType        #64:#65       // apply:()Ljava/util/function/Function;\n+   #64 = Utf8               apply\n+   #65 = Utf8               ()Ljava/util/function/Function;\n+   #66 = InvokeDynamic      #2:#38        // #2:get:()Ljava/util/function/Supplier;\n+   #67 = Methodref          #42.#68       // dev/langchain4j/spi/ServiceHelper.loadFactoryService:(Ljava/lang/Class;Ljava/util/function/Function;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+   #68 = NameAndType        #69:#70       // loadFactoryService:(Ljava/lang/Class;Ljava/util/function/Function;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+   #69 = Utf8               loadFactoryService\n+   #70 = Utf8               (Ljava/lang/Class;Ljava/util/function/Function;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+   #71 = Methodref          #8.#72        // dev/langchain4j/spi/ServiceHelperTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #72 = NameAndType        #11:#73       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #73 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #74 = Methodref          #75.#76       // org/assertj/core/api/AbstractStringAssert.isIn:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #75 = Class              #77           // org/assertj/core/api/AbstractStringAssert\n+   #76 = NameAndType        #78:#79       // isIn:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #77 = Utf8               org/assertj/core/api/AbstractStringAssert\n+   #78 = Utf8               isIn\n+   #79 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #80 = Class              #81           // dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders\n+   #81 = Utf8               dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders\n+   #82 = InvokeDynamic      #3:#38        // #3:get:()Ljava/util/function/Supplier;\n+   #83 = Class              #84           // dev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders\n+   #84 = Utf8               dev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders\n+   #85 = Methodref          #57.#86       // org/assertj/core/api/ObjectAssert.isInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+   #86 = NameAndType        #87:#88       // isInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+   #87 = Utf8               isInstanceOf\n+   #88 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+   #89 = InvokeDynamic      #4:#63        // #4:apply:()Ljava/util/function/Function;\n+   #90 = InvokeDynamic      #5:#38        // #5:get:()Ljava/util/function/Supplier;\n+   #91 = String             #92           // Holla\n+   #92 = Utf8               Holla\n+   #93 = Methodref          #75.#94       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #94 = NameAndType        #95:#73       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #95 = Utf8               isEqualTo\n+   #96 = Methodref          #42.#97       // dev/langchain4j/spi/ServiceHelper.loadFactories:(Ljava/lang/Class;)Ljava/util/Collection;\n+   #97 = NameAndType        #98:#99       // loadFactories:(Ljava/lang/Class;)Ljava/util/Collection;\n+   #98 = Utf8               loadFactories\n+   #99 = Utf8               (Ljava/lang/Class;)Ljava/util/Collection;\n+  #100 = Methodref          #8.#101       // dev/langchain4j/spi/ServiceHelperTest.assertServices:(Ljava/util/Collection;)V\n+  #101 = NameAndType        #102:#103     // assertServices:(Ljava/util/Collection;)V\n+  #102 = Utf8               assertServices\n+  #103 = Utf8               (Ljava/util/Collection;)V\n+  #104 = Methodref          #50.#105      // java/lang/Class.getClassLoader:()Ljava/lang/ClassLoader;\n+  #105 = NameAndType        #106:#107     // getClassLoader:()Ljava/lang/ClassLoader;\n+  #106 = Utf8               getClassLoader\n+  #107 = Utf8               ()Ljava/lang/ClassLoader;\n+  #108 = Methodref          #42.#109      // dev/langchain4j/spi/ServiceHelper.loadFactories:(Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/util/Collection;\n+  #109 = NameAndType        #98:#110      // loadFactories:(Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/util/Collection;\n+  #110 = Utf8               (Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/util/Collection;\n+  #111 = Methodref          #18.#112      // org/assertj/core/api/AbstractCollectionAssert.isEmpty:()V\n+  #112 = NameAndType        #113:#6       // isEmpty:()V\n+  #113 = Utf8               isEmpty\n+  #114 = Class              #115          // dev/langchain4j/spi/SupplierService\n+  #115 = Utf8               dev/langchain4j/spi/SupplierService\n+  #116 = InvokeDynamic      #6:#38        // #6:get:()Ljava/util/function/Supplier;\n+  #117 = Methodref          #42.#118      // dev/langchain4j/spi/ServiceHelper.loadFactoryService:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+  #118 = NameAndType        #69:#46       // loadFactoryService:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+  #119 = String             #120          // Hello world!\n+  #120 = Utf8               Hello world!\n+  #121 = Class              #122          // dev/langchain4j/spi/SupplierServiceNotFound\n+  #122 = Utf8               dev/langchain4j/spi/SupplierServiceNotFound\n+  #123 = InvokeDynamic      #7:#38        // #7:get:()Ljava/util/function/Supplier;\n+  #124 = String             #125          // Not found\n+  #125 = Utf8               Not found\n+  #126 = InvokeDynamic      #8:#127       // #8:getGreeting:()Ldev/langchain4j/spi/ExampleService;\n+  #127 = NameAndType        #128:#129     // getGreeting:()Ldev/langchain4j/spi/ExampleService;\n+  #128 = Utf8               getGreeting\n+  #129 = Utf8               ()Ldev/langchain4j/spi/ExampleService;\n+  #130 = Class              #131          // org/assertj/core/api/WithAssertions\n+  #131 = Utf8               org/assertj/core/api/WithAssertions\n+  #132 = Utf8               Code\n+  #133 = Utf8               LineNumberTable\n+  #134 = Utf8               LocalVariableTable\n+  #135 = Utf8               this\n+  #136 = Utf8               Ldev/langchain4j/spi/ServiceHelperTest;\n+  #137 = Utf8               services\n+  #138 = Utf8               Ljava/util/Collection;\n+  #139 = Utf8               LocalVariableTypeTable\n+  #140 = Utf8               Ljava/util/Collection<Ldev/langchain4j/spi/ExampleService;>;\n+  #141 = Utf8               Signature\n+  #142 = Utf8               (Ljava/util/Collection<Ldev/langchain4j/spi/ExampleService;>;)V\n+  #143 = Utf8               test_loadService\n+  #144 = Utf8               service\n+  #145 = Utf8               Ldev/langchain4j/spi/ExampleService;\n+  #146 = Utf8               Ldev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders;\n+  #147 = Utf8               RuntimeVisibleAnnotations\n+  #148 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #149 = Utf8               test_loadFactories\n+  #150 = Utf8               test_supplierServices\n+  #151 = Utf8               lambda$test_supplierServices$5\n+  #152 = Utf8               ()Ljava/lang/String;\n+  #153 = Utf8               lambda$test_supplierServices$4\n+  #154 = Utf8               lambda$test_loadService$3\n+  #155 = Utf8               lambda$test_loadService$2\n+  #156 = Utf8               lambda$test_loadService$1\n+  #157 = Utf8               lambda$test_loadService$0\n+  #158 = Utf8               SourceFile\n+  #159 = Utf8               ServiceHelperTest.java\n+  #160 = Utf8               BootstrapMethods\n+  #161 = MethodHandle       6:#162        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #162 = Methodref          #163.#164     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #163 = Class              #165          // java/lang/invoke/LambdaMetafactory\n+  #164 = NameAndType        #166:#167     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #165 = Utf8               java/lang/invoke/LambdaMetafactory\n+  #166 = Utf8               metafactory\n+  #167 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #168 = MethodType         #169          //  (Ljava/lang/Object;)Ljava/lang/Object;\n+  #169 = Utf8               (Ljava/lang/Object;)Ljava/lang/Object;\n+  #170 = MethodHandle       9:#171        // REF_invokeInterface dev/langchain4j/spi/ExampleService.getGreeting:()Ljava/lang/String;\n+  #171 = InterfaceMethodref #35.#172      // dev/langchain4j/spi/ExampleService.getGreeting:()Ljava/lang/String;\n+  #172 = NameAndType        #128:#152     // getGreeting:()Ljava/lang/String;\n+  #173 = MethodType         #174          //  (Ldev/langchain4j/spi/ExampleService;)Ljava/lang/String;\n+  #174 = Utf8               (Ldev/langchain4j/spi/ExampleService;)Ljava/lang/String;\n+  #175 = MethodType         #176          //  ()Ljava/lang/Object;\n+  #176 = Utf8               ()Ljava/lang/Object;\n+  #177 = MethodHandle       6:#178        // REF_invokeStatic dev/langchain4j/spi/ServiceHelperTest.lambda$test_loadService$1:()Ldev/langchain4j/spi/ExampleService;\n+  #178 = Methodref          #8.#179       // dev/langchain4j/spi/ServiceHelperTest.lambda$test_loadService$1:()Ldev/langchain4j/spi/ExampleService;\n+  #179 = NameAndType        #156:#129     // lambda$test_loadService$1:()Ldev/langchain4j/spi/ExampleService;\n+  #180 = MethodType         #129          //  ()Ldev/langchain4j/spi/ExampleService;\n+  #181 = MethodHandle       6:#182        // REF_invokeStatic dev/langchain4j/spi/ServiceHelperTest.lambda$test_loadService$2:()Ljava/lang/String;\n+  #182 = Methodref          #8.#183       // dev/langchain4j/spi/ServiceHelperTest.lambda$test_loadService$2:()Ljava/lang/String;\n+  #183 = NameAndType        #155:#152     // lambda$test_loadService$2:()Ljava/lang/String;\n+  #184 = MethodType         #152          //  ()Ljava/lang/String;\n+  #185 = MethodHandle       8:#186        // REF_newInvokeSpecial dev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders.\"<init>\":()V\n+  #186 = Methodref          #83.#3        // dev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders.\"<init>\":()V\n+  #187 = MethodType         #188          //  ()Ldev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders;\n+  #188 = Utf8               ()Ldev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders;\n+  #189 = MethodHandle       9:#190        // REF_invokeInterface dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders.build:()Ljava/lang/String;\n+  #190 = InterfaceMethodref #80.#191      // dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders.build:()Ljava/lang/String;\n+  #191 = NameAndType        #192:#152     // build:()Ljava/lang/String;\n+  #192 = Utf8               build\n+  #193 = MethodType         #194          //  (Ldev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders;)Ljava/lang/String;\n+  #194 = Utf8               (Ldev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders;)Ljava/lang/String;\n+  #195 = MethodHandle       6:#196        // REF_invokeStatic dev/langchain4j/spi/ServiceHelperTest.lambda$test_loadService$3:()Ljava/lang/String;\n+  #196 = Methodref          #8.#197       // dev/langchain4j/spi/ServiceHelperTest.lambda$test_loadService$3:()Ljava/lang/String;\n+  #197 = NameAndType        #154:#152     // lambda$test_loadService$3:()Ljava/lang/String;\n+  #198 = MethodHandle       6:#199        // REF_invokeStatic dev/langchain4j/spi/ServiceHelperTest.lambda$test_supplierServices$4:()Ljava/lang/String;\n+  #199 = Methodref          #8.#200       // dev/langchain4j/spi/ServiceHelperTest.lambda$test_supplierServices$4:()Ljava/lang/String;\n+  #200 = NameAndType        #153:#152     // lambda$test_supplierServices$4:()Ljava/lang/String;\n+  #201 = MethodHandle       6:#202        // REF_invokeStatic dev/langchain4j/spi/ServiceHelperTest.lambda$test_supplierServices$5:()Ljava/lang/String;\n+  #202 = Methodref          #8.#203       // dev/langchain4j/spi/ServiceHelperTest.lambda$test_supplierServices$5:()Ljava/lang/String;\n+  #203 = NameAndType        #151:#152     // lambda$test_supplierServices$5:()Ljava/lang/String;\n+  #204 = MethodHandle       6:#205        // REF_invokeStatic dev/langchain4j/spi/ServiceHelperTest.lambda$test_loadService$0:()Ljava/lang/String;\n+  #205 = Methodref          #8.#206       // dev/langchain4j/spi/ServiceHelperTest.lambda$test_loadService$0:()Ljava/lang/String;\n+  #206 = NameAndType        #157:#152     // lambda$test_loadService$0:()Ljava/lang/String;\n+  #207 = Utf8               InnerClasses\n+  #208 = Utf8               ServiceWithNoProviders\n+  #209 = Utf8               ExampleServiceWithNoProviders\n+  #210 = Class              #211          // java/lang/invoke/MethodHandles$Lookup\n+  #211 = Utf8               java/lang/invoke/MethodHandles$Lookup\n+  #212 = Class              #213          // java/lang/invoke/MethodHandles\n+  #213 = Utf8               java/lang/invoke/MethodHandles\n+  #214 = Utf8               Lookup\n {\n   dev.langchain4j.spi.ServiceHelperTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -240,107 +240,107 @@\n   public void assertServices(java.util.Collection<dev.langchain4j.spi.ExampleService>);\n     descriptor: (Ljava/util/Collection;)V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=5, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: invokevirtual #2                  // Method assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n-         5: invokedynamic #3,  0              // InvokeDynamic #0:extractThrows:()Lorg/assertj/core/api/iterable/ThrowingExtractor;\n-        10: invokevirtual #4                  // Method org/assertj/core/api/AbstractCollectionAssert.extracting:(Lorg/assertj/core/api/iterable/ThrowingExtractor;)Lorg/assertj/core/api/AbstractListAssert;\n+         2: invokevirtual #7                  // Method assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+         5: invokedynamic #13,  0             // InvokeDynamic #0:extractThrows:()Lorg/assertj/core/api/iterable/ThrowingExtractor;\n+        10: invokevirtual #17                 // Method org/assertj/core/api/AbstractCollectionAssert.extracting:(Lorg/assertj/core/api/iterable/ThrowingExtractor;)Lorg/assertj/core/api/AbstractListAssert;\n         13: iconst_2\n-        14: anewarray     #5                  // class java/lang/String\n+        14: anewarray     #23                 // class java/lang/String\n         17: dup\n         18: iconst_0\n-        19: ldc           #6                  // String Hello\n+        19: ldc           #25                 // String Hello\n         21: aastore\n         22: dup\n         23: iconst_1\n-        24: ldc           #7                  // String Goodbye\n+        24: ldc           #27                 // String Goodbye\n         26: aastore\n-        27: invokevirtual #8                  // Method org/assertj/core/api/AbstractListAssert.containsExactlyInAnyOrder:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+        27: invokevirtual #29                 // Method org/assertj/core/api/AbstractListAssert.containsExactlyInAnyOrder:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n         30: pop\n         31: return\n       LineNumberTable:\n         line 10: 0\n         line 11: 27\n         line 12: 31\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      32     0  this   Ldev/langchain4j/spi/ServiceHelperTest;\n             0      32     1 services   Ljava/util/Collection;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0      32     1 services   Ljava/util/Collection<Ldev/langchain4j/spi/ExampleService;>;\n-    Signature: #63                          // (Ljava/util/Collection<Ldev/langchain4j/spi/ExampleService;>;)V\n+    Signature: #142                         // (Ljava/util/Collection<Ldev/langchain4j/spi/ExampleService;>;)V\n \n   public void test_loadService();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=5, locals=2, args_size=1\n-         0: ldc           #9                  // class dev/langchain4j/spi/ExampleService\n-         2: invokedynamic #10,  0             // InvokeDynamic #1:get:()Ljava/util/function/Supplier;\n-         7: invokestatic  #11                 // Method dev/langchain4j/spi/ServiceHelper.loadService:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-        10: checkcast     #9                  // class dev/langchain4j/spi/ExampleService\n+         0: ldc           #35                 // class dev/langchain4j/spi/ExampleService\n+         2: invokedynamic #37,  0             // InvokeDynamic #1:get:()Ljava/util/function/Supplier;\n+         7: invokestatic  #41                 // Method dev/langchain4j/spi/ServiceHelper.loadService:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+        10: checkcast     #35                 // class dev/langchain4j/spi/ExampleService\n         13: astore_1\n         14: aload_0\n         15: aload_1\n-        16: invokevirtual #12                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        16: invokevirtual #47                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         19: iconst_2\n-        20: anewarray     #13                 // class java/lang/Class\n+        20: anewarray     #50                 // class java/lang/Class\n         23: dup\n         24: iconst_0\n-        25: ldc           #14                 // class dev/langchain4j/spi/ExampleServiceHello\n+        25: ldc           #52                 // class dev/langchain4j/spi/ExampleServiceHello\n         27: aastore\n         28: dup\n         29: iconst_1\n-        30: ldc           #15                 // class dev/langchain4j/spi/ExampleServiceGoodbye\n+        30: ldc           #54                 // class dev/langchain4j/spi/ExampleServiceGoodbye\n         32: aastore\n-        33: invokevirtual #16                 // Method org/assertj/core/api/ObjectAssert.isInstanceOfAny:([Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+        33: invokevirtual #56                 // Method org/assertj/core/api/ObjectAssert.isInstanceOfAny:([Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n         36: pop\n         37: aload_0\n-        38: ldc           #9                  // class dev/langchain4j/spi/ExampleService\n-        40: invokedynamic #17,  0             // InvokeDynamic #2:apply:()Ljava/util/function/Function;\n-        45: invokedynamic #18,  0             // InvokeDynamic #3:get:()Ljava/util/function/Supplier;\n-        50: invokestatic  #19                 // Method dev/langchain4j/spi/ServiceHelper.loadFactoryService:(Ljava/lang/Class;Ljava/util/function/Function;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-        53: checkcast     #5                  // class java/lang/String\n-        56: invokevirtual #20                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        38: ldc           #35                 // class dev/langchain4j/spi/ExampleService\n+        40: invokedynamic #62,  0             // InvokeDynamic #0:apply:()Ljava/util/function/Function;\n+        45: invokedynamic #66,  0             // InvokeDynamic #2:get:()Ljava/util/function/Supplier;\n+        50: invokestatic  #67                 // Method dev/langchain4j/spi/ServiceHelper.loadFactoryService:(Ljava/lang/Class;Ljava/util/function/Function;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+        53: checkcast     #23                 // class java/lang/String\n+        56: invokevirtual #71                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         59: iconst_2\n-        60: anewarray     #21                 // class java/lang/Object\n+        60: anewarray     #2                  // class java/lang/Object\n         63: dup\n         64: iconst_0\n-        65: ldc           #6                  // String Hello\n+        65: ldc           #25                 // String Hello\n         67: aastore\n         68: dup\n         69: iconst_1\n-        70: ldc           #7                  // String Goodbye\n+        70: ldc           #27                 // String Goodbye\n         72: aastore\n-        73: invokevirtual #22                 // Method org/assertj/core/api/AbstractStringAssert.isIn:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        73: invokevirtual #74                 // Method org/assertj/core/api/AbstractStringAssert.isIn:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         76: pop\n-        77: ldc           #23                 // class dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders\n-        79: invokedynamic #24,  0             // InvokeDynamic #4:get:()Ljava/util/function/Supplier;\n-        84: invokestatic  #11                 // Method dev/langchain4j/spi/ServiceHelper.loadService:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-        87: checkcast     #23                 // class dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders\n+        77: ldc           #80                 // class dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders\n+        79: invokedynamic #82,  0             // InvokeDynamic #3:get:()Ljava/util/function/Supplier;\n+        84: invokestatic  #41                 // Method dev/langchain4j/spi/ServiceHelper.loadService:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+        87: checkcast     #80                 // class dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders\n         90: astore_1\n         91: aload_0\n         92: aload_1\n-        93: invokevirtual #12                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        96: ldc           #25                 // class dev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders\n-        98: invokevirtual #26                 // Method org/assertj/core/api/ObjectAssert.isInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+        93: invokevirtual #47                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        96: ldc           #83                 // class dev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders\n+        98: invokevirtual #85                 // Method org/assertj/core/api/ObjectAssert.isInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n        101: pop\n        102: aload_0\n-       103: ldc           #23                 // class dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders\n-       105: invokedynamic #27,  0             // InvokeDynamic #5:apply:()Ljava/util/function/Function;\n-       110: invokedynamic #28,  0             // InvokeDynamic #6:get:()Ljava/util/function/Supplier;\n-       115: invokestatic  #19                 // Method dev/langchain4j/spi/ServiceHelper.loadFactoryService:(Ljava/lang/Class;Ljava/util/function/Function;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-       118: checkcast     #5                  // class java/lang/String\n-       121: invokevirtual #20                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       124: ldc           #29                 // String Holla\n-       126: invokevirtual #30                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       103: ldc           #80                 // class dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders\n+       105: invokedynamic #89,  0             // InvokeDynamic #4:apply:()Ljava/util/function/Function;\n+       110: invokedynamic #90,  0             // InvokeDynamic #5:get:()Ljava/util/function/Supplier;\n+       115: invokestatic  #67                 // Method dev/langchain4j/spi/ServiceHelper.loadFactoryService:(Ljava/lang/Class;Ljava/util/function/Function;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+       118: checkcast     #23                 // class java/lang/String\n+       121: invokevirtual #71                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       124: ldc           #91                 // String Holla\n+       126: invokevirtual #93                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n        129: pop\n        130: return\n       LineNumberTable:\n         line 29: 0\n         line 30: 14\n         line 32: 37\n         line 33: 73\n@@ -351,196 +351,191 @@\n         line 46: 130\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n            14      63     1 service   Ldev/langchain4j/spi/ExampleService;\n            91      39     1 service   Ldev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders;\n             0     131     0  this   Ldev/langchain4j/spi/ServiceHelperTest;\n     RuntimeVisibleAnnotations:\n-      0: #69()\n+      0: #148()\n         org.junit.jupiter.api.Test\n \n   public void test_loadFactories();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=1, args_size=1\n          0: aload_0\n-         1: ldc           #9                  // class dev/langchain4j/spi/ExampleService\n-         3: invokestatic  #31                 // Method dev/langchain4j/spi/ServiceHelper.loadFactories:(Ljava/lang/Class;)Ljava/util/Collection;\n-         6: invokevirtual #32                 // Method assertServices:(Ljava/util/Collection;)V\n+         1: ldc           #35                 // class dev/langchain4j/spi/ExampleService\n+         3: invokestatic  #96                 // Method dev/langchain4j/spi/ServiceHelper.loadFactories:(Ljava/lang/Class;)Ljava/util/Collection;\n+         6: invokevirtual #100                // Method assertServices:(Ljava/util/Collection;)V\n          9: aload_0\n-        10: ldc           #9                  // class dev/langchain4j/spi/ExampleService\n-        12: ldc           #33                 // class dev/langchain4j/spi/ServiceHelperTest\n-        14: invokevirtual #34                 // Method java/lang/Class.getClassLoader:()Ljava/lang/ClassLoader;\n-        17: invokestatic  #35                 // Method dev/langchain4j/spi/ServiceHelper.loadFactories:(Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/util/Collection;\n-        20: invokevirtual #32                 // Method assertServices:(Ljava/util/Collection;)V\n+        10: ldc           #35                 // class dev/langchain4j/spi/ExampleService\n+        12: ldc           #8                  // class dev/langchain4j/spi/ServiceHelperTest\n+        14: invokevirtual #104                // Method java/lang/Class.getClassLoader:()Ljava/lang/ClassLoader;\n+        17: invokestatic  #108                // Method dev/langchain4j/spi/ServiceHelper.loadFactories:(Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/util/Collection;\n+        20: invokevirtual #100                // Method assertServices:(Ljava/util/Collection;)V\n         23: aload_0\n-        24: ldc           #23                 // class dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders\n-        26: invokestatic  #31                 // Method dev/langchain4j/spi/ServiceHelper.loadFactories:(Ljava/lang/Class;)Ljava/util/Collection;\n-        29: invokevirtual #2                  // Method assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n-        32: invokevirtual #36                 // Method org/assertj/core/api/AbstractCollectionAssert.isEmpty:()V\n+        24: ldc           #80                 // class dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders\n+        26: invokestatic  #96                 // Method dev/langchain4j/spi/ServiceHelper.loadFactories:(Ljava/lang/Class;)Ljava/util/Collection;\n+        29: invokevirtual #7                  // Method assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+        32: invokevirtual #111                // Method org/assertj/core/api/AbstractCollectionAssert.isEmpty:()V\n         35: return\n       LineNumberTable:\n         line 50: 0\n         line 51: 9\n         line 53: 23\n         line 54: 35\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      36     0  this   Ldev/langchain4j/spi/ServiceHelperTest;\n     RuntimeVisibleAnnotations:\n-      0: #69()\n+      0: #148()\n         org.junit.jupiter.api.Test\n \n   void test_supplierServices();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=3, locals=1, args_size=1\n          0: aload_0\n-         1: ldc           #37                 // class dev/langchain4j/spi/SupplierService\n-         3: invokedynamic #38,  0             // InvokeDynamic #7:get:()Ljava/util/function/Supplier;\n-         8: invokestatic  #39                 // Method dev/langchain4j/spi/ServiceHelper.loadFactoryService:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-        11: checkcast     #5                  // class java/lang/String\n-        14: invokevirtual #20                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        17: ldc           #40                 // String Hello world!\n-        19: invokevirtual #30                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+         1: ldc           #114                // class dev/langchain4j/spi/SupplierService\n+         3: invokedynamic #116,  0            // InvokeDynamic #6:get:()Ljava/util/function/Supplier;\n+         8: invokestatic  #117                // Method dev/langchain4j/spi/ServiceHelper.loadFactoryService:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+        11: checkcast     #23                 // class java/lang/String\n+        14: invokevirtual #71                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        17: ldc           #119                // String Hello world!\n+        19: invokevirtual #93                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         22: pop\n         23: aload_0\n-        24: ldc           #41                 // class dev/langchain4j/spi/SupplierServiceNotFound\n-        26: invokedynamic #42,  0             // InvokeDynamic #8:get:()Ljava/util/function/Supplier;\n-        31: invokestatic  #39                 // Method dev/langchain4j/spi/ServiceHelper.loadFactoryService:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-        34: checkcast     #5                  // class java/lang/String\n-        37: invokevirtual #20                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        40: ldc           #43                 // String Not found\n-        42: invokevirtual #30                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        24: ldc           #121                // class dev/langchain4j/spi/SupplierServiceNotFound\n+        26: invokedynamic #123,  0            // InvokeDynamic #7:get:()Ljava/util/function/Supplier;\n+        31: invokestatic  #117                // Method dev/langchain4j/spi/ServiceHelper.loadFactoryService:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+        34: checkcast     #23                 // class java/lang/String\n+        37: invokevirtual #71                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        40: ldc           #124                // String Not found\n+        42: invokevirtual #93                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         45: pop\n         46: return\n       LineNumberTable:\n         line 58: 0\n         line 59: 19\n         line 61: 23\n         line 62: 42\n         line 63: 46\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      47     0  this   Ldev/langchain4j/spi/ServiceHelperTest;\n     RuntimeVisibleAnnotations:\n-      0: #69()\n+      0: #148()\n         org.junit.jupiter.api.Test\n \n   private static java.lang.String lambda$test_supplierServices$5();\n     descriptor: ()Ljava/lang/String;\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=1, locals=0, args_size=0\n-         0: ldc           #43                 // String Not found\n+         0: ldc           #124                // String Not found\n          2: areturn\n       LineNumberTable:\n         line 61: 0\n \n   private static java.lang.String lambda$test_supplierServices$4();\n     descriptor: ()Ljava/lang/String;\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=1, locals=0, args_size=0\n-         0: ldc           #43                 // String Not found\n+         0: ldc           #124                // String Not found\n          2: areturn\n       LineNumberTable:\n         line 58: 0\n \n   private static java.lang.String lambda$test_loadService$3();\n     descriptor: ()Ljava/lang/String;\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=1, locals=0, args_size=0\n-         0: ldc           #29                 // String Holla\n+         0: ldc           #91                 // String Holla\n          2: areturn\n       LineNumberTable:\n         line 42: 0\n \n   private static java.lang.String lambda$test_loadService$2();\n     descriptor: ()Ljava/lang/String;\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=1, locals=0, args_size=0\n-         0: ldc           #29                 // String Holla\n+         0: ldc           #91                 // String Holla\n          2: areturn\n       LineNumberTable:\n         line 32: 0\n \n   private static dev.langchain4j.spi.ExampleService lambda$test_loadService$1();\n     descriptor: ()Ldev/langchain4j/spi/ExampleService;\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=1, locals=0, args_size=0\n-         0: invokedynamic #44,  0             // InvokeDynamic #9:getGreeting:()Ldev/langchain4j/spi/ExampleService;\n+         0: invokedynamic #126,  0            // InvokeDynamic #8:getGreeting:()Ldev/langchain4j/spi/ExampleService;\n          5: areturn\n       LineNumberTable:\n         line 29: 0\n \n-  private static java.lang.String lambda$null$0();\n+  private static java.lang.String lambda$test_loadService$0();\n     descriptor: ()Ljava/lang/String;\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=1, locals=0, args_size=0\n-         0: ldc           #29                 // String Holla\n+         0: ldc           #91                 // String Holla\n          2: areturn\n       LineNumberTable:\n         line 29: 0\n }\n SourceFile: \"ServiceHelperTest.java\"\n-InnerClasses:\n-  public static #46= #25 of #33;          // ExampleServiceWithNoProviders=class dev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders of class dev/langchain4j/spi/ServiceHelperTest\n-  static #48= #23 of #33;                 // ServiceWithNoProviders=class dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders of class dev/langchain4j/spi/ServiceHelperTest\n-  public static final #209= #208 of #212; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n BootstrapMethods:\n-  0: #85 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-    Method arguments:\n-      #86 (Ljava/lang/Object;)Ljava/lang/Object;\n-      #87 REF_invokeInterface dev/langchain4j/spi/ExampleService.getGreeting:()Ljava/lang/String;\n-      #88 (Ldev/langchain4j/spi/ExampleService;)Ljava/lang/String;\n-  1: #85 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  0: #161 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #98 ()Ljava/lang/Object;\n-      #99 REF_invokeStatic dev/langchain4j/spi/ServiceHelperTest.lambda$test_loadService$1:()Ldev/langchain4j/spi/ExampleService;\n-      #100 ()Ldev/langchain4j/spi/ExampleService;\n-  2: #85 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #168 (Ljava/lang/Object;)Ljava/lang/Object;\n+      #170 REF_invokeInterface dev/langchain4j/spi/ExampleService.getGreeting:()Ljava/lang/String;\n+      #173 (Ldev/langchain4j/spi/ExampleService;)Ljava/lang/String;\n+  1: #161 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #86 (Ljava/lang/Object;)Ljava/lang/Object;\n-      #87 REF_invokeInterface dev/langchain4j/spi/ExampleService.getGreeting:()Ljava/lang/String;\n-      #88 (Ldev/langchain4j/spi/ExampleService;)Ljava/lang/String;\n-  3: #85 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #175 ()Ljava/lang/Object;\n+      #177 REF_invokeStatic dev/langchain4j/spi/ServiceHelperTest.lambda$test_loadService$1:()Ldev/langchain4j/spi/ExampleService;\n+      #180 ()Ldev/langchain4j/spi/ExampleService;\n+  2: #161 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #98 ()Ljava/lang/Object;\n-      #111 REF_invokeStatic dev/langchain4j/spi/ServiceHelperTest.lambda$test_loadService$2:()Ljava/lang/String;\n-      #112 ()Ljava/lang/String;\n-  4: #85 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #175 ()Ljava/lang/Object;\n+      #181 REF_invokeStatic dev/langchain4j/spi/ServiceHelperTest.lambda$test_loadService$2:()Ljava/lang/String;\n+      #184 ()Ljava/lang/String;\n+  3: #161 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #98 ()Ljava/lang/Object;\n-      #119 REF_newInvokeSpecial dev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders.\"<init>\":()V\n-      #120 ()Ldev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders;\n-  5: #85 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #175 ()Ljava/lang/Object;\n+      #185 REF_newInvokeSpecial dev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders.\"<init>\":()V\n+      #187 ()Ldev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders;\n+  4: #161 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #86 (Ljava/lang/Object;)Ljava/lang/Object;\n-      #123 REF_invokeInterface dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders.build:()Ljava/lang/String;\n-      #124 (Ldev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders;)Ljava/lang/String;\n-  6: #85 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #168 (Ljava/lang/Object;)Ljava/lang/Object;\n+      #189 REF_invokeInterface dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders.build:()Ljava/lang/String;\n+      #193 (Ldev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders;)Ljava/lang/String;\n+  5: #161 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #98 ()Ljava/lang/Object;\n-      #125 REF_invokeStatic dev/langchain4j/spi/ServiceHelperTest.lambda$test_loadService$3:()Ljava/lang/String;\n-      #112 ()Ljava/lang/String;\n-  7: #85 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #175 ()Ljava/lang/Object;\n+      #195 REF_invokeStatic dev/langchain4j/spi/ServiceHelperTest.lambda$test_loadService$3:()Ljava/lang/String;\n+      #184 ()Ljava/lang/String;\n+  6: #161 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #98 ()Ljava/lang/Object;\n-      #135 REF_invokeStatic dev/langchain4j/spi/ServiceHelperTest.lambda$test_supplierServices$4:()Ljava/lang/String;\n-      #112 ()Ljava/lang/String;\n-  8: #85 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #175 ()Ljava/lang/Object;\n+      #198 REF_invokeStatic dev/langchain4j/spi/ServiceHelperTest.lambda$test_supplierServices$4:()Ljava/lang/String;\n+      #184 ()Ljava/lang/String;\n+  7: #161 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #98 ()Ljava/lang/Object;\n-      #139 REF_invokeStatic dev/langchain4j/spi/ServiceHelperTest.lambda$test_supplierServices$5:()Ljava/lang/String;\n-      #112 ()Ljava/lang/String;\n-  9: #85 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #175 ()Ljava/lang/Object;\n+      #201 REF_invokeStatic dev/langchain4j/spi/ServiceHelperTest.lambda$test_supplierServices$5:()Ljava/lang/String;\n+      #184 ()Ljava/lang/String;\n+  8: #161 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #112 ()Ljava/lang/String;\n-      #141 REF_invokeStatic dev/langchain4j/spi/ServiceHelperTest.lambda$null$0:()Ljava/lang/String;\n-      #112 ()Ljava/lang/String;\n+      #184 ()Ljava/lang/String;\n+      #204 REF_invokeStatic dev/langchain4j/spi/ServiceHelperTest.lambda$test_loadService$0:()Ljava/lang/String;\n+      #184 ()Ljava/lang/String;\n+InnerClasses:\n+  static #208= #80 of #8;                 // ServiceWithNoProviders=class dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders of class dev/langchain4j/spi/ServiceHelperTest\n+  public static #209= #83 of #8;          // ExampleServiceWithNoProviders=class dev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders of class dev/langchain4j/spi/ServiceHelperTest\n+  public static final #214= #210 of #212; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n"}]}, {"source1": "dev/langchain4j/spi/SupplierService.class", "source2": "dev/langchain4j/spi/SupplierService.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,24 +1,24 @@\n-  SHA-256 checksum 0c75e74d02a6b43952f2f05cc5313eeb2126f1a97a7b2c4cd49c3ecb716f6a15\n+  SHA-256 checksum 5fdfbfa9a007fdd7b1b602b1f22ca03bd6fe894fc69ab1ca168cdd06b2ec06f1\n   Compiled from \"SupplierService.java\"\n public interface dev.langchain4j.spi.SupplierService extends java.util.function.Supplier<java.lang.String>\n   minor version: 0\n   major version: 52\n   flags: (0x0601) ACC_PUBLIC, ACC_INTERFACE, ACC_ABSTRACT\n   this_class: #1                          // dev/langchain4j/spi/SupplierService\n-  super_class: #2                         // java/lang/Object\n+  super_class: #3                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 0, attributes: 2\n Constant pool:\n-   #1 = Class              #8             // dev/langchain4j/spi/SupplierService\n-   #2 = Class              #9             // java/lang/Object\n-   #3 = Class              #10            // java/util/function/Supplier\n-   #4 = Utf8               Signature\n-   #5 = Utf8               Ljava/lang/Object;Ljava/util/function/Supplier<Ljava/lang/String;>;\n-   #6 = Utf8               SourceFile\n-   #7 = Utf8               SupplierService.java\n-   #8 = Utf8               dev/langchain4j/spi/SupplierService\n-   #9 = Utf8               java/lang/Object\n-  #10 = Utf8               java/util/function/Supplier\n+   #1 = Class              #2             // dev/langchain4j/spi/SupplierService\n+   #2 = Utf8               dev/langchain4j/spi/SupplierService\n+   #3 = Class              #4             // java/lang/Object\n+   #4 = Utf8               java/lang/Object\n+   #5 = Class              #6             // java/util/function/Supplier\n+   #6 = Utf8               java/util/function/Supplier\n+   #7 = Utf8               Signature\n+   #8 = Utf8               Ljava/lang/Object;Ljava/util/function/Supplier<Ljava/lang/String;>;\n+   #9 = Utf8               SourceFile\n+  #10 = Utf8               SupplierService.java\n {\n }\n-Signature: #5                           // Ljava/lang/Object;Ljava/util/function/Supplier<Ljava/lang/String;>;\n+Signature: #8                           // Ljava/lang/Object;Ljava/util/function/Supplier<Ljava/lang/String;>;\n SourceFile: \"SupplierService.java\"\n"}]}, {"source1": "dev/langchain4j/spi/SupplierServiceImpl.class", "source2": "dev/langchain4j/spi/SupplierServiceImpl.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,41 +1,41 @@\n-  SHA-256 checksum fbf6f937ae250333880c7f160f2cb053ebce2c8be6c9a6a690e4f4bd7715b565\n+  SHA-256 checksum 5806b79c384e95489551f54af23f033a79644d7e6718ac3ea826ff6574e12523\n   Compiled from \"SupplierServiceImpl.java\"\n public class dev.langchain4j.spi.SupplierServiceImpl implements dev.langchain4j.spi.SupplierService\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #4                          // dev/langchain4j/spi/SupplierServiceImpl\n-  super_class: #5                         // java/lang/Object\n+  this_class: #10                         // dev/langchain4j/spi/SupplierServiceImpl\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 3, attributes: 1\n Constant pool:\n-   #1 = Methodref          #5.#19         // java/lang/Object.\"<init>\":()V\n-   #2 = String             #20            // Hello world!\n-   #3 = Methodref          #4.#21         // dev/langchain4j/spi/SupplierServiceImpl.get:()Ljava/lang/String;\n-   #4 = Class              #22            // dev/langchain4j/spi/SupplierServiceImpl\n-   #5 = Class              #23            // java/lang/Object\n-   #6 = Class              #24            // dev/langchain4j/spi/SupplierService\n-   #7 = Utf8               <init>\n-   #8 = Utf8               ()V\n-   #9 = Utf8               Code\n-  #10 = Utf8               LineNumberTable\n-  #11 = Utf8               LocalVariableTable\n-  #12 = Utf8               this\n-  #13 = Utf8               Ldev/langchain4j/spi/SupplierServiceImpl;\n-  #14 = Utf8               get\n-  #15 = Utf8               ()Ljava/lang/String;\n-  #16 = Utf8               ()Ljava/lang/Object;\n-  #17 = Utf8               SourceFile\n-  #18 = Utf8               SupplierServiceImpl.java\n-  #19 = NameAndType        #7:#8          // \"<init>\":()V\n-  #20 = Utf8               Hello world!\n-  #21 = NameAndType        #14:#15        // get:()Ljava/lang/String;\n-  #22 = Utf8               dev/langchain4j/spi/SupplierServiceImpl\n-  #23 = Utf8               java/lang/Object\n-  #24 = Utf8               dev/langchain4j/spi/SupplierService\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = String             #8             // Hello world!\n+   #8 = Utf8               Hello world!\n+   #9 = Methodref          #10.#11        // dev/langchain4j/spi/SupplierServiceImpl.get:()Ljava/lang/String;\n+  #10 = Class              #12            // dev/langchain4j/spi/SupplierServiceImpl\n+  #11 = NameAndType        #13:#14        // get:()Ljava/lang/String;\n+  #12 = Utf8               dev/langchain4j/spi/SupplierServiceImpl\n+  #13 = Utf8               get\n+  #14 = Utf8               ()Ljava/lang/String;\n+  #15 = Class              #16            // dev/langchain4j/spi/SupplierService\n+  #16 = Utf8               dev/langchain4j/spi/SupplierService\n+  #17 = Utf8               Code\n+  #18 = Utf8               LineNumberTable\n+  #19 = Utf8               LocalVariableTable\n+  #20 = Utf8               this\n+  #21 = Utf8               Ldev/langchain4j/spi/SupplierServiceImpl;\n+  #22 = Utf8               ()Ljava/lang/Object;\n+  #23 = Utf8               SourceFile\n+  #24 = Utf8               SupplierServiceImpl.java\n {\n   public dev.langchain4j.spi.SupplierServiceImpl();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -48,29 +48,29 @@\n             0       5     0  this   Ldev/langchain4j/spi/SupplierServiceImpl;\n \n   public java.lang.String get();\n     descriptor: ()Ljava/lang/String;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n-         0: ldc           #2                  // String Hello world!\n+         0: ldc           #7                  // String Hello world!\n          2: areturn\n       LineNumberTable:\n         line 6: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       3     0  this   Ldev/langchain4j/spi/SupplierServiceImpl;\n \n   public java.lang.Object get();\n     descriptor: ()Ljava/lang/Object;\n     flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n-         1: invokevirtual #3                  // Method get:()Ljava/lang/String;\n+         1: invokevirtual #9                  // Method get:()Ljava/lang/String;\n          4: areturn\n       LineNumberTable:\n         line 3: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       5     0  this   Ldev/langchain4j/spi/SupplierServiceImpl;\n }\n"}]}, {"source1": "dev/langchain4j/spi/SupplierServiceNotFound.class", "source2": "dev/langchain4j/spi/SupplierServiceNotFound.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,24 +1,24 @@\n-  SHA-256 checksum 288962d9618084ace2483b6ccc2323111ec1c0e436eaec076f8fec0a0df136a2\n+  SHA-256 checksum e38648085e883d9f0fa126bfee4a1df2eef6919a9ac91adec380a522a9bdbd81\n   Compiled from \"SupplierServiceNotFound.java\"\n public interface dev.langchain4j.spi.SupplierServiceNotFound extends java.util.function.Supplier<java.lang.String>\n   minor version: 0\n   major version: 52\n   flags: (0x0601) ACC_PUBLIC, ACC_INTERFACE, ACC_ABSTRACT\n   this_class: #1                          // dev/langchain4j/spi/SupplierServiceNotFound\n-  super_class: #2                         // java/lang/Object\n+  super_class: #3                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 0, attributes: 2\n Constant pool:\n-   #1 = Class              #8             // dev/langchain4j/spi/SupplierServiceNotFound\n-   #2 = Class              #9             // java/lang/Object\n-   #3 = Class              #10            // java/util/function/Supplier\n-   #4 = Utf8               Signature\n-   #5 = Utf8               Ljava/lang/Object;Ljava/util/function/Supplier<Ljava/lang/String;>;\n-   #6 = Utf8               SourceFile\n-   #7 = Utf8               SupplierServiceNotFound.java\n-   #8 = Utf8               dev/langchain4j/spi/SupplierServiceNotFound\n-   #9 = Utf8               java/lang/Object\n-  #10 = Utf8               java/util/function/Supplier\n+   #1 = Class              #2             // dev/langchain4j/spi/SupplierServiceNotFound\n+   #2 = Utf8               dev/langchain4j/spi/SupplierServiceNotFound\n+   #3 = Class              #4             // java/lang/Object\n+   #4 = Utf8               java/lang/Object\n+   #5 = Class              #6             // java/util/function/Supplier\n+   #6 = Utf8               java/util/function/Supplier\n+   #7 = Utf8               Signature\n+   #8 = Utf8               Ljava/lang/Object;Ljava/util/function/Supplier<Ljava/lang/String;>;\n+   #9 = Utf8               SourceFile\n+  #10 = Utf8               SupplierServiceNotFound.java\n {\n }\n-Signature: #5                           // Ljava/lang/Object;Ljava/util/function/Supplier<Ljava/lang/String;>;\n+Signature: #8                           // Ljava/lang/Object;Ljava/util/function/Supplier<Ljava/lang/String;>;\n SourceFile: \"SupplierServiceNotFound.java\"\n"}]}, {"source1": "dev/langchain4j/spi/prompt/PromptTemplateFactoryTest.class", "source2": "dev/langchain4j/spi/prompt/PromptTemplateFactoryTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,82 +1,82 @@\n-  SHA-256 checksum bbe58e62452675424c5c75fe4d1b46924fcf17f863a9b4d7fc52b90a2bc35f3e\n+  SHA-256 checksum e3952d15de3a774e513391f0d68b1a343660d02ad72a87fe8abfd92661a7478f\n   Compiled from \"PromptTemplateFactoryTest.java\"\n class dev.langchain4j.spi.prompt.PromptTemplateFactoryTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #7                          // dev/langchain4j/spi/prompt/PromptTemplateFactoryTest\n-  super_class: #8                         // java/lang/Object\n+  this_class: #18                         // dev/langchain4j/spi/prompt/PromptTemplateFactoryTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 3, attributes: 3\n Constant pool:\n-   #1 = Methodref          #8.#29         // java/lang/Object.\"<init>\":()V\n-   #2 = InvokeDynamic      #0:#34         // #0:getTemplate:()Ldev/langchain4j/spi/prompt/PromptTemplateFactory$Input;\n-   #3 = InterfaceMethodref #19.#35        // dev/langchain4j/spi/prompt/PromptTemplateFactory$Input.getName:()Ljava/lang/String;\n-   #4 = Methodref          #7.#36         // dev/langchain4j/spi/prompt/PromptTemplateFactoryTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #5 = String             #37            // template\n-   #6 = Methodref          #38.#39        // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #7 = Class              #40            // dev/langchain4j/spi/prompt/PromptTemplateFactoryTest\n-   #8 = Class              #41            // java/lang/Object\n-   #9 = Class              #42            // org/assertj/core/api/WithAssertions\n-  #10 = Utf8               <init>\n-  #11 = Utf8               ()V\n-  #12 = Utf8               Code\n-  #13 = Utf8               LineNumberTable\n-  #14 = Utf8               LocalVariableTable\n-  #15 = Utf8               this\n-  #16 = Utf8               Ldev/langchain4j/spi/prompt/PromptTemplateFactoryTest;\n-  #17 = Utf8               test_Input_defaults\n-  #18 = Utf8               input\n-  #19 = Class              #44            // dev/langchain4j/spi/prompt/PromptTemplateFactory$Input\n-  #20 = Utf8               Input\n-  #21 = Utf8               InnerClasses\n-  #22 = Utf8               Ldev/langchain4j/spi/prompt/PromptTemplateFactory$Input;\n-  #23 = Utf8               RuntimeVisibleAnnotations\n-  #24 = Utf8               Lorg/junit/jupiter/api/Test;\n-  #25 = Utf8               lambda$test_Input_defaults$0\n-  #26 = Utf8               ()Ljava/lang/String;\n-  #27 = Utf8               SourceFile\n-  #28 = Utf8               PromptTemplateFactoryTest.java\n-  #29 = NameAndType        #10:#11        // \"<init>\":()V\n-  #30 = Utf8               BootstrapMethods\n-  #31 = MethodHandle       6:#45          // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #32 = MethodType         #26            //  ()Ljava/lang/String;\n-  #33 = MethodHandle       6:#46          // REF_invokeStatic dev/langchain4j/spi/prompt/PromptTemplateFactoryTest.lambda$test_Input_defaults$0:()Ljava/lang/String;\n-  #34 = NameAndType        #47:#48        // getTemplate:()Ldev/langchain4j/spi/prompt/PromptTemplateFactory$Input;\n-  #35 = NameAndType        #49:#26        // getName:()Ljava/lang/String;\n-  #36 = NameAndType        #50:#51        // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #37 = Utf8               template\n-  #38 = Class              #52            // org/assertj/core/api/AbstractStringAssert\n-  #39 = NameAndType        #53:#51        // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #40 = Utf8               dev/langchain4j/spi/prompt/PromptTemplateFactoryTest\n-  #41 = Utf8               java/lang/Object\n-  #42 = Utf8               org/assertj/core/api/WithAssertions\n-  #43 = Class              #54            // dev/langchain4j/spi/prompt/PromptTemplateFactory\n-  #44 = Utf8               dev/langchain4j/spi/prompt/PromptTemplateFactory$Input\n-  #45 = Methodref          #55.#56        // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #46 = Methodref          #7.#57         // dev/langchain4j/spi/prompt/PromptTemplateFactoryTest.lambda$test_Input_defaults$0:()Ljava/lang/String;\n-  #47 = Utf8               getTemplate\n-  #48 = Utf8               ()Ldev/langchain4j/spi/prompt/PromptTemplateFactory$Input;\n-  #49 = Utf8               getName\n-  #50 = Utf8               assertThat\n-  #51 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #52 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #53 = Utf8               isEqualTo\n-  #54 = Utf8               dev/langchain4j/spi/prompt/PromptTemplateFactory\n-  #55 = Class              #58            // java/lang/invoke/LambdaMetafactory\n-  #56 = NameAndType        #59:#62        // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #57 = NameAndType        #25:#26        // lambda$test_Input_defaults$0:()Ljava/lang/String;\n-  #58 = Utf8               java/lang/invoke/LambdaMetafactory\n-  #59 = Utf8               metafactory\n-  #60 = Class              #64            // java/lang/invoke/MethodHandles$Lookup\n-  #61 = Utf8               Lookup\n-  #62 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #63 = Class              #65            // java/lang/invoke/MethodHandles\n-  #64 = Utf8               java/lang/invoke/MethodHandles$Lookup\n-  #65 = Utf8               java/lang/invoke/MethodHandles\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = InvokeDynamic      #0:#8          // #0:getTemplate:()Ldev/langchain4j/spi/prompt/PromptTemplateFactory$Input;\n+   #8 = NameAndType        #9:#10         // getTemplate:()Ldev/langchain4j/spi/prompt/PromptTemplateFactory$Input;\n+   #9 = Utf8               getTemplate\n+  #10 = Utf8               ()Ldev/langchain4j/spi/prompt/PromptTemplateFactory$Input;\n+  #11 = InterfaceMethodref #12.#13        // dev/langchain4j/spi/prompt/PromptTemplateFactory$Input.getName:()Ljava/lang/String;\n+  #12 = Class              #14            // dev/langchain4j/spi/prompt/PromptTemplateFactory$Input\n+  #13 = NameAndType        #15:#16        // getName:()Ljava/lang/String;\n+  #14 = Utf8               dev/langchain4j/spi/prompt/PromptTemplateFactory$Input\n+  #15 = Utf8               getName\n+  #16 = Utf8               ()Ljava/lang/String;\n+  #17 = Methodref          #18.#19        // dev/langchain4j/spi/prompt/PromptTemplateFactoryTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #18 = Class              #20            // dev/langchain4j/spi/prompt/PromptTemplateFactoryTest\n+  #19 = NameAndType        #21:#22        // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #20 = Utf8               dev/langchain4j/spi/prompt/PromptTemplateFactoryTest\n+  #21 = Utf8               assertThat\n+  #22 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #23 = String             #24            // template\n+  #24 = Utf8               template\n+  #25 = Methodref          #26.#27        // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #26 = Class              #28            // org/assertj/core/api/AbstractStringAssert\n+  #27 = NameAndType        #29:#22        // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #28 = Utf8               org/assertj/core/api/AbstractStringAssert\n+  #29 = Utf8               isEqualTo\n+  #30 = Class              #31            // org/assertj/core/api/WithAssertions\n+  #31 = Utf8               org/assertj/core/api/WithAssertions\n+  #32 = Utf8               Code\n+  #33 = Utf8               LineNumberTable\n+  #34 = Utf8               LocalVariableTable\n+  #35 = Utf8               this\n+  #36 = Utf8               Ldev/langchain4j/spi/prompt/PromptTemplateFactoryTest;\n+  #37 = Utf8               test_Input_defaults\n+  #38 = Utf8               input\n+  #39 = Utf8               Ldev/langchain4j/spi/prompt/PromptTemplateFactory$Input;\n+  #40 = Utf8               RuntimeVisibleAnnotations\n+  #41 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #42 = Utf8               lambda$test_Input_defaults$0\n+  #43 = Utf8               SourceFile\n+  #44 = Utf8               PromptTemplateFactoryTest.java\n+  #45 = Utf8               BootstrapMethods\n+  #46 = MethodHandle       6:#47          // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #47 = Methodref          #48.#49        // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #48 = Class              #50            // java/lang/invoke/LambdaMetafactory\n+  #49 = NameAndType        #51:#52        // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #50 = Utf8               java/lang/invoke/LambdaMetafactory\n+  #51 = Utf8               metafactory\n+  #52 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #53 = MethodType         #16            //  ()Ljava/lang/String;\n+  #54 = MethodHandle       6:#55          // REF_invokeStatic dev/langchain4j/spi/prompt/PromptTemplateFactoryTest.lambda$test_Input_defaults$0:()Ljava/lang/String;\n+  #55 = Methodref          #18.#56        // dev/langchain4j/spi/prompt/PromptTemplateFactoryTest.lambda$test_Input_defaults$0:()Ljava/lang/String;\n+  #56 = NameAndType        #42:#16        // lambda$test_Input_defaults$0:()Ljava/lang/String;\n+  #57 = Utf8               InnerClasses\n+  #58 = Class              #59            // dev/langchain4j/spi/prompt/PromptTemplateFactory\n+  #59 = Utf8               dev/langchain4j/spi/prompt/PromptTemplateFactory\n+  #60 = Utf8               Input\n+  #61 = Class              #62            // java/lang/invoke/MethodHandles$Lookup\n+  #62 = Utf8               java/lang/invoke/MethodHandles$Lookup\n+  #63 = Class              #64            // java/lang/invoke/MethodHandles\n+  #64 = Utf8               java/lang/invoke/MethodHandles\n+  #65 = Utf8               Lookup\n {\n   dev.langchain4j.spi.prompt.PromptTemplateFactoryTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -89,49 +89,49 @@\n             0       5     0  this   Ldev/langchain4j/spi/prompt/PromptTemplateFactoryTest;\n \n   public void test_Input_defaults();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=1\n-         0: invokedynamic #2,  0              // InvokeDynamic #0:getTemplate:()Ldev/langchain4j/spi/prompt/PromptTemplateFactory$Input;\n+         0: invokedynamic #7,  0              // InvokeDynamic #0:getTemplate:()Ldev/langchain4j/spi/prompt/PromptTemplateFactory$Input;\n          5: astore_1\n          6: aload_0\n          7: aload_1\n-         8: invokeinterface #3,  1            // InterfaceMethod dev/langchain4j/spi/prompt/PromptTemplateFactory$Input.getName:()Ljava/lang/String;\n-        13: invokevirtual #4                  // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        16: ldc           #5                  // String template\n-        18: invokevirtual #6                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+         8: invokeinterface #11,  1           // InterfaceMethod dev/langchain4j/spi/prompt/PromptTemplateFactory$Input.getName:()Ljava/lang/String;\n+        13: invokevirtual #17                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        16: ldc           #23                 // String template\n+        18: invokevirtual #25                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         21: pop\n         22: return\n       LineNumberTable:\n         line 9: 0\n         line 10: 6\n         line 11: 22\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      23     0  this   Ldev/langchain4j/spi/prompt/PromptTemplateFactoryTest;\n             6      17     1 input   Ldev/langchain4j/spi/prompt/PromptTemplateFactory$Input;\n     RuntimeVisibleAnnotations:\n-      0: #24()\n+      0: #41()\n         org.junit.jupiter.api.Test\n \n   private static java.lang.String lambda$test_Input_defaults$0();\n     descriptor: ()Ljava/lang/String;\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=1, locals=0, args_size=0\n-         0: ldc           #5                  // String template\n+         0: ldc           #23                 // String template\n          2: areturn\n       LineNumberTable:\n         line 9: 0\n }\n SourceFile: \"PromptTemplateFactoryTest.java\"\n-InnerClasses:\n-  public static #20= #19 of #43;          // Input=class dev/langchain4j/spi/prompt/PromptTemplateFactory$Input of class dev/langchain4j/spi/prompt/PromptTemplateFactory\n-  public static final #61= #60 of #63;    // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n BootstrapMethods:\n-  0: #31 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  0: #46 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #32 ()Ljava/lang/String;\n-      #33 REF_invokeStatic dev/langchain4j/spi/prompt/PromptTemplateFactoryTest.lambda$test_Input_defaults$0:()Ljava/lang/String;\n-      #32 ()Ljava/lang/String;\n+      #53 ()Ljava/lang/String;\n+      #54 REF_invokeStatic dev/langchain4j/spi/prompt/PromptTemplateFactoryTest.lambda$test_Input_defaults$0:()Ljava/lang/String;\n+      #53 ()Ljava/lang/String;\n+InnerClasses:\n+  public static #60= #12 of #58;          // Input=class dev/langchain4j/spi/prompt/PromptTemplateFactory$Input of class dev/langchain4j/spi/prompt/PromptTemplateFactory\n+  public static final #65= #61 of #63;    // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n"}]}, {"source1": "dev/langchain4j/store/embedding/CosineSimilarityTest.class", "source2": "dev/langchain4j/store/embedding/CosineSimilarityTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,133 +1,133 @@\n-  SHA-256 checksum 2df7a9c4200375615283b667cbf9b96a924978a45141f29e5c7e0aa397d9c2bd\n+  SHA-256 checksum 6d1f4f21af8ee85e5c25df3759e8e78675d2bc3d6f9af15e54096e5ca73a273d\n   Compiled from \"CosineSimilarityTest.java\"\n class dev.langchain4j.store.embedding.CosineSimilarityTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #20                         // dev/langchain4j/store/embedding/CosineSimilarityTest\n-  super_class: #21                        // java/lang/Object\n+  this_class: #16                         // dev/langchain4j/store/embedding/CosineSimilarityTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 6, attributes: 3\n Constant pool:\n-    #1 = Methodref          #21.#45       // java/lang/Object.\"<init>\":()V\n-    #2 = Methodref          #46.#47       // dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n-    #3 = Class              #48           // java/lang/IllegalArgumentException\n-    #4 = Methodref          #20.#49       // dev/langchain4j/store/embedding/CosineSimilarityTest.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-    #5 = InvokeDynamic      #0:#54        // #0:call:(Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-    #6 = Methodref          #55.#56       // org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-    #7 = String             #57           // Length of vector a (3) must be equal to the length of vector b (4)\n-    #8 = Methodref          #58.#59       // org/assertj/core/api/ThrowableAssertAlternative.withMessage:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-    #9 = Methodref          #60.#61       // dev/langchain4j/store/embedding/CosineSimilarity.between:(Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)D\n-   #10 = Methodref          #20.#62       // dev/langchain4j/store/embedding/CosineSimilarityTest.assertThat:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n-   #11 = Methodref          #63.#64       // org/assertj/core/data/Percentage.withPercentage:(D)Lorg/assertj/core/data/Percentage;\n-   #12 = Methodref          #65.#66       // org/assertj/core/api/AbstractDoubleAssert.isCloseTo:(DLorg/assertj/core/data/Percentage;)Lorg/assertj/core/api/AbstractDoubleAssert;\n-   #13 = Float              -1.0f\n-   #14 = Double             -1.0d\n-   #16 = Methodref          #60.#67       // dev/langchain4j/store/embedding/CosineSimilarity.fromRelevanceScore:(D)D\n-   #17 = Methodref          #65.#68       // org/assertj/core/api/AbstractDoubleAssert.isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n-   #18 = Double             0.5d\n-   #20 = Class              #69           // dev/langchain4j/store/embedding/CosineSimilarityTest\n-   #21 = Class              #70           // java/lang/Object\n-   #22 = Class              #71           // org/assertj/core/api/WithAssertions\n-   #23 = Utf8               <init>\n-   #24 = Utf8               ()V\n-   #25 = Utf8               Code\n-   #26 = Utf8               LineNumberTable\n-   #27 = Utf8               LocalVariableTable\n-   #28 = Utf8               this\n-   #29 = Utf8               Ldev/langchain4j/store/embedding/CosineSimilarityTest;\n-   #30 = Utf8               test_bad\n-   #31 = Utf8               embeddingA\n-   #32 = Utf8               Ldev/langchain4j/data/embedding/Embedding;\n-   #33 = Utf8               embeddingB\n-   #34 = Utf8               RuntimeVisibleAnnotations\n-   #35 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #36 = Utf8               test_zeros\n-   #37 = Utf8               should_calculate_cosine_similarity\n-   #38 = Utf8               should_convert_relevance_score_into_cosine_similarity\n-   #39 = Utf8               lambda$test_bad$0\n-   #40 = Utf8               (Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)V\n-   #41 = Utf8               Exceptions\n-   #42 = Class              #72           // java/lang/Throwable\n-   #43 = Utf8               SourceFile\n-   #44 = Utf8               CosineSimilarityTest.java\n-   #45 = NameAndType        #23:#24       // \"<init>\":()V\n-   #46 = Class              #73           // dev/langchain4j/data/embedding/Embedding\n-   #47 = NameAndType        #74:#75       // from:([F)Ldev/langchain4j/data/embedding/Embedding;\n-   #48 = Utf8               java/lang/IllegalArgumentException\n-   #49 = NameAndType        #76:#77       // assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-   #50 = Utf8               BootstrapMethods\n-   #51 = MethodHandle       6:#78         // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-   #52 = MethodType         #24           //  ()V\n-   #53 = MethodHandle       6:#79         // REF_invokeStatic dev/langchain4j/store/embedding/CosineSimilarityTest.lambda$test_bad$0:(Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)V\n-   #54 = NameAndType        #80:#84       // call:(Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #55 = Class              #85           // org/assertj/core/api/ThrowableTypeAssert\n-   #56 = NameAndType        #86:#87       // isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #57 = Utf8               Length of vector a (3) must be equal to the length of vector b (4)\n-   #58 = Class              #88           // org/assertj/core/api/ThrowableAssertAlternative\n-   #59 = NameAndType        #89:#90       // withMessage:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #60 = Class              #91           // dev/langchain4j/store/embedding/CosineSimilarity\n-   #61 = NameAndType        #92:#93       // between:(Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)D\n-   #62 = NameAndType        #94:#95       // assertThat:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n-   #63 = Class              #96           // org/assertj/core/data/Percentage\n-   #64 = NameAndType        #97:#98       // withPercentage:(D)Lorg/assertj/core/data/Percentage;\n-   #65 = Class              #99           // org/assertj/core/api/AbstractDoubleAssert\n-   #66 = NameAndType        #100:#101     // isCloseTo:(DLorg/assertj/core/data/Percentage;)Lorg/assertj/core/api/AbstractDoubleAssert;\n-   #67 = NameAndType        #102:#103     // fromRelevanceScore:(D)D\n-   #68 = NameAndType        #104:#95      // isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n-   #69 = Utf8               dev/langchain4j/store/embedding/CosineSimilarityTest\n-   #70 = Utf8               java/lang/Object\n-   #71 = Utf8               org/assertj/core/api/WithAssertions\n-   #72 = Utf8               java/lang/Throwable\n-   #73 = Utf8               dev/langchain4j/data/embedding/Embedding\n-   #74 = Utf8               from\n-   #75 = Utf8               ([F)Ldev/langchain4j/data/embedding/Embedding;\n-   #76 = Utf8               assertThatExceptionOfType\n-   #77 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-   #78 = Methodref          #105.#106     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-   #79 = Methodref          #20.#107      // dev/langchain4j/store/embedding/CosineSimilarityTest.lambda$test_bad$0:(Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)V\n-   #80 = Utf8               call\n-   #81 = Class              #109          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-   #82 = Utf8               ThrowingCallable\n-   #83 = Utf8               InnerClasses\n-   #84 = Utf8               (Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #85 = Utf8               org/assertj/core/api/ThrowableTypeAssert\n-   #86 = Utf8               isThrownBy\n-   #87 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #88 = Utf8               org/assertj/core/api/ThrowableAssertAlternative\n-   #89 = Utf8               withMessage\n-   #90 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #91 = Utf8               dev/langchain4j/store/embedding/CosineSimilarity\n-   #92 = Utf8               between\n-   #93 = Utf8               (Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)D\n-   #94 = Utf8               assertThat\n-   #95 = Utf8               (D)Lorg/assertj/core/api/AbstractDoubleAssert;\n-   #96 = Utf8               org/assertj/core/data/Percentage\n-   #97 = Utf8               withPercentage\n-   #98 = Utf8               (D)Lorg/assertj/core/data/Percentage;\n-   #99 = Utf8               org/assertj/core/api/AbstractDoubleAssert\n-  #100 = Utf8               isCloseTo\n-  #101 = Utf8               (DLorg/assertj/core/data/Percentage;)Lorg/assertj/core/api/AbstractDoubleAssert;\n-  #102 = Utf8               fromRelevanceScore\n-  #103 = Utf8               (D)D\n-  #104 = Utf8               isEqualTo\n-  #105 = Class              #110          // java/lang/invoke/LambdaMetafactory\n-  #106 = NameAndType        #111:#114     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #107 = NameAndType        #39:#40       // lambda$test_bad$0:(Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)V\n-  #108 = Class              #115          // org/assertj/core/api/ThrowableAssert\n-  #109 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #110 = Utf8               java/lang/invoke/LambdaMetafactory\n-  #111 = Utf8               metafactory\n-  #112 = Class              #117          // java/lang/invoke/MethodHandles$Lookup\n-  #113 = Utf8               Lookup\n-  #114 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #115 = Utf8               org/assertj/core/api/ThrowableAssert\n-  #116 = Class              #118          // java/lang/invoke/MethodHandles\n-  #117 = Utf8               java/lang/invoke/MethodHandles$Lookup\n-  #118 = Utf8               java/lang/invoke/MethodHandles\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Methodref          #8.#9         // dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n+    #8 = Class              #10           // dev/langchain4j/data/embedding/Embedding\n+    #9 = NameAndType        #11:#12       // from:([F)Ldev/langchain4j/data/embedding/Embedding;\n+   #10 = Utf8               dev/langchain4j/data/embedding/Embedding\n+   #11 = Utf8               from\n+   #12 = Utf8               ([F)Ldev/langchain4j/data/embedding/Embedding;\n+   #13 = Class              #14           // java/lang/IllegalArgumentException\n+   #14 = Utf8               java/lang/IllegalArgumentException\n+   #15 = Methodref          #16.#17       // dev/langchain4j/store/embedding/CosineSimilarityTest.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #16 = Class              #18           // dev/langchain4j/store/embedding/CosineSimilarityTest\n+   #17 = NameAndType        #19:#20       // assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #18 = Utf8               dev/langchain4j/store/embedding/CosineSimilarityTest\n+   #19 = Utf8               assertThatExceptionOfType\n+   #20 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #21 = InvokeDynamic      #0:#22        // #0:call:(Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #22 = NameAndType        #23:#24       // call:(Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #23 = Utf8               call\n+   #24 = Utf8               (Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #25 = Methodref          #26.#27       // org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #26 = Class              #28           // org/assertj/core/api/ThrowableTypeAssert\n+   #27 = NameAndType        #29:#30       // isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #28 = Utf8               org/assertj/core/api/ThrowableTypeAssert\n+   #29 = Utf8               isThrownBy\n+   #30 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #31 = String             #32           // Length of vector a (3) must be equal to the length of vector b (4)\n+   #32 = Utf8               Length of vector a (3) must be equal to the length of vector b (4)\n+   #33 = Methodref          #34.#35       // org/assertj/core/api/ThrowableAssertAlternative.withMessage:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #34 = Class              #36           // org/assertj/core/api/ThrowableAssertAlternative\n+   #35 = NameAndType        #37:#38       // withMessage:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #36 = Utf8               org/assertj/core/api/ThrowableAssertAlternative\n+   #37 = Utf8               withMessage\n+   #38 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #39 = Methodref          #40.#41       // dev/langchain4j/store/embedding/CosineSimilarity.between:(Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)D\n+   #40 = Class              #42           // dev/langchain4j/store/embedding/CosineSimilarity\n+   #41 = NameAndType        #43:#44       // between:(Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)D\n+   #42 = Utf8               dev/langchain4j/store/embedding/CosineSimilarity\n+   #43 = Utf8               between\n+   #44 = Utf8               (Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)D\n+   #45 = Methodref          #16.#46       // dev/langchain4j/store/embedding/CosineSimilarityTest.assertThat:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+   #46 = NameAndType        #47:#48       // assertThat:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+   #47 = Utf8               assertThat\n+   #48 = Utf8               (D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+   #49 = Methodref          #50.#51       // org/assertj/core/data/Percentage.withPercentage:(D)Lorg/assertj/core/data/Percentage;\n+   #50 = Class              #52           // org/assertj/core/data/Percentage\n+   #51 = NameAndType        #53:#54       // withPercentage:(D)Lorg/assertj/core/data/Percentage;\n+   #52 = Utf8               org/assertj/core/data/Percentage\n+   #53 = Utf8               withPercentage\n+   #54 = Utf8               (D)Lorg/assertj/core/data/Percentage;\n+   #55 = Methodref          #56.#57       // org/assertj/core/api/AbstractDoubleAssert.isCloseTo:(DLorg/assertj/core/data/Percentage;)Lorg/assertj/core/api/AbstractDoubleAssert;\n+   #56 = Class              #58           // org/assertj/core/api/AbstractDoubleAssert\n+   #57 = NameAndType        #59:#60       // isCloseTo:(DLorg/assertj/core/data/Percentage;)Lorg/assertj/core/api/AbstractDoubleAssert;\n+   #58 = Utf8               org/assertj/core/api/AbstractDoubleAssert\n+   #59 = Utf8               isCloseTo\n+   #60 = Utf8               (DLorg/assertj/core/data/Percentage;)Lorg/assertj/core/api/AbstractDoubleAssert;\n+   #61 = Float              -1.0f\n+   #62 = Double             -1.0d\n+   #64 = Methodref          #40.#65       // dev/langchain4j/store/embedding/CosineSimilarity.fromRelevanceScore:(D)D\n+   #65 = NameAndType        #66:#67       // fromRelevanceScore:(D)D\n+   #66 = Utf8               fromRelevanceScore\n+   #67 = Utf8               (D)D\n+   #68 = Methodref          #56.#69       // org/assertj/core/api/AbstractDoubleAssert.isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+   #69 = NameAndType        #70:#48       // isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+   #70 = Utf8               isEqualTo\n+   #71 = Double             0.5d\n+   #73 = Class              #74           // org/assertj/core/api/WithAssertions\n+   #74 = Utf8               org/assertj/core/api/WithAssertions\n+   #75 = Utf8               Code\n+   #76 = Utf8               LineNumberTable\n+   #77 = Utf8               LocalVariableTable\n+   #78 = Utf8               this\n+   #79 = Utf8               Ldev/langchain4j/store/embedding/CosineSimilarityTest;\n+   #80 = Utf8               test_bad\n+   #81 = Utf8               embeddingA\n+   #82 = Utf8               Ldev/langchain4j/data/embedding/Embedding;\n+   #83 = Utf8               embeddingB\n+   #84 = Utf8               RuntimeVisibleAnnotations\n+   #85 = Utf8               Lorg/junit/jupiter/api/Test;\n+   #86 = Utf8               test_zeros\n+   #87 = Utf8               should_calculate_cosine_similarity\n+   #88 = Utf8               should_convert_relevance_score_into_cosine_similarity\n+   #89 = Utf8               lambda$test_bad$0\n+   #90 = Utf8               (Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)V\n+   #91 = Utf8               Exceptions\n+   #92 = Class              #93           // java/lang/Throwable\n+   #93 = Utf8               java/lang/Throwable\n+   #94 = Utf8               SourceFile\n+   #95 = Utf8               CosineSimilarityTest.java\n+   #96 = Utf8               BootstrapMethods\n+   #97 = MethodHandle       6:#98         // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+   #98 = Methodref          #99.#100      // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+   #99 = Class              #101          // java/lang/invoke/LambdaMetafactory\n+  #100 = NameAndType        #102:#103     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #101 = Utf8               java/lang/invoke/LambdaMetafactory\n+  #102 = Utf8               metafactory\n+  #103 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #104 = MethodType         #6            //  ()V\n+  #105 = MethodHandle       6:#106        // REF_invokeStatic dev/langchain4j/store/embedding/CosineSimilarityTest.lambda$test_bad$0:(Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)V\n+  #106 = Methodref          #16.#107      // dev/langchain4j/store/embedding/CosineSimilarityTest.lambda$test_bad$0:(Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)V\n+  #107 = NameAndType        #89:#90       // lambda$test_bad$0:(Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)V\n+  #108 = Utf8               InnerClasses\n+  #109 = Class              #110          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n+  #110 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n+  #111 = Class              #112          // org/assertj/core/api/ThrowableAssert\n+  #112 = Utf8               org/assertj/core/api/ThrowableAssert\n+  #113 = Utf8               ThrowingCallable\n+  #114 = Class              #115          // java/lang/invoke/MethodHandles$Lookup\n+  #115 = Utf8               java/lang/invoke/MethodHandles$Lookup\n+  #116 = Class              #117          // java/lang/invoke/MethodHandles\n+  #117 = Utf8               java/lang/invoke/MethodHandles\n+  #118 = Utf8               Lookup\n {\n   dev.langchain4j.store.embedding.CosineSimilarityTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -154,15 +154,15 @@\n          8: iconst_1\n          9: fconst_1\n         10: fastore\n         11: dup\n         12: iconst_2\n         13: fconst_1\n         14: fastore\n-        15: invokestatic  #2                  // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n+        15: invokestatic  #7                  // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n         18: astore_1\n         19: iconst_4\n         20: newarray       float\n         22: dup\n         23: iconst_0\n         24: fconst_1\n         25: fastore\n@@ -174,25 +174,25 @@\n         31: iconst_2\n         32: fconst_1\n         33: fastore\n         34: dup\n         35: iconst_3\n         36: fconst_1\n         37: fastore\n-        38: invokestatic  #2                  // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n+        38: invokestatic  #7                  // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n         41: astore_2\n         42: aload_0\n-        43: ldc           #3                  // class java/lang/IllegalArgumentException\n-        45: invokevirtual #4                  // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+        43: ldc           #13                 // class java/lang/IllegalArgumentException\n+        45: invokevirtual #15                 // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n         48: aload_1\n         49: aload_2\n-        50: invokedynamic #5,  0              // InvokeDynamic #0:call:(Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-        55: invokevirtual #6                  // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-        58: ldc           #7                  // String Length of vector a (3) must be equal to the length of vector b (4)\n-        60: invokevirtual #8                  // Method org/assertj/core/api/ThrowableAssertAlternative.withMessage:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        50: invokedynamic #21,  0             // InvokeDynamic #0:call:(Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+        55: invokevirtual #25                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        58: ldc           #31                 // String Length of vector a (3) must be equal to the length of vector b (4)\n+        60: invokevirtual #33                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessage:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n         63: pop\n         64: return\n       LineNumberTable:\n         line 12: 0\n         line 13: 19\n         line 15: 42\n         line 16: 55\n@@ -200,15 +200,15 @@\n         line 18: 64\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      65     0  this   Ldev/langchain4j/store/embedding/CosineSimilarityTest;\n            19      46     1 embeddingA   Ldev/langchain4j/data/embedding/Embedding;\n            42      23     2 embeddingB   Ldev/langchain4j/data/embedding/Embedding;\n     RuntimeVisibleAnnotations:\n-      0: #35()\n+      0: #85()\n         org.junit.jupiter.api.Test\n \n   public void test_zeros();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=5, locals=3, args_size=1\n@@ -222,15 +222,15 @@\n          8: iconst_1\n          9: fconst_0\n         10: fastore\n         11: dup\n         12: iconst_2\n         13: fconst_0\n         14: fastore\n-        15: invokestatic  #2                  // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n+        15: invokestatic  #7                  // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n         18: astore_1\n         19: iconst_3\n         20: newarray       float\n         22: dup\n         23: iconst_0\n         24: fconst_0\n         25: fastore\n@@ -238,39 +238,39 @@\n         27: iconst_1\n         28: fconst_0\n         29: fastore\n         30: dup\n         31: iconst_2\n         32: fconst_0\n         33: fastore\n-        34: invokestatic  #2                  // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n+        34: invokestatic  #7                  // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n         37: astore_2\n         38: aload_0\n         39: aload_1\n         40: aload_2\n-        41: invokestatic  #9                  // Method dev/langchain4j/store/embedding/CosineSimilarity.between:(Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)D\n-        44: invokevirtual #10                 // Method assertThat:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+        41: invokestatic  #39                 // Method dev/langchain4j/store/embedding/CosineSimilarity.between:(Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)D\n+        44: invokevirtual #45                 // Method assertThat:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n         47: dconst_0\n         48: dconst_1\n-        49: invokestatic  #11                 // Method org/assertj/core/data/Percentage.withPercentage:(D)Lorg/assertj/core/data/Percentage;\n-        52: invokevirtual #12                 // Method org/assertj/core/api/AbstractDoubleAssert.isCloseTo:(DLorg/assertj/core/data/Percentage;)Lorg/assertj/core/api/AbstractDoubleAssert;\n+        49: invokestatic  #49                 // Method org/assertj/core/data/Percentage.withPercentage:(D)Lorg/assertj/core/data/Percentage;\n+        52: invokevirtual #55                 // Method org/assertj/core/api/AbstractDoubleAssert.isCloseTo:(DLorg/assertj/core/data/Percentage;)Lorg/assertj/core/api/AbstractDoubleAssert;\n         55: pop\n         56: return\n       LineNumberTable:\n         line 22: 0\n         line 23: 19\n         line 25: 38\n         line 26: 56\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      57     0  this   Ldev/langchain4j/store/embedding/CosineSimilarityTest;\n            19      38     1 embeddingA   Ldev/langchain4j/data/embedding/Embedding;\n            38      19     2 embeddingB   Ldev/langchain4j/data/embedding/Embedding;\n     RuntimeVisibleAnnotations:\n-      0: #35()\n+      0: #85()\n         org.junit.jupiter.api.Test\n \n   void should_calculate_cosine_similarity();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=5, locals=3, args_size=1\n@@ -278,135 +278,135 @@\n          1: newarray       float\n          3: dup\n          4: iconst_0\n          5: fconst_1\n          6: fastore\n          7: dup\n          8: iconst_1\n-         9: ldc           #13                 // float -1.0f\n+         9: ldc           #61                 // float -1.0f\n         11: fastore\n         12: dup\n         13: iconst_2\n         14: fconst_1\n         15: fastore\n-        16: invokestatic  #2                  // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n+        16: invokestatic  #7                  // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n         19: astore_1\n         20: iconst_3\n         21: newarray       float\n         23: dup\n         24: iconst_0\n-        25: ldc           #13                 // float -1.0f\n+        25: ldc           #61                 // float -1.0f\n         27: fastore\n         28: dup\n         29: iconst_1\n         30: fconst_1\n         31: fastore\n         32: dup\n         33: iconst_2\n-        34: ldc           #13                 // float -1.0f\n+        34: ldc           #61                 // float -1.0f\n         36: fastore\n-        37: invokestatic  #2                  // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n+        37: invokestatic  #7                  // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n         40: astore_2\n         41: aload_0\n         42: aload_1\n         43: aload_1\n-        44: invokestatic  #9                  // Method dev/langchain4j/store/embedding/CosineSimilarity.between:(Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)D\n-        47: invokevirtual #10                 // Method assertThat:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+        44: invokestatic  #39                 // Method dev/langchain4j/store/embedding/CosineSimilarity.between:(Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)D\n+        47: invokevirtual #45                 // Method assertThat:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n         50: dconst_1\n         51: dconst_1\n-        52: invokestatic  #11                 // Method org/assertj/core/data/Percentage.withPercentage:(D)Lorg/assertj/core/data/Percentage;\n-        55: invokevirtual #12                 // Method org/assertj/core/api/AbstractDoubleAssert.isCloseTo:(DLorg/assertj/core/data/Percentage;)Lorg/assertj/core/api/AbstractDoubleAssert;\n+        52: invokestatic  #49                 // Method org/assertj/core/data/Percentage.withPercentage:(D)Lorg/assertj/core/data/Percentage;\n+        55: invokevirtual #55                 // Method org/assertj/core/api/AbstractDoubleAssert.isCloseTo:(DLorg/assertj/core/data/Percentage;)Lorg/assertj/core/api/AbstractDoubleAssert;\n         58: pop\n         59: aload_0\n         60: aload_1\n         61: aload_2\n-        62: invokestatic  #9                  // Method dev/langchain4j/store/embedding/CosineSimilarity.between:(Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)D\n-        65: invokevirtual #10                 // Method assertThat:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n-        68: ldc2_w        #14                 // double -1.0d\n+        62: invokestatic  #39                 // Method dev/langchain4j/store/embedding/CosineSimilarity.between:(Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)D\n+        65: invokevirtual #45                 // Method assertThat:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+        68: ldc2_w        #62                 // double -1.0d\n         71: dconst_1\n-        72: invokestatic  #11                 // Method org/assertj/core/data/Percentage.withPercentage:(D)Lorg/assertj/core/data/Percentage;\n-        75: invokevirtual #12                 // Method org/assertj/core/api/AbstractDoubleAssert.isCloseTo:(DLorg/assertj/core/data/Percentage;)Lorg/assertj/core/api/AbstractDoubleAssert;\n+        72: invokestatic  #49                 // Method org/assertj/core/data/Percentage.withPercentage:(D)Lorg/assertj/core/data/Percentage;\n+        75: invokevirtual #55                 // Method org/assertj/core/api/AbstractDoubleAssert.isCloseTo:(DLorg/assertj/core/data/Percentage;)Lorg/assertj/core/api/AbstractDoubleAssert;\n         78: pop\n         79: return\n       LineNumberTable:\n         line 30: 0\n         line 31: 20\n         line 33: 41\n         line 34: 59\n         line 35: 79\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      80     0  this   Ldev/langchain4j/store/embedding/CosineSimilarityTest;\n            20      60     1 embeddingA   Ldev/langchain4j/data/embedding/Embedding;\n            41      39     2 embeddingB   Ldev/langchain4j/data/embedding/Embedding;\n     RuntimeVisibleAnnotations:\n-      0: #35()\n+      0: #85()\n         org.junit.jupiter.api.Test\n \n   void should_convert_relevance_score_into_cosine_similarity();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=3, locals=1, args_size=1\n          0: aload_0\n          1: dconst_0\n-         2: invokestatic  #16                 // Method dev/langchain4j/store/embedding/CosineSimilarity.fromRelevanceScore:(D)D\n-         5: invokevirtual #10                 // Method assertThat:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n-         8: ldc2_w        #14                 // double -1.0d\n-        11: invokevirtual #17                 // Method org/assertj/core/api/AbstractDoubleAssert.isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+         2: invokestatic  #64                 // Method dev/langchain4j/store/embedding/CosineSimilarity.fromRelevanceScore:(D)D\n+         5: invokevirtual #45                 // Method assertThat:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+         8: ldc2_w        #62                 // double -1.0d\n+        11: invokevirtual #68                 // Method org/assertj/core/api/AbstractDoubleAssert.isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n         14: pop\n         15: aload_0\n-        16: ldc2_w        #18                 // double 0.5d\n-        19: invokestatic  #16                 // Method dev/langchain4j/store/embedding/CosineSimilarity.fromRelevanceScore:(D)D\n-        22: invokevirtual #10                 // Method assertThat:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+        16: ldc2_w        #71                 // double 0.5d\n+        19: invokestatic  #64                 // Method dev/langchain4j/store/embedding/CosineSimilarity.fromRelevanceScore:(D)D\n+        22: invokevirtual #45                 // Method assertThat:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n         25: dconst_0\n-        26: invokevirtual #17                 // Method org/assertj/core/api/AbstractDoubleAssert.isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+        26: invokevirtual #68                 // Method org/assertj/core/api/AbstractDoubleAssert.isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n         29: pop\n         30: aload_0\n         31: dconst_1\n-        32: invokestatic  #16                 // Method dev/langchain4j/store/embedding/CosineSimilarity.fromRelevanceScore:(D)D\n-        35: invokevirtual #10                 // Method assertThat:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+        32: invokestatic  #64                 // Method dev/langchain4j/store/embedding/CosineSimilarity.fromRelevanceScore:(D)D\n+        35: invokevirtual #45                 // Method assertThat:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n         38: dconst_1\n-        39: invokevirtual #17                 // Method org/assertj/core/api/AbstractDoubleAssert.isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+        39: invokevirtual #68                 // Method org/assertj/core/api/AbstractDoubleAssert.isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n         42: pop\n         43: return\n       LineNumberTable:\n         line 39: 0\n         line 40: 15\n         line 41: 30\n         line 42: 43\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      44     0  this   Ldev/langchain4j/store/embedding/CosineSimilarityTest;\n     RuntimeVisibleAnnotations:\n-      0: #35()\n+      0: #85()\n         org.junit.jupiter.api.Test\n \n   private static void lambda$test_bad$0(dev.langchain4j.data.embedding.Embedding, dev.langchain4j.data.embedding.Embedding) throws java.lang.Throwable;\n     descriptor: (Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)V\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: invokestatic  #9                  // Method dev/langchain4j/store/embedding/CosineSimilarity.between:(Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)D\n+         2: invokestatic  #39                 // Method dev/langchain4j/store/embedding/CosineSimilarity.between:(Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)D\n          5: pop2\n          6: return\n       LineNumberTable:\n         line 16: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0 embeddingA   Ldev/langchain4j/data/embedding/Embedding;\n             0       7     1 embeddingB   Ldev/langchain4j/data/embedding/Embedding;\n     Exceptions:\n       throws java.lang.Throwable\n }\n SourceFile: \"CosineSimilarityTest.java\"\n-InnerClasses:\n-  public static #82= #81 of #108;         // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n-  public static final #113= #112 of #116; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n BootstrapMethods:\n-  0: #51 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  0: #97 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #52 ()V\n-      #53 REF_invokeStatic dev/langchain4j/store/embedding/CosineSimilarityTest.lambda$test_bad$0:(Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)V\n-      #52 ()V\n+      #104 ()V\n+      #105 REF_invokeStatic dev/langchain4j/store/embedding/CosineSimilarityTest.lambda$test_bad$0:(Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)V\n+      #104 ()V\n+InnerClasses:\n+  public static #113= #109 of #111;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n+  public static final #118= #114 of #116; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n"}]}, {"source1": "dev/langchain4j/store/embedding/EmbeddingMatchTest.class", "source2": "dev/langchain4j/store/embedding/EmbeddingMatchTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,140 +1,140 @@\n-  SHA-256 checksum 61bb31feace455b4435bf78f1726652729e162b00cd42f51bc6dd2c76e8f92e4\n+  SHA-256 checksum fc0b5b68079c64751740caa4e66cb79c58cbcf1dc184e590c395a0279ded849f\n   Compiled from \"EmbeddingMatchTest.java\"\n class dev.langchain4j.store.embedding.EmbeddingMatchTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n   this_class: #37                         // dev/langchain4j/store/embedding/EmbeddingMatchTest\n-  super_class: #30                        // java/lang/Object\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 3, attributes: 1\n Constant pool:\n-    #1 = Methodref          #30.#58       // java/lang/Object.\"<init>\":()V\n-    #2 = Class              #59           // dev/langchain4j/store/embedding/EmbeddingMatch\n-    #3 = Double             0.5d\n-    #5 = Methodref          #60.#61       // java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-    #6 = String             #62           // embeddingId\n-    #7 = Float              3.5f\n-    #8 = Float              -2.0f\n-    #9 = Methodref          #63.#64       // dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n-   #10 = String             #65           // abc\n-   #11 = Methodref          #2.#66        // dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n-   #12 = Methodref          #2.#67        // dev/langchain4j/store/embedding/EmbeddingMatch.score:()Ljava/lang/Double;\n-   #13 = Methodref          #37.#68       // dev/langchain4j/store/embedding/EmbeddingMatchTest.assertThat:(Ljava/lang/Double;)Lorg/assertj/core/api/AbstractDoubleAssert;\n-   #14 = Methodref          #69.#70       // org/assertj/core/api/AbstractDoubleAssert.isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n-   #15 = Methodref          #2.#71        // dev/langchain4j/store/embedding/EmbeddingMatch.embeddingId:()Ljava/lang/String;\n-   #16 = Methodref          #37.#72       // dev/langchain4j/store/embedding/EmbeddingMatchTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #17 = Methodref          #73.#74       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #18 = Methodref          #2.#75        // dev/langchain4j/store/embedding/EmbeddingMatch.embedding:()Ldev/langchain4j/data/embedding/Embedding;\n-   #19 = Methodref          #63.#76       // dev/langchain4j/data/embedding/Embedding.vector:()[F\n-   #20 = Methodref          #37.#77       // dev/langchain4j/store/embedding/EmbeddingMatchTest.assertThat:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n-   #21 = Methodref          #78.#79       // org/assertj/core/api/AbstractFloatArrayAssert.contains:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n-   #22 = Methodref          #2.#80        // dev/langchain4j/store/embedding/EmbeddingMatch.embedded:()Ljava/lang/Object;\n-   #23 = Class              #81           // java/lang/String\n-   #24 = Methodref          #37.#82       // dev/langchain4j/store/embedding/EmbeddingMatchTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #25 = String             #83           // EmbeddingMatch { score = 0.5, embedded = abc, embeddingId = embeddingId, embedding = Embedding { vector = [3.5, -2.0] } }\n-   #26 = Methodref          #28.#84       // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-   #27 = Methodref          #28.#85       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #28 = Class              #86           // org/assertj/core/api/ObjectAssert\n-   #29 = Methodref          #28.#87       // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #30 = Class              #88           // java/lang/Object\n-   #31 = Methodref          #28.#89       // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #32 = Double             0.2d\n-   #34 = String             #90           // changed\n-   #35 = Float              8.5f\n-   #36 = String             #91           // xyz\n-   #37 = Class              #92           // dev/langchain4j/store/embedding/EmbeddingMatchTest\n-   #38 = Class              #93           // org/assertj/core/api/WithAssertions\n-   #39 = Utf8               <init>\n-   #40 = Utf8               ()V\n-   #41 = Utf8               Code\n-   #42 = Utf8               LineNumberTable\n-   #43 = Utf8               LocalVariableTable\n-   #44 = Utf8               this\n-   #45 = Utf8               Ldev/langchain4j/store/embedding/EmbeddingMatchTest;\n-   #46 = Utf8               test\n-   #47 = Utf8               em\n-   #48 = Utf8               Ldev/langchain4j/store/embedding/EmbeddingMatch;\n-   #49 = Utf8               LocalVariableTypeTable\n-   #50 = Utf8               Ldev/langchain4j/store/embedding/EmbeddingMatch<Ljava/lang/String;>;\n-   #51 = Utf8               RuntimeVisibleAnnotations\n-   #52 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #53 = Utf8               test_equals_hash\n-   #54 = Utf8               em1\n-   #55 = Utf8               em2\n-   #56 = Utf8               SourceFile\n-   #57 = Utf8               EmbeddingMatchTest.java\n-   #58 = NameAndType        #39:#40       // \"<init>\":()V\n-   #59 = Utf8               dev/langchain4j/store/embedding/EmbeddingMatch\n-   #60 = Class              #94           // java/lang/Double\n-   #61 = NameAndType        #95:#96       // valueOf:(D)Ljava/lang/Double;\n-   #62 = Utf8               embeddingId\n-   #63 = Class              #97           // dev/langchain4j/data/embedding/Embedding\n-   #64 = NameAndType        #98:#99       // from:([F)Ldev/langchain4j/data/embedding/Embedding;\n-   #65 = Utf8               abc\n-   #66 = NameAndType        #39:#100      // \"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n-   #67 = NameAndType        #101:#102     // score:()Ljava/lang/Double;\n-   #68 = NameAndType        #103:#104     // assertThat:(Ljava/lang/Double;)Lorg/assertj/core/api/AbstractDoubleAssert;\n-   #69 = Class              #105          // org/assertj/core/api/AbstractDoubleAssert\n-   #70 = NameAndType        #106:#107     // isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n-   #71 = NameAndType        #62:#108      // embeddingId:()Ljava/lang/String;\n-   #72 = NameAndType        #103:#109     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #73 = Class              #110          // org/assertj/core/api/AbstractStringAssert\n-   #74 = NameAndType        #106:#109     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #75 = NameAndType        #111:#112     // embedding:()Ldev/langchain4j/data/embedding/Embedding;\n-   #76 = NameAndType        #113:#114     // vector:()[F\n-   #77 = NameAndType        #103:#115     // assertThat:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n-   #78 = Class              #116          // org/assertj/core/api/AbstractFloatArrayAssert\n-   #79 = NameAndType        #117:#115     // contains:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n-   #80 = NameAndType        #118:#119     // embedded:()Ljava/lang/Object;\n-   #81 = Utf8               java/lang/String\n-   #82 = NameAndType        #103:#120     // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #83 = Utf8               EmbeddingMatch { score = 0.5, embedded = abc, embeddingId = embeddingId, embedding = Embedding { vector = [3.5, -2.0] } }\n-   #84 = NameAndType        #121:#122     // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-   #85 = NameAndType        #106:#123     // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #86 = Utf8               org/assertj/core/api/ObjectAssert\n-   #87 = NameAndType        #124:#123     // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #88 = Utf8               java/lang/Object\n-   #89 = NameAndType        #125:#123     // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #90 = Utf8               changed\n-   #91 = Utf8               xyz\n-   #92 = Utf8               dev/langchain4j/store/embedding/EmbeddingMatchTest\n-   #93 = Utf8               org/assertj/core/api/WithAssertions\n-   #94 = Utf8               java/lang/Double\n-   #95 = Utf8               valueOf\n-   #96 = Utf8               (D)Ljava/lang/Double;\n-   #97 = Utf8               dev/langchain4j/data/embedding/Embedding\n-   #98 = Utf8               from\n-   #99 = Utf8               ([F)Ldev/langchain4j/data/embedding/Embedding;\n-  #100 = Utf8               (Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n-  #101 = Utf8               score\n-  #102 = Utf8               ()Ljava/lang/Double;\n-  #103 = Utf8               assertThat\n-  #104 = Utf8               (Ljava/lang/Double;)Lorg/assertj/core/api/AbstractDoubleAssert;\n-  #105 = Utf8               org/assertj/core/api/AbstractDoubleAssert\n-  #106 = Utf8               isEqualTo\n-  #107 = Utf8               (D)Lorg/assertj/core/api/AbstractDoubleAssert;\n-  #108 = Utf8               ()Ljava/lang/String;\n-  #109 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #110 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #111 = Utf8               embedding\n-  #112 = Utf8               ()Ldev/langchain4j/data/embedding/Embedding;\n-  #113 = Utf8               vector\n-  #114 = Utf8               ()[F\n-  #115 = Utf8               ([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n-  #116 = Utf8               org/assertj/core/api/AbstractFloatArrayAssert\n-  #117 = Utf8               contains\n-  #118 = Utf8               embedded\n-  #119 = Utf8               ()Ljava/lang/Object;\n-  #120 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #121 = Utf8               hasToString\n-  #122 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-  #123 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #124 = Utf8               isNotEqualTo\n-  #125 = Utf8               hasSameHashCodeAs\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Class              #8            // dev/langchain4j/store/embedding/EmbeddingMatch\n+    #8 = Utf8               dev/langchain4j/store/embedding/EmbeddingMatch\n+    #9 = Double             0.5d\n+   #11 = Methodref          #12.#13       // java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+   #12 = Class              #14           // java/lang/Double\n+   #13 = NameAndType        #15:#16       // valueOf:(D)Ljava/lang/Double;\n+   #14 = Utf8               java/lang/Double\n+   #15 = Utf8               valueOf\n+   #16 = Utf8               (D)Ljava/lang/Double;\n+   #17 = String             #18           // embeddingId\n+   #18 = Utf8               embeddingId\n+   #19 = Float              3.5f\n+   #20 = Float              -2.0f\n+   #21 = Methodref          #22.#23       // dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n+   #22 = Class              #24           // dev/langchain4j/data/embedding/Embedding\n+   #23 = NameAndType        #25:#26       // from:([F)Ldev/langchain4j/data/embedding/Embedding;\n+   #24 = Utf8               dev/langchain4j/data/embedding/Embedding\n+   #25 = Utf8               from\n+   #26 = Utf8               ([F)Ldev/langchain4j/data/embedding/Embedding;\n+   #27 = String             #28           // abc\n+   #28 = Utf8               abc\n+   #29 = Methodref          #7.#30        // dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+   #30 = NameAndType        #5:#31        // \"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+   #31 = Utf8               (Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+   #32 = Methodref          #7.#33        // dev/langchain4j/store/embedding/EmbeddingMatch.score:()Ljava/lang/Double;\n+   #33 = NameAndType        #34:#35       // score:()Ljava/lang/Double;\n+   #34 = Utf8               score\n+   #35 = Utf8               ()Ljava/lang/Double;\n+   #36 = Methodref          #37.#38       // dev/langchain4j/store/embedding/EmbeddingMatchTest.assertThat:(Ljava/lang/Double;)Lorg/assertj/core/api/AbstractDoubleAssert;\n+   #37 = Class              #39           // dev/langchain4j/store/embedding/EmbeddingMatchTest\n+   #38 = NameAndType        #40:#41       // assertThat:(Ljava/lang/Double;)Lorg/assertj/core/api/AbstractDoubleAssert;\n+   #39 = Utf8               dev/langchain4j/store/embedding/EmbeddingMatchTest\n+   #40 = Utf8               assertThat\n+   #41 = Utf8               (Ljava/lang/Double;)Lorg/assertj/core/api/AbstractDoubleAssert;\n+   #42 = Methodref          #43.#44       // org/assertj/core/api/AbstractDoubleAssert.isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+   #43 = Class              #45           // org/assertj/core/api/AbstractDoubleAssert\n+   #44 = NameAndType        #46:#47       // isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+   #45 = Utf8               org/assertj/core/api/AbstractDoubleAssert\n+   #46 = Utf8               isEqualTo\n+   #47 = Utf8               (D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+   #48 = Methodref          #7.#49        // dev/langchain4j/store/embedding/EmbeddingMatch.embeddingId:()Ljava/lang/String;\n+   #49 = NameAndType        #18:#50       // embeddingId:()Ljava/lang/String;\n+   #50 = Utf8               ()Ljava/lang/String;\n+   #51 = Methodref          #37.#52       // dev/langchain4j/store/embedding/EmbeddingMatchTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #52 = NameAndType        #40:#53       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #53 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #54 = Methodref          #55.#56       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #55 = Class              #57           // org/assertj/core/api/AbstractStringAssert\n+   #56 = NameAndType        #46:#53       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #57 = Utf8               org/assertj/core/api/AbstractStringAssert\n+   #58 = Methodref          #7.#59        // dev/langchain4j/store/embedding/EmbeddingMatch.embedding:()Ldev/langchain4j/data/embedding/Embedding;\n+   #59 = NameAndType        #60:#61       // embedding:()Ldev/langchain4j/data/embedding/Embedding;\n+   #60 = Utf8               embedding\n+   #61 = Utf8               ()Ldev/langchain4j/data/embedding/Embedding;\n+   #62 = Methodref          #22.#63       // dev/langchain4j/data/embedding/Embedding.vector:()[F\n+   #63 = NameAndType        #64:#65       // vector:()[F\n+   #64 = Utf8               vector\n+   #65 = Utf8               ()[F\n+   #66 = Methodref          #37.#67       // dev/langchain4j/store/embedding/EmbeddingMatchTest.assertThat:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n+   #67 = NameAndType        #40:#68       // assertThat:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n+   #68 = Utf8               ([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n+   #69 = Methodref          #70.#71       // org/assertj/core/api/AbstractFloatArrayAssert.contains:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n+   #70 = Class              #72           // org/assertj/core/api/AbstractFloatArrayAssert\n+   #71 = NameAndType        #73:#68       // contains:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n+   #72 = Utf8               org/assertj/core/api/AbstractFloatArrayAssert\n+   #73 = Utf8               contains\n+   #74 = Methodref          #7.#75        // dev/langchain4j/store/embedding/EmbeddingMatch.embedded:()Ljava/lang/Object;\n+   #75 = NameAndType        #76:#77       // embedded:()Ljava/lang/Object;\n+   #76 = Utf8               embedded\n+   #77 = Utf8               ()Ljava/lang/Object;\n+   #78 = Class              #79           // java/lang/String\n+   #79 = Utf8               java/lang/String\n+   #80 = Methodref          #37.#81       // dev/langchain4j/store/embedding/EmbeddingMatchTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #81 = NameAndType        #40:#82       // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #82 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #83 = String             #84           // EmbeddingMatch { score = 0.5, embedded = abc, embeddingId = embeddingId, embedding = Embedding { vector = [3.5, -2.0] } }\n+   #84 = Utf8               EmbeddingMatch { score = 0.5, embedded = abc, embeddingId = embeddingId, embedding = Embedding { vector = [3.5, -2.0] } }\n+   #85 = Methodref          #86.#87       // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #86 = Class              #88           // org/assertj/core/api/ObjectAssert\n+   #87 = NameAndType        #89:#90       // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #88 = Utf8               org/assertj/core/api/ObjectAssert\n+   #89 = Utf8               hasToString\n+   #90 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #91 = Methodref          #86.#92       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #92 = NameAndType        #46:#93       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #93 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #94 = Methodref          #86.#95       // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #95 = NameAndType        #96:#93       // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #96 = Utf8               isNotEqualTo\n+   #97 = Methodref          #86.#98       // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #98 = NameAndType        #99:#93       // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #99 = Utf8               hasSameHashCodeAs\n+  #100 = Double             0.2d\n+  #102 = String             #103          // changed\n+  #103 = Utf8               changed\n+  #104 = Float              8.5f\n+  #105 = String             #106          // xyz\n+  #106 = Utf8               xyz\n+  #107 = Class              #108          // org/assertj/core/api/WithAssertions\n+  #108 = Utf8               org/assertj/core/api/WithAssertions\n+  #109 = Utf8               Code\n+  #110 = Utf8               LineNumberTable\n+  #111 = Utf8               LocalVariableTable\n+  #112 = Utf8               this\n+  #113 = Utf8               Ldev/langchain4j/store/embedding/EmbeddingMatchTest;\n+  #114 = Utf8               test\n+  #115 = Utf8               em\n+  #116 = Utf8               Ldev/langchain4j/store/embedding/EmbeddingMatch;\n+  #117 = Utf8               LocalVariableTypeTable\n+  #118 = Utf8               Ldev/langchain4j/store/embedding/EmbeddingMatch<Ljava/lang/String;>;\n+  #119 = Utf8               RuntimeVisibleAnnotations\n+  #120 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #121 = Utf8               test_equals_hash\n+  #122 = Utf8               em1\n+  #123 = Utf8               em2\n+  #124 = Utf8               SourceFile\n+  #125 = Utf8               EmbeddingMatchTest.java\n {\n   dev.langchain4j.store.embedding.EmbeddingMatchTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -147,77 +147,77 @@\n             0       5     0  this   Ldev/langchain4j/store/embedding/EmbeddingMatchTest;\n \n   public void test();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=8, locals=2, args_size=1\n-         0: new           #2                  // class dev/langchain4j/store/embedding/EmbeddingMatch\n+         0: new           #7                  // class dev/langchain4j/store/embedding/EmbeddingMatch\n          3: dup\n-         4: ldc2_w        #3                  // double 0.5d\n-         7: invokestatic  #5                  // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-        10: ldc           #6                  // String embeddingId\n+         4: ldc2_w        #9                  // double 0.5d\n+         7: invokestatic  #11                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+        10: ldc           #17                 // String embeddingId\n         12: iconst_2\n         13: newarray       float\n         15: dup\n         16: iconst_0\n-        17: ldc           #7                  // float 3.5f\n+        17: ldc           #19                 // float 3.5f\n         19: fastore\n         20: dup\n         21: iconst_1\n-        22: ldc           #8                  // float -2.0f\n+        22: ldc           #20                 // float -2.0f\n         24: fastore\n-        25: invokestatic  #9                  // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n-        28: ldc           #10                 // String abc\n-        30: invokespecial #11                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+        25: invokestatic  #21                 // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n+        28: ldc           #27                 // String abc\n+        30: invokespecial #29                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n         33: astore_1\n         34: aload_0\n         35: aload_1\n-        36: invokevirtual #12                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.score:()Ljava/lang/Double;\n-        39: invokevirtual #13                 // Method assertThat:(Ljava/lang/Double;)Lorg/assertj/core/api/AbstractDoubleAssert;\n-        42: ldc2_w        #3                  // double 0.5d\n-        45: invokevirtual #14                 // Method org/assertj/core/api/AbstractDoubleAssert.isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+        36: invokevirtual #32                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.score:()Ljava/lang/Double;\n+        39: invokevirtual #36                 // Method assertThat:(Ljava/lang/Double;)Lorg/assertj/core/api/AbstractDoubleAssert;\n+        42: ldc2_w        #9                  // double 0.5d\n+        45: invokevirtual #42                 // Method org/assertj/core/api/AbstractDoubleAssert.isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n         48: pop\n         49: aload_0\n         50: aload_1\n-        51: invokevirtual #15                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.embeddingId:()Ljava/lang/String;\n-        54: invokevirtual #16                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        57: ldc           #6                  // String embeddingId\n-        59: invokevirtual #17                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        51: invokevirtual #48                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.embeddingId:()Ljava/lang/String;\n+        54: invokevirtual #51                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        57: ldc           #17                 // String embeddingId\n+        59: invokevirtual #54                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         62: pop\n         63: aload_0\n         64: aload_1\n-        65: invokevirtual #18                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.embedding:()Ldev/langchain4j/data/embedding/Embedding;\n-        68: invokevirtual #19                 // Method dev/langchain4j/data/embedding/Embedding.vector:()[F\n-        71: invokevirtual #20                 // Method assertThat:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n+        65: invokevirtual #58                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.embedding:()Ldev/langchain4j/data/embedding/Embedding;\n+        68: invokevirtual #62                 // Method dev/langchain4j/data/embedding/Embedding.vector:()[F\n+        71: invokevirtual #66                 // Method assertThat:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n         74: iconst_2\n         75: newarray       float\n         77: dup\n         78: iconst_0\n-        79: ldc           #7                  // float 3.5f\n+        79: ldc           #19                 // float 3.5f\n         81: fastore\n         82: dup\n         83: iconst_1\n-        84: ldc           #8                  // float -2.0f\n+        84: ldc           #20                 // float -2.0f\n         86: fastore\n-        87: invokevirtual #21                 // Method org/assertj/core/api/AbstractFloatArrayAssert.contains:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n+        87: invokevirtual #69                 // Method org/assertj/core/api/AbstractFloatArrayAssert.contains:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n         90: pop\n         91: aload_0\n         92: aload_1\n-        93: invokevirtual #22                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.embedded:()Ljava/lang/Object;\n-        96: checkcast     #23                 // class java/lang/String\n-        99: invokevirtual #16                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       102: ldc           #10                 // String abc\n-       104: invokevirtual #17                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        93: invokevirtual #74                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.embedded:()Ljava/lang/Object;\n+        96: checkcast     #78                 // class java/lang/String\n+        99: invokevirtual #51                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       102: ldc           #27                 // String abc\n+       104: invokevirtual #54                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n        107: pop\n        108: aload_0\n        109: aload_1\n-       110: invokevirtual #24                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-       113: ldc           #25                 // String EmbeddingMatch { score = 0.5, embedded = abc, embeddingId = embeddingId, embedding = Embedding { vector = [3.5, -2.0] } }\n-       115: invokevirtual #26                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+       110: invokevirtual #80                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       113: ldc           #83                 // String EmbeddingMatch { score = 0.5, embedded = abc, embeddingId = embeddingId, embedding = Embedding { vector = [3.5, -2.0] } }\n+       115: invokevirtual #85                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n        118: pop\n        119: return\n       LineNumberTable:\n         line 10: 0\n         line 11: 7\n         line 13: 34\n         line 14: 49\n@@ -229,171 +229,171 @@\n         Start  Length  Slot  Name   Signature\n             0     120     0  this   Ldev/langchain4j/store/embedding/EmbeddingMatchTest;\n            34      86     1    em   Ldev/langchain4j/store/embedding/EmbeddingMatch;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            34      86     1    em   Ldev/langchain4j/store/embedding/EmbeddingMatch<Ljava/lang/String;>;\n     RuntimeVisibleAnnotations:\n-      0: #52()\n+      0: #120()\n         org.junit.jupiter.api.Test\n \n   public void test_equals_hash();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=9, locals=3, args_size=1\n-         0: new           #2                  // class dev/langchain4j/store/embedding/EmbeddingMatch\n+         0: new           #7                  // class dev/langchain4j/store/embedding/EmbeddingMatch\n          3: dup\n-         4: ldc2_w        #3                  // double 0.5d\n-         7: invokestatic  #5                  // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-        10: ldc           #6                  // String embeddingId\n+         4: ldc2_w        #9                  // double 0.5d\n+         7: invokestatic  #11                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+        10: ldc           #17                 // String embeddingId\n         12: iconst_2\n         13: newarray       float\n         15: dup\n         16: iconst_0\n-        17: ldc           #7                  // float 3.5f\n+        17: ldc           #19                 // float 3.5f\n         19: fastore\n         20: dup\n         21: iconst_1\n-        22: ldc           #8                  // float -2.0f\n+        22: ldc           #20                 // float -2.0f\n         24: fastore\n-        25: invokestatic  #9                  // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n-        28: ldc           #10                 // String abc\n-        30: invokespecial #11                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+        25: invokestatic  #21                 // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n+        28: ldc           #27                 // String abc\n+        30: invokespecial #29                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n         33: astore_1\n-        34: new           #2                  // class dev/langchain4j/store/embedding/EmbeddingMatch\n+        34: new           #7                  // class dev/langchain4j/store/embedding/EmbeddingMatch\n         37: dup\n-        38: ldc2_w        #3                  // double 0.5d\n-        41: invokestatic  #5                  // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-        44: ldc           #6                  // String embeddingId\n+        38: ldc2_w        #9                  // double 0.5d\n+        41: invokestatic  #11                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+        44: ldc           #17                 // String embeddingId\n         46: iconst_2\n         47: newarray       float\n         49: dup\n         50: iconst_0\n-        51: ldc           #7                  // float 3.5f\n+        51: ldc           #19                 // float 3.5f\n         53: fastore\n         54: dup\n         55: iconst_1\n-        56: ldc           #8                  // float -2.0f\n+        56: ldc           #20                 // float -2.0f\n         58: fastore\n-        59: invokestatic  #9                  // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n-        62: ldc           #10                 // String abc\n-        64: invokespecial #11                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+        59: invokestatic  #21                 // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n+        62: ldc           #27                 // String abc\n+        64: invokespecial #29                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n         67: astore_2\n         68: aload_0\n         69: aload_1\n-        70: invokevirtual #24                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        70: invokevirtual #80                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         73: aload_1\n-        74: invokevirtual #27                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        77: checkcast     #28                 // class org/assertj/core/api/ObjectAssert\n+        74: invokevirtual #91                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        77: checkcast     #86                 // class org/assertj/core/api/ObjectAssert\n         80: aconst_null\n-        81: invokevirtual #29                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        84: checkcast     #28                 // class org/assertj/core/api/ObjectAssert\n-        87: new           #30                 // class java/lang/Object\n+        81: invokevirtual #94                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        84: checkcast     #86                 // class org/assertj/core/api/ObjectAssert\n+        87: new           #2                  // class java/lang/Object\n         90: dup\n         91: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n-        94: invokevirtual #29                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        97: checkcast     #28                 // class org/assertj/core/api/ObjectAssert\n+        94: invokevirtual #94                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        97: checkcast     #86                 // class org/assertj/core/api/ObjectAssert\n        100: aload_2\n-       101: invokevirtual #27                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       104: checkcast     #28                 // class org/assertj/core/api/ObjectAssert\n+       101: invokevirtual #91                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       104: checkcast     #86                 // class org/assertj/core/api/ObjectAssert\n        107: aload_2\n-       108: invokevirtual #31                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       108: invokevirtual #97                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        111: pop\n        112: aload_0\n-       113: new           #2                  // class dev/langchain4j/store/embedding/EmbeddingMatch\n+       113: new           #7                  // class dev/langchain4j/store/embedding/EmbeddingMatch\n        116: dup\n-       117: ldc2_w        #32                 // double 0.2d\n-       120: invokestatic  #5                  // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-       123: ldc           #6                  // String embeddingId\n+       117: ldc2_w        #100                // double 0.2d\n+       120: invokestatic  #11                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+       123: ldc           #17                 // String embeddingId\n        125: iconst_2\n        126: newarray       float\n        128: dup\n        129: iconst_0\n-       130: ldc           #7                  // float 3.5f\n+       130: ldc           #19                 // float 3.5f\n        132: fastore\n        133: dup\n        134: iconst_1\n-       135: ldc           #8                  // float -2.0f\n+       135: ldc           #20                 // float -2.0f\n        137: fastore\n-       138: invokestatic  #9                  // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n-       141: ldc           #10                 // String abc\n-       143: invokespecial #11                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n-       146: invokevirtual #24                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       138: invokestatic  #21                 // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n+       141: ldc           #27                 // String abc\n+       143: invokespecial #29                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+       146: invokevirtual #80                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        149: aload_1\n-       150: invokevirtual #29                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       150: invokevirtual #94                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        153: pop\n        154: aload_0\n-       155: new           #2                  // class dev/langchain4j/store/embedding/EmbeddingMatch\n+       155: new           #7                  // class dev/langchain4j/store/embedding/EmbeddingMatch\n        158: dup\n-       159: ldc2_w        #3                  // double 0.5d\n-       162: invokestatic  #5                  // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-       165: ldc           #34                 // String changed\n+       159: ldc2_w        #9                  // double 0.5d\n+       162: invokestatic  #11                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+       165: ldc           #102                // String changed\n        167: iconst_2\n        168: newarray       float\n        170: dup\n        171: iconst_0\n-       172: ldc           #7                  // float 3.5f\n+       172: ldc           #19                 // float 3.5f\n        174: fastore\n        175: dup\n        176: iconst_1\n-       177: ldc           #8                  // float -2.0f\n+       177: ldc           #20                 // float -2.0f\n        179: fastore\n-       180: invokestatic  #9                  // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n-       183: ldc           #10                 // String abc\n-       185: invokespecial #11                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n-       188: invokevirtual #24                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       180: invokestatic  #21                 // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n+       183: ldc           #27                 // String abc\n+       185: invokespecial #29                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+       188: invokevirtual #80                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        191: aload_1\n-       192: invokevirtual #29                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       192: invokevirtual #94                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        195: pop\n        196: aload_0\n-       197: new           #2                  // class dev/langchain4j/store/embedding/EmbeddingMatch\n+       197: new           #7                  // class dev/langchain4j/store/embedding/EmbeddingMatch\n        200: dup\n-       201: ldc2_w        #3                  // double 0.5d\n-       204: invokestatic  #5                  // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-       207: ldc           #6                  // String embeddingId\n+       201: ldc2_w        #9                  // double 0.5d\n+       204: invokestatic  #11                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+       207: ldc           #17                 // String embeddingId\n        209: iconst_2\n        210: newarray       float\n        212: dup\n        213: iconst_0\n-       214: ldc           #35                 // float 8.5f\n+       214: ldc           #104                // float 8.5f\n        216: fastore\n        217: dup\n        218: iconst_1\n-       219: ldc           #8                  // float -2.0f\n+       219: ldc           #20                 // float -2.0f\n        221: fastore\n-       222: invokestatic  #9                  // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n-       225: ldc           #10                 // String abc\n-       227: invokespecial #11                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n-       230: invokevirtual #24                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       222: invokestatic  #21                 // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n+       225: ldc           #27                 // String abc\n+       227: invokespecial #29                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+       230: invokevirtual #80                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        233: aload_1\n-       234: invokevirtual #29                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       234: invokevirtual #94                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        237: pop\n        238: aload_0\n-       239: new           #2                  // class dev/langchain4j/store/embedding/EmbeddingMatch\n+       239: new           #7                  // class dev/langchain4j/store/embedding/EmbeddingMatch\n        242: dup\n-       243: ldc2_w        #3                  // double 0.5d\n-       246: invokestatic  #5                  // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-       249: ldc           #6                  // String embeddingId\n+       243: ldc2_w        #9                  // double 0.5d\n+       246: invokestatic  #11                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+       249: ldc           #17                 // String embeddingId\n        251: iconst_2\n        252: newarray       float\n        254: dup\n        255: iconst_0\n-       256: ldc           #7                  // float 3.5f\n+       256: ldc           #19                 // float 3.5f\n        258: fastore\n        259: dup\n        260: iconst_1\n-       261: ldc           #8                  // float -2.0f\n+       261: ldc           #20                 // float -2.0f\n        263: fastore\n-       264: invokestatic  #9                  // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n-       267: ldc           #36                 // String xyz\n-       269: invokespecial #11                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n-       272: invokevirtual #24                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       264: invokestatic  #21                 // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n+       267: ldc           #105                // String xyz\n+       269: invokespecial #29                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+       272: invokevirtual #80                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        275: aload_1\n-       276: invokevirtual #29                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       276: invokevirtual #94                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        279: pop\n        280: return\n       LineNumberTable:\n         line 23: 0\n         line 24: 7\n         line 25: 34\n         line 26: 41\n@@ -426,11 +426,11 @@\n            34     247     1   em1   Ldev/langchain4j/store/embedding/EmbeddingMatch;\n            68     213     2   em2   Ldev/langchain4j/store/embedding/EmbeddingMatch;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            34     247     1   em1   Ldev/langchain4j/store/embedding/EmbeddingMatch<Ljava/lang/String;>;\n            68     213     2   em2   Ldev/langchain4j/store/embedding/EmbeddingMatch<Ljava/lang/String;>;\n     RuntimeVisibleAnnotations:\n-      0: #52()\n+      0: #120()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"EmbeddingMatchTest.java\"\n"}]}, {"source1": "dev/langchain4j/store/embedding/EmbeddingStoreIT.class", "source2": "dev/langchain4j/store/embedding/EmbeddingStoreIT.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -23,10 +23,10 @@\n         this.awaitUntilPersisted();\n         final List<EmbeddingMatch<TextSegment>> relevant = this.embeddingStore().findRelevant(embedding, 1);\n         Assertions.assertThat((List)relevant).hasSize(1);\n         final EmbeddingMatch<TextSegment> match = (EmbeddingMatch<TextSegment>)relevant.get(0);\n         Assertions.assertThat(match.score()).isCloseTo(1.0, Percentage.withPercentage(1.0));\n         Assertions.assertThat(match.embeddingId()).isEqualTo(id);\n         Assertions.assertThat((Object)match.embedding()).isEqualTo((Object)embedding);\n-        Assertions.assertThat(match.embedded()).isEqualTo((Object)segment);\n+        Assertions.assertThat((Object)match.embedded()).isEqualTo((Object)segment);\n     }\n }\n"}]}, {"source1": "dev/langchain4j/store/embedding/EmbeddingStoreIngestorTest.class", "source2": "dev/langchain4j/store/embedding/EmbeddingStoreIngestorTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,212 +1,212 @@\n-  SHA-256 checksum e17ea7882211be542009f13a413fbeefae0c86c8f1e516a6da855381408d3e3a\n+  SHA-256 checksum 422215a8f7616525c4fa78640dc6d6b8d1f429da2f0b0a03233e92e6f3ee49bb\n   Compiled from \"EmbeddingStoreIngestorTest.java\"\n class dev.langchain4j.store.embedding.EmbeddingStoreIngestorTest\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #56                         // dev/langchain4j/store/embedding/EmbeddingStoreIngestorTest\n-  super_class: #52                        // java/lang/Object\n+  this_class: #167                        // dev/langchain4j/store/embedding/EmbeddingStoreIngestorTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 0, methods: 2, attributes: 2\n Constant pool:\n-    #1 = Methodref          #52.#89       // java/lang/Object.\"<init>\":()V\n-    #2 = String             #90           // First sentence.\n-    #3 = Methodref          #14.#91       // dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n-    #4 = String             #92           // Second sentence. Third sentence.\n-    #5 = String             #93           // Fourth sentence.\n-    #6 = String             #94           // Fifth sentence.\n-    #7 = String             #95           // Sixth Sentence\n-    #8 = Class              #96           // dev/langchain4j/data/document/DocumentTransformer\n-    #9 = Methodref          #97.#98       // org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-   #10 = Methodref          #99.#100      // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-   #11 = InterfaceMethodref #8.#101       // dev/langchain4j/data/document/DocumentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n-   #12 = Methodref          #97.#102      // org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n-   #13 = InterfaceMethodref #103.#104     // org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n-   #14 = Class              #105          // dev/langchain4j/data/document/Document\n-   #15 = Methodref          #106.#107     // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-   #16 = Class              #108          // dev/langchain4j/data/document/DocumentSplitter\n-   #17 = InterfaceMethodref #16.#109      // dev/langchain4j/data/document/DocumentSplitter.splitAll:(Ljava/util/List;)Ljava/util/List;\n-   #18 = Methodref          #19.#110      // dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-   #19 = Class              #111          // dev/langchain4j/data/segment/TextSegment\n-   #20 = String             #112          // Second sentence.\n-   #21 = String             #113          // Third sentence.\n-   #22 = String             #114          // Sixth sentence.\n-   #23 = Class              #115          // dev/langchain4j/data/segment/TextSegmentTransformer\n-   #24 = InterfaceMethodref #23.#101      // dev/langchain4j/data/segment/TextSegmentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n-   #25 = String             #116          // Transformed first sentence.\n-   #26 = String             #117          // Transformed second sentence.\n-   #27 = String             #118          // Transformed third sentence.\n-   #28 = String             #119          // Transformed fourth sentence.\n-   #29 = String             #120          // Transformed fifth sentence.\n-   #30 = String             #121          // Transformed sixth sentence.\n-   #31 = Class              #122          // dev/langchain4j/model/embedding/EmbeddingModel\n-   #32 = InterfaceMethodref #31.#123      // dev/langchain4j/model/embedding/EmbeddingModel.embedAll:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n-   #33 = Methodref          #35.#124      // dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n-   #34 = Methodref          #125.#126     // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-   #35 = Class              #127          // dev/langchain4j/data/embedding/Embedding\n-   #36 = Float              3.0f\n-   #37 = Float              4.0f\n-   #38 = Float              5.0f\n-   #39 = Float              6.0f\n-   #40 = Class              #128          // dev/langchain4j/store/embedding/EmbeddingStore\n-   #41 = Methodref          #129.#130     // dev/langchain4j/store/embedding/EmbeddingStoreIngestor.builder:()Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n-   #42 = Methodref          #131.#132     // dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder.documentTransformer:(Ldev/langchain4j/data/document/DocumentTransformer;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n-   #43 = Methodref          #131.#133     // dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder.documentSplitter:(Ldev/langchain4j/data/document/DocumentSplitter;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n-   #44 = Methodref          #131.#134     // dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder.textSegmentTransformer:(Ldev/langchain4j/data/segment/TextSegmentTransformer;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n-   #45 = Methodref          #131.#135     // dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder.embeddingModel:(Ldev/langchain4j/model/embedding/EmbeddingModel;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n-   #46 = Methodref          #131.#136     // dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder.embeddingStore:(Ldev/langchain4j/store/embedding/EmbeddingStore;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n-   #47 = Methodref          #131.#137     // dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder.build:()Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor;\n-   #48 = Methodref          #129.#138     // dev/langchain4j/store/embedding/EmbeddingStoreIngestor.ingest:(Ldev/langchain4j/data/document/Document;)V\n-   #49 = Methodref          #129.#139     // dev/langchain4j/store/embedding/EmbeddingStoreIngestor.ingest:([Ldev/langchain4j/data/document/Document;)V\n-   #50 = Methodref          #129.#140     // dev/langchain4j/store/embedding/EmbeddingStoreIngestor.ingest:(Ljava/util/List;)V\n-   #51 = Methodref          #97.#141      // org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-   #52 = Class              #142          // java/lang/Object\n-   #53 = Methodref          #97.#143      // org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n-   #54 = Methodref          #35.#144      // dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n-   #55 = InterfaceMethodref #40.#145      // dev/langchain4j/store/embedding/EmbeddingStore.addAll:(Ljava/util/List;Ljava/util/List;)Ljava/util/List;\n-   #56 = Class              #146          // dev/langchain4j/store/embedding/EmbeddingStoreIngestorTest\n-   #57 = Utf8               <init>\n-   #58 = Utf8               ()V\n-   #59 = Utf8               Code\n-   #60 = Utf8               LineNumberTable\n-   #61 = Utf8               LocalVariableTable\n-   #62 = Utf8               this\n-   #63 = Utf8               Ldev/langchain4j/store/embedding/EmbeddingStoreIngestorTest;\n-   #64 = Utf8               should_extract_text_then_split_into_segments_then_embed_them_and_store_in_embedding_store\n-   #65 = Utf8               firstDocument\n-   #66 = Utf8               Ldev/langchain4j/data/document/Document;\n-   #67 = Utf8               secondDocument\n-   #68 = Utf8               thirdDocument\n-   #69 = Utf8               fourthDocument\n-   #70 = Utf8               fifthDocument\n-   #71 = Utf8               documentTransformer\n-   #72 = Utf8               Ldev/langchain4j/data/document/DocumentTransformer;\n-   #73 = Utf8               documentSplitter\n-   #74 = Utf8               Ldev/langchain4j/data/document/DocumentSplitter;\n-   #75 = Utf8               textSegmentTransformer\n-   #76 = Utf8               Ldev/langchain4j/data/segment/TextSegmentTransformer;\n-   #77 = Utf8               embeddingModel\n-   #78 = Utf8               Ldev/langchain4j/model/embedding/EmbeddingModel;\n-   #79 = Utf8               embeddingStore\n-   #80 = Utf8               Ldev/langchain4j/store/embedding/EmbeddingStore;\n-   #81 = Utf8               ingestor\n-   #82 = Utf8               Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor;\n-   #83 = Utf8               LocalVariableTypeTable\n-   #84 = Utf8               Ldev/langchain4j/store/embedding/EmbeddingStore<Ldev/langchain4j/data/segment/TextSegment;>;\n-   #85 = Utf8               RuntimeVisibleAnnotations\n-   #86 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #87 = Utf8               SourceFile\n-   #88 = Utf8               EmbeddingStoreIngestorTest.java\n-   #89 = NameAndType        #57:#58       // \"<init>\":()V\n-   #90 = Utf8               First sentence.\n-   #91 = NameAndType        #147:#148     // from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n-   #92 = Utf8               Second sentence. Third sentence.\n-   #93 = Utf8               Fourth sentence.\n-   #94 = Utf8               Fifth sentence.\n-   #95 = Utf8               Sixth Sentence\n-   #96 = Utf8               dev/langchain4j/data/document/DocumentTransformer\n-   #97 = Class              #149          // org/mockito/Mockito\n-   #98 = NameAndType        #150:#151     // mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-   #99 = Class              #152          // java/util/Collections\n-  #100 = NameAndType        #153:#154     // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-  #101 = NameAndType        #155:#156     // transformAll:(Ljava/util/List;)Ljava/util/List;\n-  #102 = NameAndType        #157:#158     // when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n-  #103 = Class              #159          // org/mockito/stubbing/OngoingStubbing\n-  #104 = NameAndType        #160:#158     // thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n-  #105 = Utf8               dev/langchain4j/data/document/Document\n-  #106 = Class              #161          // java/util/Arrays\n-  #107 = NameAndType        #162:#163     // asList:([Ljava/lang/Object;)Ljava/util/List;\n-  #108 = Utf8               dev/langchain4j/data/document/DocumentSplitter\n-  #109 = NameAndType        #164:#156     // splitAll:(Ljava/util/List;)Ljava/util/List;\n-  #110 = NameAndType        #165:#166     // textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #111 = Utf8               dev/langchain4j/data/segment/TextSegment\n-  #112 = Utf8               Second sentence.\n-  #113 = Utf8               Third sentence.\n-  #114 = Utf8               Sixth sentence.\n-  #115 = Utf8               dev/langchain4j/data/segment/TextSegmentTransformer\n-  #116 = Utf8               Transformed first sentence.\n-  #117 = Utf8               Transformed second sentence.\n-  #118 = Utf8               Transformed third sentence.\n-  #119 = Utf8               Transformed fourth sentence.\n-  #120 = Utf8               Transformed fifth sentence.\n-  #121 = Utf8               Transformed sixth sentence.\n-  #122 = Utf8               dev/langchain4j/model/embedding/EmbeddingModel\n-  #123 = NameAndType        #167:#168     // embedAll:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n-  #124 = NameAndType        #147:#169     // from:([F)Ldev/langchain4j/data/embedding/Embedding;\n-  #125 = Class              #170          // dev/langchain4j/model/output/Response\n-  #126 = NameAndType        #147:#171     // from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-  #127 = Utf8               dev/langchain4j/data/embedding/Embedding\n-  #128 = Utf8               dev/langchain4j/store/embedding/EmbeddingStore\n-  #129 = Class              #172          // dev/langchain4j/store/embedding/EmbeddingStoreIngestor\n-  #130 = NameAndType        #173:#176     // builder:()Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n-  #131 = Class              #177          // dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder\n-  #132 = NameAndType        #71:#178      // documentTransformer:(Ldev/langchain4j/data/document/DocumentTransformer;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n-  #133 = NameAndType        #73:#179      // documentSplitter:(Ldev/langchain4j/data/document/DocumentSplitter;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n-  #134 = NameAndType        #75:#180      // textSegmentTransformer:(Ldev/langchain4j/data/segment/TextSegmentTransformer;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n-  #135 = NameAndType        #77:#181      // embeddingModel:(Ldev/langchain4j/model/embedding/EmbeddingModel;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n-  #136 = NameAndType        #79:#182      // embeddingStore:(Ldev/langchain4j/store/embedding/EmbeddingStore;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n-  #137 = NameAndType        #183:#184     // build:()Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor;\n-  #138 = NameAndType        #185:#186     // ingest:(Ldev/langchain4j/data/document/Document;)V\n-  #139 = NameAndType        #185:#187     // ingest:([Ldev/langchain4j/data/document/Document;)V\n-  #140 = NameAndType        #185:#188     // ingest:(Ljava/util/List;)V\n-  #141 = NameAndType        #189:#190     // verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-  #142 = Utf8               java/lang/Object\n-  #143 = NameAndType        #191:#192     // verifyNoMoreInteractions:([Ljava/lang/Object;)V\n-  #144 = NameAndType        #57:#193      // \"<init>\":([F)V\n-  #145 = NameAndType        #194:#195     // addAll:(Ljava/util/List;Ljava/util/List;)Ljava/util/List;\n-  #146 = Utf8               dev/langchain4j/store/embedding/EmbeddingStoreIngestorTest\n-  #147 = Utf8               from\n-  #148 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n-  #149 = Utf8               org/mockito/Mockito\n-  #150 = Utf8               mock\n-  #151 = Utf8               (Ljava/lang/Class;)Ljava/lang/Object;\n-  #152 = Utf8               java/util/Collections\n-  #153 = Utf8               singletonList\n-  #154 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n-  #155 = Utf8               transformAll\n-  #156 = Utf8               (Ljava/util/List;)Ljava/util/List;\n-  #157 = Utf8               when\n-  #158 = Utf8               (Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n-  #159 = Utf8               org/mockito/stubbing/OngoingStubbing\n-  #160 = Utf8               thenReturn\n-  #161 = Utf8               java/util/Arrays\n-  #162 = Utf8               asList\n-  #163 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n-  #164 = Utf8               splitAll\n-  #165 = Utf8               textSegment\n-  #166 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #167 = Utf8               embedAll\n-  #168 = Utf8               (Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n-  #169 = Utf8               ([F)Ldev/langchain4j/data/embedding/Embedding;\n-  #170 = Utf8               dev/langchain4j/model/output/Response\n-  #171 = Utf8               (Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-  #172 = Utf8               dev/langchain4j/store/embedding/EmbeddingStoreIngestor\n-  #173 = Utf8               builder\n-  #174 = Utf8               Builder\n-  #175 = Utf8               InnerClasses\n-  #176 = Utf8               ()Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n-  #177 = Utf8               dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder\n-  #178 = Utf8               (Ldev/langchain4j/data/document/DocumentTransformer;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n-  #179 = Utf8               (Ldev/langchain4j/data/document/DocumentSplitter;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n-  #180 = Utf8               (Ldev/langchain4j/data/segment/TextSegmentTransformer;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n-  #181 = Utf8               (Ldev/langchain4j/model/embedding/EmbeddingModel;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n-  #182 = Utf8               (Ldev/langchain4j/store/embedding/EmbeddingStore;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n-  #183 = Utf8               build\n-  #184 = Utf8               ()Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor;\n-  #185 = Utf8               ingest\n-  #186 = Utf8               (Ldev/langchain4j/data/document/Document;)V\n-  #187 = Utf8               ([Ldev/langchain4j/data/document/Document;)V\n-  #188 = Utf8               (Ljava/util/List;)V\n-  #189 = Utf8               verify\n-  #190 = Utf8               (Ljava/lang/Object;)Ljava/lang/Object;\n-  #191 = Utf8               verifyNoMoreInteractions\n-  #192 = Utf8               ([Ljava/lang/Object;)V\n-  #193 = Utf8               ([F)V\n-  #194 = Utf8               addAll\n-  #195 = Utf8               (Ljava/util/List;Ljava/util/List;)Ljava/util/List;\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = String             #8            // First sentence.\n+    #8 = Utf8               First sentence.\n+    #9 = Methodref          #10.#11       // dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+   #10 = Class              #12           // dev/langchain4j/data/document/Document\n+   #11 = NameAndType        #13:#14       // from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+   #12 = Utf8               dev/langchain4j/data/document/Document\n+   #13 = Utf8               from\n+   #14 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+   #15 = String             #16           // Second sentence. Third sentence.\n+   #16 = Utf8               Second sentence. Third sentence.\n+   #17 = String             #18           // Fourth sentence.\n+   #18 = Utf8               Fourth sentence.\n+   #19 = String             #20           // Fifth sentence.\n+   #20 = Utf8               Fifth sentence.\n+   #21 = String             #22           // Sixth Sentence\n+   #22 = Utf8               Sixth Sentence\n+   #23 = Class              #24           // dev/langchain4j/data/document/DocumentTransformer\n+   #24 = Utf8               dev/langchain4j/data/document/DocumentTransformer\n+   #25 = Methodref          #26.#27       // org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+   #26 = Class              #28           // org/mockito/Mockito\n+   #27 = NameAndType        #29:#30       // mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+   #28 = Utf8               org/mockito/Mockito\n+   #29 = Utf8               mock\n+   #30 = Utf8               (Ljava/lang/Class;)Ljava/lang/Object;\n+   #31 = Methodref          #32.#33       // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+   #32 = Class              #34           // java/util/Collections\n+   #33 = NameAndType        #35:#36       // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+   #34 = Utf8               java/util/Collections\n+   #35 = Utf8               singletonList\n+   #36 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n+   #37 = InterfaceMethodref #23.#38       // dev/langchain4j/data/document/DocumentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n+   #38 = NameAndType        #39:#40       // transformAll:(Ljava/util/List;)Ljava/util/List;\n+   #39 = Utf8               transformAll\n+   #40 = Utf8               (Ljava/util/List;)Ljava/util/List;\n+   #41 = Methodref          #26.#42       // org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+   #42 = NameAndType        #43:#44       // when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+   #43 = Utf8               when\n+   #44 = Utf8               (Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+   #45 = InterfaceMethodref #46.#47       // org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+   #46 = Class              #48           // org/mockito/stubbing/OngoingStubbing\n+   #47 = NameAndType        #49:#44       // thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+   #48 = Utf8               org/mockito/stubbing/OngoingStubbing\n+   #49 = Utf8               thenReturn\n+   #50 = Methodref          #51.#52       // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+   #51 = Class              #53           // java/util/Arrays\n+   #52 = NameAndType        #54:#55       // asList:([Ljava/lang/Object;)Ljava/util/List;\n+   #53 = Utf8               java/util/Arrays\n+   #54 = Utf8               asList\n+   #55 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n+   #56 = Class              #57           // dev/langchain4j/data/document/DocumentSplitter\n+   #57 = Utf8               dev/langchain4j/data/document/DocumentSplitter\n+   #58 = InterfaceMethodref #56.#59       // dev/langchain4j/data/document/DocumentSplitter.splitAll:(Ljava/util/List;)Ljava/util/List;\n+   #59 = NameAndType        #60:#40       // splitAll:(Ljava/util/List;)Ljava/util/List;\n+   #60 = Utf8               splitAll\n+   #61 = Methodref          #62.#63       // dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+   #62 = Class              #64           // dev/langchain4j/data/segment/TextSegment\n+   #63 = NameAndType        #65:#66       // textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+   #64 = Utf8               dev/langchain4j/data/segment/TextSegment\n+   #65 = Utf8               textSegment\n+   #66 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+   #67 = String             #68           // Second sentence.\n+   #68 = Utf8               Second sentence.\n+   #69 = String             #70           // Third sentence.\n+   #70 = Utf8               Third sentence.\n+   #71 = String             #72           // Sixth sentence.\n+   #72 = Utf8               Sixth sentence.\n+   #73 = Class              #74           // dev/langchain4j/data/segment/TextSegmentTransformer\n+   #74 = Utf8               dev/langchain4j/data/segment/TextSegmentTransformer\n+   #75 = InterfaceMethodref #73.#38       // dev/langchain4j/data/segment/TextSegmentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n+   #76 = String             #77           // Transformed first sentence.\n+   #77 = Utf8               Transformed first sentence.\n+   #78 = String             #79           // Transformed second sentence.\n+   #79 = Utf8               Transformed second sentence.\n+   #80 = String             #81           // Transformed third sentence.\n+   #81 = Utf8               Transformed third sentence.\n+   #82 = String             #83           // Transformed fourth sentence.\n+   #83 = Utf8               Transformed fourth sentence.\n+   #84 = String             #85           // Transformed fifth sentence.\n+   #85 = Utf8               Transformed fifth sentence.\n+   #86 = String             #87           // Transformed sixth sentence.\n+   #87 = Utf8               Transformed sixth sentence.\n+   #88 = Class              #89           // dev/langchain4j/model/embedding/EmbeddingModel\n+   #89 = Utf8               dev/langchain4j/model/embedding/EmbeddingModel\n+   #90 = InterfaceMethodref #88.#91       // dev/langchain4j/model/embedding/EmbeddingModel.embedAll:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+   #91 = NameAndType        #92:#93       // embedAll:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+   #92 = Utf8               embedAll\n+   #93 = Utf8               (Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+   #94 = Methodref          #95.#96       // dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n+   #95 = Class              #97           // dev/langchain4j/data/embedding/Embedding\n+   #96 = NameAndType        #13:#98       // from:([F)Ldev/langchain4j/data/embedding/Embedding;\n+   #97 = Utf8               dev/langchain4j/data/embedding/Embedding\n+   #98 = Utf8               ([F)Ldev/langchain4j/data/embedding/Embedding;\n+   #99 = Methodref          #100.#101     // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+  #100 = Class              #102          // dev/langchain4j/model/output/Response\n+  #101 = NameAndType        #13:#103      // from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+  #102 = Utf8               dev/langchain4j/model/output/Response\n+  #103 = Utf8               (Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+  #104 = Float              3.0f\n+  #105 = Float              4.0f\n+  #106 = Float              5.0f\n+  #107 = Float              6.0f\n+  #108 = Class              #109          // dev/langchain4j/store/embedding/EmbeddingStore\n+  #109 = Utf8               dev/langchain4j/store/embedding/EmbeddingStore\n+  #110 = Methodref          #111.#112     // dev/langchain4j/store/embedding/EmbeddingStoreIngestor.builder:()Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n+  #111 = Class              #113          // dev/langchain4j/store/embedding/EmbeddingStoreIngestor\n+  #112 = NameAndType        #114:#115     // builder:()Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n+  #113 = Utf8               dev/langchain4j/store/embedding/EmbeddingStoreIngestor\n+  #114 = Utf8               builder\n+  #115 = Utf8               ()Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n+  #116 = Methodref          #117.#118     // dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder.documentTransformer:(Ldev/langchain4j/data/document/DocumentTransformer;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n+  #117 = Class              #119          // dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder\n+  #118 = NameAndType        #120:#121     // documentTransformer:(Ldev/langchain4j/data/document/DocumentTransformer;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n+  #119 = Utf8               dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder\n+  #120 = Utf8               documentTransformer\n+  #121 = Utf8               (Ldev/langchain4j/data/document/DocumentTransformer;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n+  #122 = Methodref          #117.#123     // dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder.documentSplitter:(Ldev/langchain4j/data/document/DocumentSplitter;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n+  #123 = NameAndType        #124:#125     // documentSplitter:(Ldev/langchain4j/data/document/DocumentSplitter;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n+  #124 = Utf8               documentSplitter\n+  #125 = Utf8               (Ldev/langchain4j/data/document/DocumentSplitter;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n+  #126 = Methodref          #117.#127     // dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder.textSegmentTransformer:(Ldev/langchain4j/data/segment/TextSegmentTransformer;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n+  #127 = NameAndType        #128:#129     // textSegmentTransformer:(Ldev/langchain4j/data/segment/TextSegmentTransformer;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n+  #128 = Utf8               textSegmentTransformer\n+  #129 = Utf8               (Ldev/langchain4j/data/segment/TextSegmentTransformer;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n+  #130 = Methodref          #117.#131     // dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder.embeddingModel:(Ldev/langchain4j/model/embedding/EmbeddingModel;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n+  #131 = NameAndType        #132:#133     // embeddingModel:(Ldev/langchain4j/model/embedding/EmbeddingModel;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n+  #132 = Utf8               embeddingModel\n+  #133 = Utf8               (Ldev/langchain4j/model/embedding/EmbeddingModel;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n+  #134 = Methodref          #117.#135     // dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder.embeddingStore:(Ldev/langchain4j/store/embedding/EmbeddingStore;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n+  #135 = NameAndType        #136:#137     // embeddingStore:(Ldev/langchain4j/store/embedding/EmbeddingStore;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n+  #136 = Utf8               embeddingStore\n+  #137 = Utf8               (Ldev/langchain4j/store/embedding/EmbeddingStore;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n+  #138 = Methodref          #117.#139     // dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder.build:()Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor;\n+  #139 = NameAndType        #140:#141     // build:()Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor;\n+  #140 = Utf8               build\n+  #141 = Utf8               ()Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor;\n+  #142 = Methodref          #111.#143     // dev/langchain4j/store/embedding/EmbeddingStoreIngestor.ingest:(Ldev/langchain4j/data/document/Document;)V\n+  #143 = NameAndType        #144:#145     // ingest:(Ldev/langchain4j/data/document/Document;)V\n+  #144 = Utf8               ingest\n+  #145 = Utf8               (Ldev/langchain4j/data/document/Document;)V\n+  #146 = Methodref          #111.#147     // dev/langchain4j/store/embedding/EmbeddingStoreIngestor.ingest:([Ldev/langchain4j/data/document/Document;)V\n+  #147 = NameAndType        #144:#148     // ingest:([Ldev/langchain4j/data/document/Document;)V\n+  #148 = Utf8               ([Ldev/langchain4j/data/document/Document;)V\n+  #149 = Methodref          #111.#150     // dev/langchain4j/store/embedding/EmbeddingStoreIngestor.ingest:(Ljava/util/List;)V\n+  #150 = NameAndType        #144:#151     // ingest:(Ljava/util/List;)V\n+  #151 = Utf8               (Ljava/util/List;)V\n+  #152 = Methodref          #26.#153      // org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+  #153 = NameAndType        #154:#155     // verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+  #154 = Utf8               verify\n+  #155 = Utf8               (Ljava/lang/Object;)Ljava/lang/Object;\n+  #156 = Methodref          #26.#157      // org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+  #157 = NameAndType        #158:#159     // verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+  #158 = Utf8               verifyNoMoreInteractions\n+  #159 = Utf8               ([Ljava/lang/Object;)V\n+  #160 = Methodref          #95.#161      // dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n+  #161 = NameAndType        #5:#162       // \"<init>\":([F)V\n+  #162 = Utf8               ([F)V\n+  #163 = InterfaceMethodref #108.#164     // dev/langchain4j/store/embedding/EmbeddingStore.addAll:(Ljava/util/List;Ljava/util/List;)Ljava/util/List;\n+  #164 = NameAndType        #165:#166     // addAll:(Ljava/util/List;Ljava/util/List;)Ljava/util/List;\n+  #165 = Utf8               addAll\n+  #166 = Utf8               (Ljava/util/List;Ljava/util/List;)Ljava/util/List;\n+  #167 = Class              #168          // dev/langchain4j/store/embedding/EmbeddingStoreIngestorTest\n+  #168 = Utf8               dev/langchain4j/store/embedding/EmbeddingStoreIngestorTest\n+  #169 = Utf8               Code\n+  #170 = Utf8               LineNumberTable\n+  #171 = Utf8               LocalVariableTable\n+  #172 = Utf8               this\n+  #173 = Utf8               Ldev/langchain4j/store/embedding/EmbeddingStoreIngestorTest;\n+  #174 = Utf8               should_extract_text_then_split_into_segments_then_embed_them_and_store_in_embedding_store\n+  #175 = Utf8               firstDocument\n+  #176 = Utf8               Ldev/langchain4j/data/document/Document;\n+  #177 = Utf8               secondDocument\n+  #178 = Utf8               thirdDocument\n+  #179 = Utf8               fourthDocument\n+  #180 = Utf8               fifthDocument\n+  #181 = Utf8               Ldev/langchain4j/data/document/DocumentTransformer;\n+  #182 = Utf8               Ldev/langchain4j/data/document/DocumentSplitter;\n+  #183 = Utf8               Ldev/langchain4j/data/segment/TextSegmentTransformer;\n+  #184 = Utf8               Ldev/langchain4j/model/embedding/EmbeddingModel;\n+  #185 = Utf8               Ldev/langchain4j/store/embedding/EmbeddingStore;\n+  #186 = Utf8               ingestor\n+  #187 = Utf8               Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor;\n+  #188 = Utf8               LocalVariableTypeTable\n+  #189 = Utf8               Ldev/langchain4j/store/embedding/EmbeddingStore<Ldev/langchain4j/data/segment/TextSegment;>;\n+  #190 = Utf8               RuntimeVisibleAnnotations\n+  #191 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #192 = Utf8               SourceFile\n+  #193 = Utf8               EmbeddingStoreIngestorTest.java\n+  #194 = Utf8               InnerClasses\n+  #195 = Utf8               Builder\n {\n   dev.langchain4j.store.embedding.EmbeddingStoreIngestorTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -219,761 +219,761 @@\n             0       5     0  this   Ldev/langchain4j/store/embedding/EmbeddingStoreIngestorTest;\n \n   public void should_extract_text_then_split_into_segments_then_embed_them_and_store_in_embedding_store();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=10, locals=12, args_size=1\n-         0: ldc           #2                  // String First sentence.\n-         2: invokestatic  #3                  // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+         0: ldc           #7                  // String First sentence.\n+         2: invokestatic  #9                  // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n          5: astore_1\n-         6: ldc           #4                  // String Second sentence. Third sentence.\n-         8: invokestatic  #3                  // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+         6: ldc           #15                 // String Second sentence. Third sentence.\n+         8: invokestatic  #9                  // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n         11: astore_2\n-        12: ldc           #5                  // String Fourth sentence.\n-        14: invokestatic  #3                  // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+        12: ldc           #17                 // String Fourth sentence.\n+        14: invokestatic  #9                  // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n         17: astore_3\n-        18: ldc           #6                  // String Fifth sentence.\n-        20: invokestatic  #3                  // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+        18: ldc           #19                 // String Fifth sentence.\n+        20: invokestatic  #9                  // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n         23: astore        4\n-        25: ldc           #7                  // String Sixth Sentence\n-        27: invokestatic  #3                  // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+        25: ldc           #21                 // String Sixth Sentence\n+        27: invokestatic  #9                  // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n         30: astore        5\n-        32: ldc           #8                  // class dev/langchain4j/data/document/DocumentTransformer\n-        34: invokestatic  #9                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-        37: checkcast     #8                  // class dev/langchain4j/data/document/DocumentTransformer\n+        32: ldc           #23                 // class dev/langchain4j/data/document/DocumentTransformer\n+        34: invokestatic  #25                 // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+        37: checkcast     #23                 // class dev/langchain4j/data/document/DocumentTransformer\n         40: astore        6\n         42: aload         6\n         44: aload_1\n-        45: invokestatic  #10                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-        48: invokeinterface #11,  2           // InterfaceMethod dev/langchain4j/data/document/DocumentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n-        53: invokestatic  #12                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+        45: invokestatic  #31                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+        48: invokeinterface #37,  2           // InterfaceMethod dev/langchain4j/data/document/DocumentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n+        53: invokestatic  #41                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n         56: aload_1\n-        57: invokestatic  #10                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-        60: invokeinterface #13,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+        57: invokestatic  #31                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+        60: invokeinterface #45,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n         65: pop\n         66: aload         6\n         68: iconst_2\n-        69: anewarray     #14                 // class dev/langchain4j/data/document/Document\n+        69: anewarray     #10                 // class dev/langchain4j/data/document/Document\n         72: dup\n         73: iconst_0\n         74: aload_2\n         75: aastore\n         76: dup\n         77: iconst_1\n         78: aload_3\n         79: aastore\n-        80: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-        83: invokeinterface #11,  2           // InterfaceMethod dev/langchain4j/data/document/DocumentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n-        88: invokestatic  #12                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+        80: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        83: invokeinterface #37,  2           // InterfaceMethod dev/langchain4j/data/document/DocumentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n+        88: invokestatic  #41                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n         91: iconst_2\n-        92: anewarray     #14                 // class dev/langchain4j/data/document/Document\n+        92: anewarray     #10                 // class dev/langchain4j/data/document/Document\n         95: dup\n         96: iconst_0\n         97: aload_2\n         98: aastore\n         99: dup\n        100: iconst_1\n        101: aload_3\n        102: aastore\n-       103: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       106: invokeinterface #13,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       103: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       106: invokeinterface #45,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        111: pop\n        112: aload         6\n        114: iconst_2\n-       115: anewarray     #14                 // class dev/langchain4j/data/document/Document\n+       115: anewarray     #10                 // class dev/langchain4j/data/document/Document\n        118: dup\n        119: iconst_0\n        120: aload         4\n        122: aastore\n        123: dup\n        124: iconst_1\n        125: aload         5\n        127: aastore\n-       128: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       131: invokeinterface #11,  2           // InterfaceMethod dev/langchain4j/data/document/DocumentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n-       136: invokestatic  #12                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       128: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       131: invokeinterface #37,  2           // InterfaceMethod dev/langchain4j/data/document/DocumentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n+       136: invokestatic  #41                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        139: iconst_2\n-       140: anewarray     #14                 // class dev/langchain4j/data/document/Document\n+       140: anewarray     #10                 // class dev/langchain4j/data/document/Document\n        143: dup\n        144: iconst_0\n        145: aload         4\n        147: aastore\n        148: dup\n        149: iconst_1\n        150: aload         5\n        152: aastore\n-       153: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       156: invokeinterface #13,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       153: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       156: invokeinterface #45,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        161: pop\n-       162: ldc           #16                 // class dev/langchain4j/data/document/DocumentSplitter\n-       164: invokestatic  #9                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-       167: checkcast     #16                 // class dev/langchain4j/data/document/DocumentSplitter\n+       162: ldc           #56                 // class dev/langchain4j/data/document/DocumentSplitter\n+       164: invokestatic  #25                 // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+       167: checkcast     #56                 // class dev/langchain4j/data/document/DocumentSplitter\n        170: astore        7\n        172: aload         7\n        174: aload_1\n-       175: invokestatic  #10                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-       178: invokeinterface #17,  2           // InterfaceMethod dev/langchain4j/data/document/DocumentSplitter.splitAll:(Ljava/util/List;)Ljava/util/List;\n-       183: invokestatic  #12                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n-       186: ldc           #2                  // String First sentence.\n-       188: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-       191: invokestatic  #10                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-       194: invokeinterface #13,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       175: invokestatic  #31                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+       178: invokeinterface #58,  2           // InterfaceMethod dev/langchain4j/data/document/DocumentSplitter.splitAll:(Ljava/util/List;)Ljava/util/List;\n+       183: invokestatic  #41                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       186: ldc           #7                  // String First sentence.\n+       188: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+       191: invokestatic  #31                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+       194: invokeinterface #45,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        199: pop\n        200: aload         7\n        202: iconst_2\n-       203: anewarray     #14                 // class dev/langchain4j/data/document/Document\n+       203: anewarray     #10                 // class dev/langchain4j/data/document/Document\n        206: dup\n        207: iconst_0\n        208: aload_2\n        209: aastore\n        210: dup\n        211: iconst_1\n        212: aload_3\n        213: aastore\n-       214: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       217: invokeinterface #17,  2           // InterfaceMethod dev/langchain4j/data/document/DocumentSplitter.splitAll:(Ljava/util/List;)Ljava/util/List;\n-       222: invokestatic  #12                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       214: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       217: invokeinterface #58,  2           // InterfaceMethod dev/langchain4j/data/document/DocumentSplitter.splitAll:(Ljava/util/List;)Ljava/util/List;\n+       222: invokestatic  #41                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        225: iconst_3\n-       226: anewarray     #19                 // class dev/langchain4j/data/segment/TextSegment\n+       226: anewarray     #62                 // class dev/langchain4j/data/segment/TextSegment\n        229: dup\n        230: iconst_0\n-       231: ldc           #20                 // String Second sentence.\n-       233: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+       231: ldc           #67                 // String Second sentence.\n+       233: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n        236: aastore\n        237: dup\n        238: iconst_1\n-       239: ldc           #21                 // String Third sentence.\n-       241: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+       239: ldc           #69                 // String Third sentence.\n+       241: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n        244: aastore\n        245: dup\n        246: iconst_2\n-       247: ldc           #5                  // String Fourth sentence.\n-       249: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+       247: ldc           #17                 // String Fourth sentence.\n+       249: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n        252: aastore\n-       253: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       256: invokeinterface #13,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       253: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       256: invokeinterface #45,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        261: pop\n        262: aload         7\n        264: iconst_2\n-       265: anewarray     #14                 // class dev/langchain4j/data/document/Document\n+       265: anewarray     #10                 // class dev/langchain4j/data/document/Document\n        268: dup\n        269: iconst_0\n        270: aload         4\n        272: aastore\n        273: dup\n        274: iconst_1\n        275: aload         5\n        277: aastore\n-       278: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       281: invokeinterface #17,  2           // InterfaceMethod dev/langchain4j/data/document/DocumentSplitter.splitAll:(Ljava/util/List;)Ljava/util/List;\n-       286: invokestatic  #12                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       278: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       281: invokeinterface #58,  2           // InterfaceMethod dev/langchain4j/data/document/DocumentSplitter.splitAll:(Ljava/util/List;)Ljava/util/List;\n+       286: invokestatic  #41                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        289: iconst_2\n-       290: anewarray     #19                 // class dev/langchain4j/data/segment/TextSegment\n+       290: anewarray     #62                 // class dev/langchain4j/data/segment/TextSegment\n        293: dup\n        294: iconst_0\n-       295: ldc           #6                  // String Fifth sentence.\n-       297: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+       295: ldc           #19                 // String Fifth sentence.\n+       297: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n        300: aastore\n        301: dup\n        302: iconst_1\n-       303: ldc           #22                 // String Sixth sentence.\n-       305: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+       303: ldc           #71                 // String Sixth sentence.\n+       305: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n        308: aastore\n-       309: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       312: invokeinterface #13,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       309: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       312: invokeinterface #45,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        317: pop\n-       318: ldc           #23                 // class dev/langchain4j/data/segment/TextSegmentTransformer\n-       320: invokestatic  #9                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-       323: checkcast     #23                 // class dev/langchain4j/data/segment/TextSegmentTransformer\n+       318: ldc           #73                 // class dev/langchain4j/data/segment/TextSegmentTransformer\n+       320: invokestatic  #25                 // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+       323: checkcast     #73                 // class dev/langchain4j/data/segment/TextSegmentTransformer\n        326: astore        8\n        328: aload         8\n-       330: ldc           #2                  // String First sentence.\n-       332: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-       335: invokestatic  #10                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-       338: invokeinterface #24,  2           // InterfaceMethod dev/langchain4j/data/segment/TextSegmentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n-       343: invokestatic  #12                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n-       346: ldc           #25                 // String Transformed first sentence.\n-       348: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-       351: invokestatic  #10                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-       354: invokeinterface #13,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       330: ldc           #7                  // String First sentence.\n+       332: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+       335: invokestatic  #31                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+       338: invokeinterface #75,  2           // InterfaceMethod dev/langchain4j/data/segment/TextSegmentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n+       343: invokestatic  #41                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       346: ldc           #76                 // String Transformed first sentence.\n+       348: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+       351: invokestatic  #31                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+       354: invokeinterface #45,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        359: pop\n        360: aload         8\n        362: iconst_3\n-       363: anewarray     #19                 // class dev/langchain4j/data/segment/TextSegment\n+       363: anewarray     #62                 // class dev/langchain4j/data/segment/TextSegment\n        366: dup\n        367: iconst_0\n-       368: ldc           #20                 // String Second sentence.\n-       370: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+       368: ldc           #67                 // String Second sentence.\n+       370: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n        373: aastore\n        374: dup\n        375: iconst_1\n-       376: ldc           #21                 // String Third sentence.\n-       378: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+       376: ldc           #69                 // String Third sentence.\n+       378: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n        381: aastore\n        382: dup\n        383: iconst_2\n-       384: ldc           #5                  // String Fourth sentence.\n-       386: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+       384: ldc           #17                 // String Fourth sentence.\n+       386: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n        389: aastore\n-       390: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       393: invokeinterface #24,  2           // InterfaceMethod dev/langchain4j/data/segment/TextSegmentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n-       398: invokestatic  #12                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       390: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       393: invokeinterface #75,  2           // InterfaceMethod dev/langchain4j/data/segment/TextSegmentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n+       398: invokestatic  #41                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        401: iconst_3\n-       402: anewarray     #19                 // class dev/langchain4j/data/segment/TextSegment\n+       402: anewarray     #62                 // class dev/langchain4j/data/segment/TextSegment\n        405: dup\n        406: iconst_0\n-       407: ldc           #26                 // String Transformed second sentence.\n-       409: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+       407: ldc           #78                 // String Transformed second sentence.\n+       409: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n        412: aastore\n        413: dup\n        414: iconst_1\n-       415: ldc           #27                 // String Transformed third sentence.\n-       417: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+       415: ldc           #80                 // String Transformed third sentence.\n+       417: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n        420: aastore\n        421: dup\n        422: iconst_2\n-       423: ldc           #28                 // String Transformed fourth sentence.\n-       425: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+       423: ldc           #82                 // String Transformed fourth sentence.\n+       425: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n        428: aastore\n-       429: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       432: invokeinterface #13,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       429: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       432: invokeinterface #45,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        437: pop\n        438: aload         8\n        440: iconst_2\n-       441: anewarray     #19                 // class dev/langchain4j/data/segment/TextSegment\n+       441: anewarray     #62                 // class dev/langchain4j/data/segment/TextSegment\n        444: dup\n        445: iconst_0\n-       446: ldc           #6                  // String Fifth sentence.\n-       448: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+       446: ldc           #19                 // String Fifth sentence.\n+       448: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n        451: aastore\n        452: dup\n        453: iconst_1\n-       454: ldc           #22                 // String Sixth sentence.\n-       456: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+       454: ldc           #71                 // String Sixth sentence.\n+       456: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n        459: aastore\n-       460: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       463: invokeinterface #24,  2           // InterfaceMethod dev/langchain4j/data/segment/TextSegmentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n-       468: invokestatic  #12                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       460: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       463: invokeinterface #75,  2           // InterfaceMethod dev/langchain4j/data/segment/TextSegmentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n+       468: invokestatic  #41                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        471: iconst_2\n-       472: anewarray     #19                 // class dev/langchain4j/data/segment/TextSegment\n+       472: anewarray     #62                 // class dev/langchain4j/data/segment/TextSegment\n        475: dup\n        476: iconst_0\n-       477: ldc           #29                 // String Transformed fifth sentence.\n-       479: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+       477: ldc           #84                 // String Transformed fifth sentence.\n+       479: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n        482: aastore\n        483: dup\n        484: iconst_1\n-       485: ldc           #30                 // String Transformed sixth sentence.\n-       487: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+       485: ldc           #86                 // String Transformed sixth sentence.\n+       487: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n        490: aastore\n-       491: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       494: invokeinterface #13,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       491: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       494: invokeinterface #45,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        499: pop\n-       500: ldc           #31                 // class dev/langchain4j/model/embedding/EmbeddingModel\n-       502: invokestatic  #9                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-       505: checkcast     #31                 // class dev/langchain4j/model/embedding/EmbeddingModel\n+       500: ldc           #88                 // class dev/langchain4j/model/embedding/EmbeddingModel\n+       502: invokestatic  #25                 // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+       505: checkcast     #88                 // class dev/langchain4j/model/embedding/EmbeddingModel\n        508: astore        9\n        510: aload         9\n-       512: ldc           #25                 // String Transformed first sentence.\n-       514: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-       517: invokestatic  #10                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-       520: invokeinterface #32,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embedAll:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n-       525: invokestatic  #12                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       512: ldc           #76                 // String Transformed first sentence.\n+       514: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+       517: invokestatic  #31                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+       520: invokeinterface #90,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embedAll:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+       525: invokestatic  #41                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        528: iconst_1\n        529: newarray       float\n        531: dup\n        532: iconst_0\n        533: fconst_1\n        534: fastore\n-       535: invokestatic  #33                 // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n-       538: invokestatic  #10                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-       541: invokestatic  #34                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-       544: invokeinterface #13,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       535: invokestatic  #94                 // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n+       538: invokestatic  #31                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+       541: invokestatic  #99                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+       544: invokeinterface #45,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        549: pop\n        550: aload         9\n        552: iconst_3\n-       553: anewarray     #19                 // class dev/langchain4j/data/segment/TextSegment\n+       553: anewarray     #62                 // class dev/langchain4j/data/segment/TextSegment\n        556: dup\n        557: iconst_0\n-       558: ldc           #26                 // String Transformed second sentence.\n-       560: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+       558: ldc           #78                 // String Transformed second sentence.\n+       560: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n        563: aastore\n        564: dup\n        565: iconst_1\n-       566: ldc           #27                 // String Transformed third sentence.\n-       568: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+       566: ldc           #80                 // String Transformed third sentence.\n+       568: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n        571: aastore\n        572: dup\n        573: iconst_2\n-       574: ldc           #28                 // String Transformed fourth sentence.\n-       576: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+       574: ldc           #82                 // String Transformed fourth sentence.\n+       576: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n        579: aastore\n-       580: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       583: invokeinterface #32,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embedAll:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n-       588: invokestatic  #12                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       580: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       583: invokeinterface #90,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embedAll:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+       588: invokestatic  #41                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        591: iconst_3\n-       592: anewarray     #35                 // class dev/langchain4j/data/embedding/Embedding\n+       592: anewarray     #95                 // class dev/langchain4j/data/embedding/Embedding\n        595: dup\n        596: iconst_0\n        597: iconst_1\n        598: newarray       float\n        600: dup\n        601: iconst_0\n        602: fconst_2\n        603: fastore\n-       604: invokestatic  #33                 // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n+       604: invokestatic  #94                 // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n        607: aastore\n        608: dup\n        609: iconst_1\n        610: iconst_1\n        611: newarray       float\n        613: dup\n        614: iconst_0\n-       615: ldc           #36                 // float 3.0f\n+       615: ldc           #104                // float 3.0f\n        617: fastore\n-       618: invokestatic  #33                 // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n+       618: invokestatic  #94                 // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n        621: aastore\n        622: dup\n        623: iconst_2\n        624: iconst_1\n        625: newarray       float\n        627: dup\n        628: iconst_0\n-       629: ldc           #37                 // float 4.0f\n+       629: ldc           #105                // float 4.0f\n        631: fastore\n-       632: invokestatic  #33                 // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n+       632: invokestatic  #94                 // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n        635: aastore\n-       636: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       639: invokestatic  #34                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-       642: invokeinterface #13,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       636: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       639: invokestatic  #99                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+       642: invokeinterface #45,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        647: pop\n        648: aload         9\n        650: iconst_2\n-       651: anewarray     #19                 // class dev/langchain4j/data/segment/TextSegment\n+       651: anewarray     #62                 // class dev/langchain4j/data/segment/TextSegment\n        654: dup\n        655: iconst_0\n-       656: ldc           #29                 // String Transformed fifth sentence.\n-       658: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+       656: ldc           #84                 // String Transformed fifth sentence.\n+       658: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n        661: aastore\n        662: dup\n        663: iconst_1\n-       664: ldc           #30                 // String Transformed sixth sentence.\n-       666: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+       664: ldc           #86                 // String Transformed sixth sentence.\n+       666: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n        669: aastore\n-       670: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       673: invokeinterface #32,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embedAll:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n-       678: invokestatic  #12                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       670: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       673: invokeinterface #90,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embedAll:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+       678: invokestatic  #41                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        681: iconst_2\n-       682: anewarray     #35                 // class dev/langchain4j/data/embedding/Embedding\n+       682: anewarray     #95                 // class dev/langchain4j/data/embedding/Embedding\n        685: dup\n        686: iconst_0\n        687: iconst_1\n        688: newarray       float\n        690: dup\n        691: iconst_0\n-       692: ldc           #38                 // float 5.0f\n+       692: ldc           #106                // float 5.0f\n        694: fastore\n-       695: invokestatic  #33                 // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n+       695: invokestatic  #94                 // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n        698: aastore\n        699: dup\n        700: iconst_1\n        701: iconst_1\n        702: newarray       float\n        704: dup\n        705: iconst_0\n-       706: ldc           #39                 // float 6.0f\n+       706: ldc           #107                // float 6.0f\n        708: fastore\n-       709: invokestatic  #33                 // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n+       709: invokestatic  #94                 // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n        712: aastore\n-       713: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       716: invokestatic  #34                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-       719: invokeinterface #13,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       713: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       716: invokestatic  #99                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+       719: invokeinterface #45,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        724: pop\n-       725: ldc           #40                 // class dev/langchain4j/store/embedding/EmbeddingStore\n-       727: invokestatic  #9                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-       730: checkcast     #40                 // class dev/langchain4j/store/embedding/EmbeddingStore\n+       725: ldc           #108                // class dev/langchain4j/store/embedding/EmbeddingStore\n+       727: invokestatic  #25                 // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+       730: checkcast     #108                // class dev/langchain4j/store/embedding/EmbeddingStore\n        733: astore        10\n-       735: invokestatic  #41                 // Method dev/langchain4j/store/embedding/EmbeddingStoreIngestor.builder:()Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n+       735: invokestatic  #110                // Method dev/langchain4j/store/embedding/EmbeddingStoreIngestor.builder:()Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n        738: aload         6\n-       740: invokevirtual #42                 // Method dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder.documentTransformer:(Ldev/langchain4j/data/document/DocumentTransformer;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n+       740: invokevirtual #116                // Method dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder.documentTransformer:(Ldev/langchain4j/data/document/DocumentTransformer;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n        743: aload         7\n-       745: invokevirtual #43                 // Method dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder.documentSplitter:(Ldev/langchain4j/data/document/DocumentSplitter;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n+       745: invokevirtual #122                // Method dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder.documentSplitter:(Ldev/langchain4j/data/document/DocumentSplitter;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n        748: aload         8\n-       750: invokevirtual #44                 // Method dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder.textSegmentTransformer:(Ldev/langchain4j/data/segment/TextSegmentTransformer;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n+       750: invokevirtual #126                // Method dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder.textSegmentTransformer:(Ldev/langchain4j/data/segment/TextSegmentTransformer;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n        753: aload         9\n-       755: invokevirtual #45                 // Method dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder.embeddingModel:(Ldev/langchain4j/model/embedding/EmbeddingModel;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n+       755: invokevirtual #130                // Method dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder.embeddingModel:(Ldev/langchain4j/model/embedding/EmbeddingModel;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n        758: aload         10\n-       760: invokevirtual #46                 // Method dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder.embeddingStore:(Ldev/langchain4j/store/embedding/EmbeddingStore;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n-       763: invokevirtual #47                 // Method dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder.build:()Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor;\n+       760: invokevirtual #134                // Method dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder.embeddingStore:(Ldev/langchain4j/store/embedding/EmbeddingStore;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n+       763: invokevirtual #138                // Method dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder.build:()Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor;\n        766: astore        11\n        768: aload         11\n        770: aload_1\n-       771: invokevirtual #48                 // Method dev/langchain4j/store/embedding/EmbeddingStoreIngestor.ingest:(Ldev/langchain4j/data/document/Document;)V\n+       771: invokevirtual #142                // Method dev/langchain4j/store/embedding/EmbeddingStoreIngestor.ingest:(Ldev/langchain4j/data/document/Document;)V\n        774: aload         11\n        776: iconst_2\n-       777: anewarray     #14                 // class dev/langchain4j/data/document/Document\n+       777: anewarray     #10                 // class dev/langchain4j/data/document/Document\n        780: dup\n        781: iconst_0\n        782: aload_2\n        783: aastore\n        784: dup\n        785: iconst_1\n        786: aload_3\n        787: aastore\n-       788: invokevirtual #49                 // Method dev/langchain4j/store/embedding/EmbeddingStoreIngestor.ingest:([Ldev/langchain4j/data/document/Document;)V\n+       788: invokevirtual #146                // Method dev/langchain4j/store/embedding/EmbeddingStoreIngestor.ingest:([Ldev/langchain4j/data/document/Document;)V\n        791: aload         11\n        793: iconst_2\n-       794: anewarray     #14                 // class dev/langchain4j/data/document/Document\n+       794: anewarray     #10                 // class dev/langchain4j/data/document/Document\n        797: dup\n        798: iconst_0\n        799: aload         4\n        801: aastore\n        802: dup\n        803: iconst_1\n        804: aload         5\n        806: aastore\n-       807: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       810: invokevirtual #50                 // Method dev/langchain4j/store/embedding/EmbeddingStoreIngestor.ingest:(Ljava/util/List;)V\n+       807: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       810: invokevirtual #149                // Method dev/langchain4j/store/embedding/EmbeddingStoreIngestor.ingest:(Ljava/util/List;)V\n        813: aload         6\n-       815: invokestatic  #51                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-       818: checkcast     #8                  // class dev/langchain4j/data/document/DocumentTransformer\n+       815: invokestatic  #152                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+       818: checkcast     #23                 // class dev/langchain4j/data/document/DocumentTransformer\n        821: aload_1\n-       822: invokestatic  #10                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-       825: invokeinterface #11,  2           // InterfaceMethod dev/langchain4j/data/document/DocumentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n+       822: invokestatic  #31                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+       825: invokeinterface #37,  2           // InterfaceMethod dev/langchain4j/data/document/DocumentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n        830: pop\n        831: aload         6\n-       833: invokestatic  #51                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-       836: checkcast     #8                  // class dev/langchain4j/data/document/DocumentTransformer\n+       833: invokestatic  #152                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+       836: checkcast     #23                 // class dev/langchain4j/data/document/DocumentTransformer\n        839: iconst_2\n-       840: anewarray     #14                 // class dev/langchain4j/data/document/Document\n+       840: anewarray     #10                 // class dev/langchain4j/data/document/Document\n        843: dup\n        844: iconst_0\n        845: aload_2\n        846: aastore\n        847: dup\n        848: iconst_1\n        849: aload_3\n        850: aastore\n-       851: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       854: invokeinterface #11,  2           // InterfaceMethod dev/langchain4j/data/document/DocumentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n+       851: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       854: invokeinterface #37,  2           // InterfaceMethod dev/langchain4j/data/document/DocumentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n        859: pop\n        860: aload         6\n-       862: invokestatic  #51                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-       865: checkcast     #8                  // class dev/langchain4j/data/document/DocumentTransformer\n+       862: invokestatic  #152                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+       865: checkcast     #23                 // class dev/langchain4j/data/document/DocumentTransformer\n        868: iconst_2\n-       869: anewarray     #14                 // class dev/langchain4j/data/document/Document\n+       869: anewarray     #10                 // class dev/langchain4j/data/document/Document\n        872: dup\n        873: iconst_0\n        874: aload         4\n        876: aastore\n        877: dup\n        878: iconst_1\n        879: aload         5\n        881: aastore\n-       882: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       885: invokeinterface #11,  2           // InterfaceMethod dev/langchain4j/data/document/DocumentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n+       882: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       885: invokeinterface #37,  2           // InterfaceMethod dev/langchain4j/data/document/DocumentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n        890: pop\n        891: iconst_1\n-       892: anewarray     #52                 // class java/lang/Object\n+       892: anewarray     #2                  // class java/lang/Object\n        895: dup\n        896: iconst_0\n        897: aload         6\n        899: aastore\n-       900: invokestatic  #53                 // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+       900: invokestatic  #156                // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n        903: aload         7\n-       905: invokestatic  #51                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-       908: checkcast     #16                 // class dev/langchain4j/data/document/DocumentSplitter\n+       905: invokestatic  #152                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+       908: checkcast     #56                 // class dev/langchain4j/data/document/DocumentSplitter\n        911: aload_1\n-       912: invokestatic  #10                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-       915: invokeinterface #17,  2           // InterfaceMethod dev/langchain4j/data/document/DocumentSplitter.splitAll:(Ljava/util/List;)Ljava/util/List;\n+       912: invokestatic  #31                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+       915: invokeinterface #58,  2           // InterfaceMethod dev/langchain4j/data/document/DocumentSplitter.splitAll:(Ljava/util/List;)Ljava/util/List;\n        920: pop\n        921: aload         7\n-       923: invokestatic  #51                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-       926: checkcast     #16                 // class dev/langchain4j/data/document/DocumentSplitter\n+       923: invokestatic  #152                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+       926: checkcast     #56                 // class dev/langchain4j/data/document/DocumentSplitter\n        929: iconst_2\n-       930: anewarray     #14                 // class dev/langchain4j/data/document/Document\n+       930: anewarray     #10                 // class dev/langchain4j/data/document/Document\n        933: dup\n        934: iconst_0\n        935: aload_2\n        936: aastore\n        937: dup\n        938: iconst_1\n        939: aload_3\n        940: aastore\n-       941: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       944: invokeinterface #17,  2           // InterfaceMethod dev/langchain4j/data/document/DocumentSplitter.splitAll:(Ljava/util/List;)Ljava/util/List;\n+       941: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       944: invokeinterface #58,  2           // InterfaceMethod dev/langchain4j/data/document/DocumentSplitter.splitAll:(Ljava/util/List;)Ljava/util/List;\n        949: pop\n        950: aload         7\n-       952: invokestatic  #51                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-       955: checkcast     #16                 // class dev/langchain4j/data/document/DocumentSplitter\n+       952: invokestatic  #152                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+       955: checkcast     #56                 // class dev/langchain4j/data/document/DocumentSplitter\n        958: iconst_2\n-       959: anewarray     #14                 // class dev/langchain4j/data/document/Document\n+       959: anewarray     #10                 // class dev/langchain4j/data/document/Document\n        962: dup\n        963: iconst_0\n        964: aload         4\n        966: aastore\n        967: dup\n        968: iconst_1\n        969: aload         5\n        971: aastore\n-       972: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       975: invokeinterface #17,  2           // InterfaceMethod dev/langchain4j/data/document/DocumentSplitter.splitAll:(Ljava/util/List;)Ljava/util/List;\n+       972: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       975: invokeinterface #58,  2           // InterfaceMethod dev/langchain4j/data/document/DocumentSplitter.splitAll:(Ljava/util/List;)Ljava/util/List;\n        980: pop\n        981: iconst_1\n-       982: anewarray     #52                 // class java/lang/Object\n+       982: anewarray     #2                  // class java/lang/Object\n        985: dup\n        986: iconst_0\n        987: aload         7\n        989: aastore\n-       990: invokestatic  #53                 // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+       990: invokestatic  #156                // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n        993: aload         8\n-       995: invokestatic  #51                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-       998: checkcast     #23                 // class dev/langchain4j/data/segment/TextSegmentTransformer\n-      1001: ldc           #2                  // String First sentence.\n-      1003: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-      1006: invokestatic  #10                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-      1009: invokeinterface #24,  2           // InterfaceMethod dev/langchain4j/data/segment/TextSegmentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n+       995: invokestatic  #152                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+       998: checkcast     #73                 // class dev/langchain4j/data/segment/TextSegmentTransformer\n+      1001: ldc           #7                  // String First sentence.\n+      1003: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+      1006: invokestatic  #31                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+      1009: invokeinterface #75,  2           // InterfaceMethod dev/langchain4j/data/segment/TextSegmentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n       1014: pop\n       1015: aload         8\n-      1017: invokestatic  #51                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-      1020: checkcast     #23                 // class dev/langchain4j/data/segment/TextSegmentTransformer\n+      1017: invokestatic  #152                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+      1020: checkcast     #73                 // class dev/langchain4j/data/segment/TextSegmentTransformer\n       1023: iconst_3\n-      1024: anewarray     #19                 // class dev/langchain4j/data/segment/TextSegment\n+      1024: anewarray     #62                 // class dev/langchain4j/data/segment/TextSegment\n       1027: dup\n       1028: iconst_0\n-      1029: ldc           #20                 // String Second sentence.\n-      1031: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+      1029: ldc           #67                 // String Second sentence.\n+      1031: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n       1034: aastore\n       1035: dup\n       1036: iconst_1\n-      1037: ldc           #21                 // String Third sentence.\n-      1039: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+      1037: ldc           #69                 // String Third sentence.\n+      1039: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n       1042: aastore\n       1043: dup\n       1044: iconst_2\n-      1045: ldc           #5                  // String Fourth sentence.\n-      1047: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+      1045: ldc           #17                 // String Fourth sentence.\n+      1047: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n       1050: aastore\n-      1051: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-      1054: invokeinterface #24,  2           // InterfaceMethod dev/langchain4j/data/segment/TextSegmentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n+      1051: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+      1054: invokeinterface #75,  2           // InterfaceMethod dev/langchain4j/data/segment/TextSegmentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n       1059: pop\n       1060: aload         8\n-      1062: invokestatic  #51                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-      1065: checkcast     #23                 // class dev/langchain4j/data/segment/TextSegmentTransformer\n+      1062: invokestatic  #152                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+      1065: checkcast     #73                 // class dev/langchain4j/data/segment/TextSegmentTransformer\n       1068: iconst_2\n-      1069: anewarray     #19                 // class dev/langchain4j/data/segment/TextSegment\n+      1069: anewarray     #62                 // class dev/langchain4j/data/segment/TextSegment\n       1072: dup\n       1073: iconst_0\n-      1074: ldc           #6                  // String Fifth sentence.\n-      1076: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+      1074: ldc           #19                 // String Fifth sentence.\n+      1076: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n       1079: aastore\n       1080: dup\n       1081: iconst_1\n-      1082: ldc           #22                 // String Sixth sentence.\n-      1084: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+      1082: ldc           #71                 // String Sixth sentence.\n+      1084: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n       1087: aastore\n-      1088: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-      1091: invokeinterface #24,  2           // InterfaceMethod dev/langchain4j/data/segment/TextSegmentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n+      1088: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+      1091: invokeinterface #75,  2           // InterfaceMethod dev/langchain4j/data/segment/TextSegmentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n       1096: pop\n       1097: iconst_1\n-      1098: anewarray     #52                 // class java/lang/Object\n+      1098: anewarray     #2                  // class java/lang/Object\n       1101: dup\n       1102: iconst_0\n       1103: aload         8\n       1105: aastore\n-      1106: invokestatic  #53                 // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+      1106: invokestatic  #156                // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n       1109: aload         9\n-      1111: invokestatic  #51                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-      1114: checkcast     #31                 // class dev/langchain4j/model/embedding/EmbeddingModel\n-      1117: ldc           #25                 // String Transformed first sentence.\n-      1119: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-      1122: invokestatic  #10                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-      1125: invokeinterface #32,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embedAll:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+      1111: invokestatic  #152                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+      1114: checkcast     #88                 // class dev/langchain4j/model/embedding/EmbeddingModel\n+      1117: ldc           #76                 // String Transformed first sentence.\n+      1119: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+      1122: invokestatic  #31                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+      1125: invokeinterface #90,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embedAll:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n       1130: pop\n       1131: aload         9\n-      1133: invokestatic  #51                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-      1136: checkcast     #31                 // class dev/langchain4j/model/embedding/EmbeddingModel\n+      1133: invokestatic  #152                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+      1136: checkcast     #88                 // class dev/langchain4j/model/embedding/EmbeddingModel\n       1139: iconst_3\n-      1140: anewarray     #19                 // class dev/langchain4j/data/segment/TextSegment\n+      1140: anewarray     #62                 // class dev/langchain4j/data/segment/TextSegment\n       1143: dup\n       1144: iconst_0\n-      1145: ldc           #26                 // String Transformed second sentence.\n-      1147: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+      1145: ldc           #78                 // String Transformed second sentence.\n+      1147: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n       1150: aastore\n       1151: dup\n       1152: iconst_1\n-      1153: ldc           #27                 // String Transformed third sentence.\n-      1155: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+      1153: ldc           #80                 // String Transformed third sentence.\n+      1155: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n       1158: aastore\n       1159: dup\n       1160: iconst_2\n-      1161: ldc           #28                 // String Transformed fourth sentence.\n-      1163: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+      1161: ldc           #82                 // String Transformed fourth sentence.\n+      1163: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n       1166: aastore\n-      1167: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-      1170: invokeinterface #32,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embedAll:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+      1167: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+      1170: invokeinterface #90,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embedAll:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n       1175: pop\n       1176: aload         9\n-      1178: invokestatic  #51                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-      1181: checkcast     #31                 // class dev/langchain4j/model/embedding/EmbeddingModel\n+      1178: invokestatic  #152                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+      1181: checkcast     #88                 // class dev/langchain4j/model/embedding/EmbeddingModel\n       1184: iconst_2\n-      1185: anewarray     #19                 // class dev/langchain4j/data/segment/TextSegment\n+      1185: anewarray     #62                 // class dev/langchain4j/data/segment/TextSegment\n       1188: dup\n       1189: iconst_0\n-      1190: ldc           #29                 // String Transformed fifth sentence.\n-      1192: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+      1190: ldc           #84                 // String Transformed fifth sentence.\n+      1192: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n       1195: aastore\n       1196: dup\n       1197: iconst_1\n-      1198: ldc           #30                 // String Transformed sixth sentence.\n-      1200: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+      1198: ldc           #86                 // String Transformed sixth sentence.\n+      1200: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n       1203: aastore\n-      1204: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-      1207: invokeinterface #32,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embedAll:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+      1204: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+      1207: invokeinterface #90,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embedAll:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n       1212: pop\n       1213: iconst_1\n-      1214: anewarray     #52                 // class java/lang/Object\n+      1214: anewarray     #2                  // class java/lang/Object\n       1217: dup\n       1218: iconst_0\n       1219: aload         9\n       1221: aastore\n-      1222: invokestatic  #53                 // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+      1222: invokestatic  #156                // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n       1225: aload         10\n-      1227: invokestatic  #51                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-      1230: checkcast     #40                 // class dev/langchain4j/store/embedding/EmbeddingStore\n-      1233: new           #35                 // class dev/langchain4j/data/embedding/Embedding\n+      1227: invokestatic  #152                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+      1230: checkcast     #108                // class dev/langchain4j/store/embedding/EmbeddingStore\n+      1233: new           #95                 // class dev/langchain4j/data/embedding/Embedding\n       1236: dup\n       1237: iconst_1\n       1238: newarray       float\n       1240: dup\n       1241: iconst_0\n       1242: fconst_1\n       1243: fastore\n-      1244: invokespecial #54                 // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n-      1247: invokestatic  #10                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-      1250: ldc           #25                 // String Transformed first sentence.\n-      1252: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-      1255: invokestatic  #10                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-      1258: invokeinterface #55,  3           // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.addAll:(Ljava/util/List;Ljava/util/List;)Ljava/util/List;\n+      1244: invokespecial #160                // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n+      1247: invokestatic  #31                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+      1250: ldc           #76                 // String Transformed first sentence.\n+      1252: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+      1255: invokestatic  #31                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+      1258: invokeinterface #163,  3          // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.addAll:(Ljava/util/List;Ljava/util/List;)Ljava/util/List;\n       1263: pop\n       1264: aload         10\n-      1266: invokestatic  #51                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-      1269: checkcast     #40                 // class dev/langchain4j/store/embedding/EmbeddingStore\n+      1266: invokestatic  #152                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+      1269: checkcast     #108                // class dev/langchain4j/store/embedding/EmbeddingStore\n       1272: iconst_3\n-      1273: anewarray     #35                 // class dev/langchain4j/data/embedding/Embedding\n+      1273: anewarray     #95                 // class dev/langchain4j/data/embedding/Embedding\n       1276: dup\n       1277: iconst_0\n-      1278: new           #35                 // class dev/langchain4j/data/embedding/Embedding\n+      1278: new           #95                 // class dev/langchain4j/data/embedding/Embedding\n       1281: dup\n       1282: iconst_1\n       1283: newarray       float\n       1285: dup\n       1286: iconst_0\n       1287: fconst_2\n       1288: fastore\n-      1289: invokespecial #54                 // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n+      1289: invokespecial #160                // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n       1292: aastore\n       1293: dup\n       1294: iconst_1\n-      1295: new           #35                 // class dev/langchain4j/data/embedding/Embedding\n+      1295: new           #95                 // class dev/langchain4j/data/embedding/Embedding\n       1298: dup\n       1299: iconst_1\n       1300: newarray       float\n       1302: dup\n       1303: iconst_0\n-      1304: ldc           #36                 // float 3.0f\n+      1304: ldc           #104                // float 3.0f\n       1306: fastore\n-      1307: invokespecial #54                 // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n+      1307: invokespecial #160                // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n       1310: aastore\n       1311: dup\n       1312: iconst_2\n-      1313: new           #35                 // class dev/langchain4j/data/embedding/Embedding\n+      1313: new           #95                 // class dev/langchain4j/data/embedding/Embedding\n       1316: dup\n       1317: iconst_1\n       1318: newarray       float\n       1320: dup\n       1321: iconst_0\n-      1322: ldc           #37                 // float 4.0f\n+      1322: ldc           #105                // float 4.0f\n       1324: fastore\n-      1325: invokespecial #54                 // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n+      1325: invokespecial #160                // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n       1328: aastore\n-      1329: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+      1329: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n       1332: iconst_3\n-      1333: anewarray     #19                 // class dev/langchain4j/data/segment/TextSegment\n+      1333: anewarray     #62                 // class dev/langchain4j/data/segment/TextSegment\n       1336: dup\n       1337: iconst_0\n-      1338: ldc           #26                 // String Transformed second sentence.\n-      1340: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+      1338: ldc           #78                 // String Transformed second sentence.\n+      1340: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n       1343: aastore\n       1344: dup\n       1345: iconst_1\n-      1346: ldc           #27                 // String Transformed third sentence.\n-      1348: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+      1346: ldc           #80                 // String Transformed third sentence.\n+      1348: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n       1351: aastore\n       1352: dup\n       1353: iconst_2\n-      1354: ldc           #28                 // String Transformed fourth sentence.\n-      1356: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+      1354: ldc           #82                 // String Transformed fourth sentence.\n+      1356: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n       1359: aastore\n-      1360: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-      1363: invokeinterface #55,  3           // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.addAll:(Ljava/util/List;Ljava/util/List;)Ljava/util/List;\n+      1360: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+      1363: invokeinterface #163,  3          // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.addAll:(Ljava/util/List;Ljava/util/List;)Ljava/util/List;\n       1368: pop\n       1369: aload         10\n-      1371: invokestatic  #51                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-      1374: checkcast     #40                 // class dev/langchain4j/store/embedding/EmbeddingStore\n+      1371: invokestatic  #152                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+      1374: checkcast     #108                // class dev/langchain4j/store/embedding/EmbeddingStore\n       1377: iconst_2\n-      1378: anewarray     #35                 // class dev/langchain4j/data/embedding/Embedding\n+      1378: anewarray     #95                 // class dev/langchain4j/data/embedding/Embedding\n       1381: dup\n       1382: iconst_0\n-      1383: new           #35                 // class dev/langchain4j/data/embedding/Embedding\n+      1383: new           #95                 // class dev/langchain4j/data/embedding/Embedding\n       1386: dup\n       1387: iconst_1\n       1388: newarray       float\n       1390: dup\n       1391: iconst_0\n-      1392: ldc           #38                 // float 5.0f\n+      1392: ldc           #106                // float 5.0f\n       1394: fastore\n-      1395: invokespecial #54                 // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n+      1395: invokespecial #160                // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n       1398: aastore\n       1399: dup\n       1400: iconst_1\n-      1401: new           #35                 // class dev/langchain4j/data/embedding/Embedding\n+      1401: new           #95                 // class dev/langchain4j/data/embedding/Embedding\n       1404: dup\n       1405: iconst_1\n       1406: newarray       float\n       1408: dup\n       1409: iconst_0\n-      1410: ldc           #39                 // float 6.0f\n+      1410: ldc           #107                // float 6.0f\n       1412: fastore\n-      1413: invokespecial #54                 // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n+      1413: invokespecial #160                // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n       1416: aastore\n-      1417: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+      1417: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n       1420: iconst_2\n-      1421: anewarray     #19                 // class dev/langchain4j/data/segment/TextSegment\n+      1421: anewarray     #62                 // class dev/langchain4j/data/segment/TextSegment\n       1424: dup\n       1425: iconst_0\n-      1426: ldc           #29                 // String Transformed fifth sentence.\n-      1428: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+      1426: ldc           #84                 // String Transformed fifth sentence.\n+      1428: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n       1431: aastore\n       1432: dup\n       1433: iconst_1\n-      1434: ldc           #30                 // String Transformed sixth sentence.\n-      1436: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+      1434: ldc           #86                 // String Transformed sixth sentence.\n+      1436: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n       1439: aastore\n-      1440: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-      1443: invokeinterface #55,  3           // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.addAll:(Ljava/util/List;Ljava/util/List;)Ljava/util/List;\n+      1440: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+      1443: invokeinterface #163,  3          // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.addAll:(Ljava/util/List;Ljava/util/List;)Ljava/util/List;\n       1448: pop\n       1449: iconst_1\n-      1450: anewarray     #52                 // class java/lang/Object\n+      1450: anewarray     #2                  // class java/lang/Object\n       1453: dup\n       1454: iconst_0\n       1455: aload         10\n       1457: aastore\n-      1458: invokestatic  #53                 // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+      1458: invokestatic  #156                // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n       1461: return\n       LineNumberTable:\n         line 23: 0\n         line 24: 6\n         line 25: 12\n         line 26: 18\n         line 27: 25\n@@ -1119,13 +1119,13 @@\n           510     952     9 embeddingModel   Ldev/langchain4j/model/embedding/EmbeddingModel;\n           735     727    10 embeddingStore   Ldev/langchain4j/store/embedding/EmbeddingStore;\n           768     694    11 ingestor   Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n           735     727    10 embeddingStore   Ldev/langchain4j/store/embedding/EmbeddingStore<Ldev/langchain4j/data/segment/TextSegment;>;\n     RuntimeVisibleAnnotations:\n-      0: #86()\n+      0: #191()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"EmbeddingStoreIngestorTest.java\"\n InnerClasses:\n-  public static #174= #131 of #129;       // Builder=class dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder of class dev/langchain4j/store/embedding/EmbeddingStoreIngestor\n+  public static #195= #117 of #111;       // Builder=class dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder of class dev/langchain4j/store/embedding/EmbeddingStoreIngestor\n"}]}, {"source1": "dev/langchain4j/store/embedding/EmbeddingStoreTest$MemoryIdEmbeddingStore.class", "source2": "dev/langchain4j/store/embedding/EmbeddingStoreTest$MemoryIdEmbeddingStore.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,96 +1,96 @@\n-  SHA-256 checksum 28e5c8a163915b2a80eb89fe25dec261b39c854141a1f3cd5463acd4cb4afc57\n+  SHA-256 checksum e71619b5eb29d8a2680f738f7df345bcae2073af9cd5a6ecff554d6b1ed65a7d\n   Compiled from \"EmbeddingStoreTest.java\"\n public class dev.langchain4j.store.embedding.EmbeddingStoreTest$MemoryIdEmbeddingStore extends dev.langchain4j.store.embedding.EmbeddingStoreTest$MinimalEmbeddingStore\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #15                         // dev/langchain4j/store/embedding/EmbeddingStoreTest$MemoryIdEmbeddingStore\n-  super_class: #16                        // dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore\n+  this_class: #55                         // dev/langchain4j/store/embedding/EmbeddingStoreTest$MemoryIdEmbeddingStore\n+  super_class: #2                         // dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore\n   interfaces: 0, fields: 0, methods: 2, attributes: 2\n Constant pool:\n-   #1 = Methodref          #16.#40        // dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore.\"<init>\":()V\n-   #2 = Class              #41            // dev/langchain4j/store/embedding/EmbeddingMatch\n-   #3 = Double             0.5d\n-   #5 = Methodref          #42.#43        // java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-   #6 = String             #44            // id\n-   #7 = Fieldref           #45.#46        // java/util/Locale.US:Ljava/util/Locale;\n-   #8 = String             #47            // %s, %s, %d, %.2f\n-   #9 = Class              #48            // java/lang/Object\n-  #10 = Methodref          #49.#50        // dev/langchain4j/data/embedding/Embedding.vectorAsList:()Ljava/util/List;\n-  #11 = Methodref          #51.#52        // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-  #12 = Methodref          #53.#54        // java/lang/String.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;\n-  #13 = Methodref          #2.#55         // dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n-  #14 = Methodref          #56.#57        // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-  #15 = Class              #59            // dev/langchain4j/store/embedding/EmbeddingStoreTest$MemoryIdEmbeddingStore\n-  #16 = Class              #60            // dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore\n-  #17 = Utf8               <init>\n-  #18 = Utf8               ()V\n-  #19 = Utf8               Code\n-  #20 = Utf8               LineNumberTable\n-  #21 = Utf8               LocalVariableTable\n-  #22 = Utf8               this\n-  #23 = Utf8               MemoryIdEmbeddingStore\n-  #24 = Utf8               InnerClasses\n-  #25 = Utf8               Ldev/langchain4j/store/embedding/EmbeddingStoreTest$MemoryIdEmbeddingStore;\n-  #26 = Utf8               findRelevant\n-  #27 = Utf8               (Ljava/lang/Object;Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n-  #28 = Utf8               memoryId\n-  #29 = Utf8               Ljava/lang/Object;\n-  #30 = Utf8               referenceEmbedding\n-  #31 = Utf8               Ldev/langchain4j/data/embedding/Embedding;\n-  #32 = Utf8               maxResults\n-  #33 = Utf8               I\n-  #34 = Utf8               minScore\n-  #35 = Utf8               D\n-  #36 = Utf8               Signature\n-  #37 = Utf8               (Ljava/lang/Object;Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List<Ldev/langchain4j/store/embedding/EmbeddingMatch<Ljava/lang/String;>;>;\n-  #38 = Utf8               SourceFile\n-  #39 = Utf8               EmbeddingStoreTest.java\n-  #40 = NameAndType        #17:#18        // \"<init>\":()V\n-  #41 = Utf8               dev/langchain4j/store/embedding/EmbeddingMatch\n-  #42 = Class              #62            // java/lang/Double\n-  #43 = NameAndType        #63:#64        // valueOf:(D)Ljava/lang/Double;\n-  #44 = Utf8               id\n-  #45 = Class              #65            // java/util/Locale\n-  #46 = NameAndType        #66:#67        // US:Ljava/util/Locale;\n-  #47 = Utf8               %s, %s, %d, %.2f\n-  #48 = Utf8               java/lang/Object\n-  #49 = Class              #68            // dev/langchain4j/data/embedding/Embedding\n-  #50 = NameAndType        #69:#70        // vectorAsList:()Ljava/util/List;\n-  #51 = Class              #71            // java/lang/Integer\n-  #52 = NameAndType        #63:#72        // valueOf:(I)Ljava/lang/Integer;\n-  #53 = Class              #73            // java/lang/String\n-  #54 = NameAndType        #74:#75        // format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;\n-  #55 = NameAndType        #17:#76        // \"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n-  #56 = Class              #77            // java/util/Collections\n-  #57 = NameAndType        #78:#79        // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-  #58 = Class              #80            // dev/langchain4j/store/embedding/EmbeddingStoreTest\n-  #59 = Utf8               dev/langchain4j/store/embedding/EmbeddingStoreTest$MemoryIdEmbeddingStore\n-  #60 = Utf8               dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore\n-  #61 = Utf8               MinimalEmbeddingStore\n-  #62 = Utf8               java/lang/Double\n-  #63 = Utf8               valueOf\n-  #64 = Utf8               (D)Ljava/lang/Double;\n-  #65 = Utf8               java/util/Locale\n-  #66 = Utf8               US\n-  #67 = Utf8               Ljava/util/Locale;\n-  #68 = Utf8               dev/langchain4j/data/embedding/Embedding\n-  #69 = Utf8               vectorAsList\n-  #70 = Utf8               ()Ljava/util/List;\n-  #71 = Utf8               java/lang/Integer\n-  #72 = Utf8               (I)Ljava/lang/Integer;\n-  #73 = Utf8               java/lang/String\n-  #74 = Utf8               format\n-  #75 = Utf8               (Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;\n-  #76 = Utf8               (Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n-  #77 = Utf8               java/util/Collections\n-  #78 = Utf8               singletonList\n-  #79 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n-  #80 = Utf8               dev/langchain4j/store/embedding/EmbeddingStoreTest\n+   #1 = Methodref          #2.#3          // dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore.\"<init>\":()V\n+   #2 = Class              #4             // dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Class              #8             // dev/langchain4j/store/embedding/EmbeddingMatch\n+   #8 = Utf8               dev/langchain4j/store/embedding/EmbeddingMatch\n+   #9 = Double             0.5d\n+  #11 = Methodref          #12.#13        // java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+  #12 = Class              #14            // java/lang/Double\n+  #13 = NameAndType        #15:#16        // valueOf:(D)Ljava/lang/Double;\n+  #14 = Utf8               java/lang/Double\n+  #15 = Utf8               valueOf\n+  #16 = Utf8               (D)Ljava/lang/Double;\n+  #17 = String             #18            // id\n+  #18 = Utf8               id\n+  #19 = Fieldref           #20.#21        // java/util/Locale.US:Ljava/util/Locale;\n+  #20 = Class              #22            // java/util/Locale\n+  #21 = NameAndType        #23:#24        // US:Ljava/util/Locale;\n+  #22 = Utf8               java/util/Locale\n+  #23 = Utf8               US\n+  #24 = Utf8               Ljava/util/Locale;\n+  #25 = String             #26            // %s, %s, %d, %.2f\n+  #26 = Utf8               %s, %s, %d, %.2f\n+  #27 = Class              #28            // java/lang/Object\n+  #28 = Utf8               java/lang/Object\n+  #29 = Methodref          #30.#31        // dev/langchain4j/data/embedding/Embedding.vectorAsList:()Ljava/util/List;\n+  #30 = Class              #32            // dev/langchain4j/data/embedding/Embedding\n+  #31 = NameAndType        #33:#34        // vectorAsList:()Ljava/util/List;\n+  #32 = Utf8               dev/langchain4j/data/embedding/Embedding\n+  #33 = Utf8               vectorAsList\n+  #34 = Utf8               ()Ljava/util/List;\n+  #35 = Methodref          #36.#37        // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+  #36 = Class              #38            // java/lang/Integer\n+  #37 = NameAndType        #15:#39        // valueOf:(I)Ljava/lang/Integer;\n+  #38 = Utf8               java/lang/Integer\n+  #39 = Utf8               (I)Ljava/lang/Integer;\n+  #40 = Methodref          #41.#42        // java/lang/String.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;\n+  #41 = Class              #43            // java/lang/String\n+  #42 = NameAndType        #44:#45        // format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;\n+  #43 = Utf8               java/lang/String\n+  #44 = Utf8               format\n+  #45 = Utf8               (Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;\n+  #46 = Methodref          #7.#47         // dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+  #47 = NameAndType        #5:#48         // \"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+  #48 = Utf8               (Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+  #49 = Methodref          #50.#51        // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+  #50 = Class              #52            // java/util/Collections\n+  #51 = NameAndType        #53:#54        // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+  #52 = Utf8               java/util/Collections\n+  #53 = Utf8               singletonList\n+  #54 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n+  #55 = Class              #56            // dev/langchain4j/store/embedding/EmbeddingStoreTest$MemoryIdEmbeddingStore\n+  #56 = Utf8               dev/langchain4j/store/embedding/EmbeddingStoreTest$MemoryIdEmbeddingStore\n+  #57 = Utf8               Code\n+  #58 = Utf8               LineNumberTable\n+  #59 = Utf8               LocalVariableTable\n+  #60 = Utf8               this\n+  #61 = Utf8               Ldev/langchain4j/store/embedding/EmbeddingStoreTest$MemoryIdEmbeddingStore;\n+  #62 = Utf8               findRelevant\n+  #63 = Utf8               (Ljava/lang/Object;Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n+  #64 = Utf8               memoryId\n+  #65 = Utf8               Ljava/lang/Object;\n+  #66 = Utf8               referenceEmbedding\n+  #67 = Utf8               Ldev/langchain4j/data/embedding/Embedding;\n+  #68 = Utf8               maxResults\n+  #69 = Utf8               I\n+  #70 = Utf8               minScore\n+  #71 = Utf8               D\n+  #72 = Utf8               Signature\n+  #73 = Utf8               (Ljava/lang/Object;Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List<Ldev/langchain4j/store/embedding/EmbeddingMatch<Ljava/lang/String;>;>;\n+  #74 = Utf8               SourceFile\n+  #75 = Utf8               EmbeddingStoreTest.java\n+  #76 = Utf8               InnerClasses\n+  #77 = Class              #78            // dev/langchain4j/store/embedding/EmbeddingStoreTest\n+  #78 = Utf8               dev/langchain4j/store/embedding/EmbeddingStoreTest\n+  #79 = Utf8               MinimalEmbeddingStore\n+  #80 = Utf8               MemoryIdEmbeddingStore\n {\n   public dev.langchain4j.store.embedding.EmbeddingStoreTest$MemoryIdEmbeddingStore();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -103,46 +103,46 @@\n             0       5     0  this   Ldev/langchain4j/store/embedding/EmbeddingStoreTest$MemoryIdEmbeddingStore;\n \n   public java.util.List<dev.langchain4j.store.embedding.EmbeddingMatch<java.lang.String>> findRelevant(java.lang.Object, dev.langchain4j.data.embedding.Embedding, int, double);\n     descriptor: (Ljava/lang/Object;Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=12, locals=6, args_size=5\n-         0: new           #2                  // class dev/langchain4j/store/embedding/EmbeddingMatch\n+         0: new           #7                  // class dev/langchain4j/store/embedding/EmbeddingMatch\n          3: dup\n-         4: ldc2_w        #3                  // double 0.5d\n-         7: invokestatic  #5                  // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-        10: ldc           #6                  // String id\n+         4: ldc2_w        #9                  // double 0.5d\n+         7: invokestatic  #11                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+        10: ldc           #17                 // String id\n         12: aload_2\n-        13: getstatic     #7                  // Field java/util/Locale.US:Ljava/util/Locale;\n-        16: ldc           #8                  // String %s, %s, %d, %.2f\n+        13: getstatic     #19                 // Field java/util/Locale.US:Ljava/util/Locale;\n+        16: ldc           #25                 // String %s, %s, %d, %.2f\n         18: iconst_4\n-        19: anewarray     #9                  // class java/lang/Object\n+        19: anewarray     #27                 // class java/lang/Object\n         22: dup\n         23: iconst_0\n         24: aload_1\n         25: aastore\n         26: dup\n         27: iconst_1\n         28: aload_2\n-        29: invokevirtual #10                 // Method dev/langchain4j/data/embedding/Embedding.vectorAsList:()Ljava/util/List;\n+        29: invokevirtual #29                 // Method dev/langchain4j/data/embedding/Embedding.vectorAsList:()Ljava/util/List;\n         32: aastore\n         33: dup\n         34: iconst_2\n         35: iload_3\n-        36: invokestatic  #11                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        36: invokestatic  #35                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         39: aastore\n         40: dup\n         41: iconst_3\n         42: dload         4\n-        44: invokestatic  #5                  // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+        44: invokestatic  #11                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n         47: aastore\n-        48: invokestatic  #12                 // Method java/lang/String.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;\n-        51: invokespecial #13                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n-        54: invokestatic  #14                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+        48: invokestatic  #40                 // Method java/lang/String.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;\n+        51: invokespecial #46                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+        54: invokestatic  #49                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n         57: areturn\n       LineNumberTable:\n         line 58: 0\n         line 60: 7\n         line 67: 29\n         line 68: 36\n         line 69: 44\n@@ -151,13 +151,13 @@\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      58     0  this   Ldev/langchain4j/store/embedding/EmbeddingStoreTest$MemoryIdEmbeddingStore;\n             0      58     1 memoryId   Ljava/lang/Object;\n             0      58     2 referenceEmbedding   Ldev/langchain4j/data/embedding/Embedding;\n             0      58     3 maxResults   I\n             0      58     4 minScore   D\n-    Signature: #37                          // (Ljava/lang/Object;Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List<Ldev/langchain4j/store/embedding/EmbeddingMatch<Ljava/lang/String;>;>;\n+    Signature: #73                          // (Ljava/lang/Object;Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List<Ldev/langchain4j/store/embedding/EmbeddingMatch<Ljava/lang/String;>;>;\n }\n SourceFile: \"EmbeddingStoreTest.java\"\n InnerClasses:\n-  public static #23= #15 of #58;          // MemoryIdEmbeddingStore=class dev/langchain4j/store/embedding/EmbeddingStoreTest$MemoryIdEmbeddingStore of class dev/langchain4j/store/embedding/EmbeddingStoreTest\n-  public static #61= #16 of #58;          // MinimalEmbeddingStore=class dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore of class dev/langchain4j/store/embedding/EmbeddingStoreTest\n+  public static #79= #2 of #77;           // MinimalEmbeddingStore=class dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore of class dev/langchain4j/store/embedding/EmbeddingStoreTest\n+  public static #80= #55 of #77;          // MemoryIdEmbeddingStore=class dev/langchain4j/store/embedding/EmbeddingStoreTest$MemoryIdEmbeddingStore of class dev/langchain4j/store/embedding/EmbeddingStoreTest\n"}]}, {"source1": "dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore.class", "source2": "dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,115 +1,115 @@\n-  SHA-256 checksum 92013d8f4677623e5fa95585d5839fe1c5b9609705ea0e1b596d608de708867f\n+  SHA-256 checksum 5c1bf237dfbda55f6fe892a2deec901af245c0b528f77b6cd0eff598b7d31684\n   Compiled from \"EmbeddingStoreTest.java\"\n public class dev.langchain4j.store.embedding.EmbeddingStoreTest$MinimalEmbeddingStore extends java.lang.Object implements dev.langchain4j.store.embedding.EmbeddingStore<java.lang.String>\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #17                         // dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore\n-  super_class: #9                         // java/lang/Object\n+  this_class: #54                         // dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 8, attributes: 3\n Constant pool:\n-    #1 = Methodref          #9.#61        // java/lang/Object.\"<init>\":()V\n-    #2 = Class              #62           // dev/langchain4j/store/embedding/EmbeddingMatch\n-    #3 = Double             0.5d\n-    #5 = Methodref          #63.#64       // java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-    #6 = String             #33           // id\n-    #7 = Fieldref           #65.#66       // java/util/Locale.US:Ljava/util/Locale;\n-    #8 = String             #67           // %s, %d, %.2f\n-    #9 = Class              #68           // java/lang/Object\n-   #10 = Methodref          #69.#70       // dev/langchain4j/data/embedding/Embedding.vectorAsList:()Ljava/util/List;\n-   #11 = Methodref          #71.#72       // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-   #12 = Methodref          #15.#73       // java/lang/String.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;\n-   #13 = Methodref          #2.#74        // dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n-   #14 = Methodref          #75.#76       // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-   #15 = Class              #77           // java/lang/String\n-   #16 = Methodref          #17.#78       // dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore.add:(Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/String;)Ljava/lang/String;\n-   #17 = Class              #80           // dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore\n-   #18 = Class              #81           // dev/langchain4j/store/embedding/EmbeddingStore\n-   #19 = Utf8               <init>\n-   #20 = Utf8               ()V\n-   #21 = Utf8               Code\n-   #22 = Utf8               LineNumberTable\n-   #23 = Utf8               LocalVariableTable\n-   #24 = Utf8               this\n-   #25 = Utf8               MinimalEmbeddingStore\n-   #26 = Utf8               InnerClasses\n-   #27 = Utf8               Ldev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore;\n-   #28 = Utf8               add\n-   #29 = Utf8               (Ldev/langchain4j/data/embedding/Embedding;)Ljava/lang/String;\n-   #30 = Utf8               embedding\n-   #31 = Utf8               Ldev/langchain4j/data/embedding/Embedding;\n-   #32 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;)V\n-   #33 = Utf8               id\n-   #34 = Utf8               Ljava/lang/String;\n-   #35 = Utf8               (Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/String;)Ljava/lang/String;\n-   #36 = Utf8               s\n-   #37 = Utf8               addAll\n-   #38 = Utf8               (Ljava/util/List;)Ljava/util/List;\n-   #39 = Utf8               embeddings\n-   #40 = Utf8               Ljava/util/List;\n-   #41 = Utf8               LocalVariableTypeTable\n-   #42 = Utf8               Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;\n-   #43 = Utf8               Signature\n-   #44 = Utf8               (Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;)Ljava/util/List<Ljava/lang/String;>;\n-   #45 = Utf8               (Ljava/util/List;Ljava/util/List;)Ljava/util/List;\n-   #46 = Utf8               embedded\n-   #47 = Utf8               Ljava/util/List<Ljava/lang/String;>;\n-   #48 = Utf8               (Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;Ljava/util/List<Ljava/lang/String;>;)Ljava/util/List<Ljava/lang/String;>;\n-   #49 = Utf8               findRelevant\n-   #50 = Utf8               (Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n-   #51 = Utf8               referenceEmbedding\n-   #52 = Utf8               maxResults\n-   #53 = Utf8               I\n-   #54 = Utf8               minScore\n-   #55 = Utf8               D\n-   #56 = Utf8               (Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List<Ldev/langchain4j/store/embedding/EmbeddingMatch<Ljava/lang/String;>;>;\n-   #57 = Utf8               (Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)Ljava/lang/String;\n-   #58 = Utf8               Ljava/lang/Object;Ldev/langchain4j/store/embedding/EmbeddingStore<Ljava/lang/String;>;\n-   #59 = Utf8               SourceFile\n-   #60 = Utf8               EmbeddingStoreTest.java\n-   #61 = NameAndType        #19:#20       // \"<init>\":()V\n-   #62 = Utf8               dev/langchain4j/store/embedding/EmbeddingMatch\n-   #63 = Class              #82           // java/lang/Double\n-   #64 = NameAndType        #83:#84       // valueOf:(D)Ljava/lang/Double;\n-   #65 = Class              #85           // java/util/Locale\n-   #66 = NameAndType        #86:#87       // US:Ljava/util/Locale;\n-   #67 = Utf8               %s, %d, %.2f\n-   #68 = Utf8               java/lang/Object\n-   #69 = Class              #88           // dev/langchain4j/data/embedding/Embedding\n-   #70 = NameAndType        #89:#90       // vectorAsList:()Ljava/util/List;\n-   #71 = Class              #91           // java/lang/Integer\n-   #72 = NameAndType        #83:#92       // valueOf:(I)Ljava/lang/Integer;\n-   #73 = NameAndType        #93:#94       // format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;\n-   #74 = NameAndType        #19:#95       // \"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n-   #75 = Class              #96           // java/util/Collections\n-   #76 = NameAndType        #97:#98       // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-   #77 = Utf8               java/lang/String\n-   #78 = NameAndType        #28:#35       // add:(Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/String;)Ljava/lang/String;\n-   #79 = Class              #99           // dev/langchain4j/store/embedding/EmbeddingStoreTest\n-   #80 = Utf8               dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore\n-   #81 = Utf8               dev/langchain4j/store/embedding/EmbeddingStore\n-   #82 = Utf8               java/lang/Double\n-   #83 = Utf8               valueOf\n-   #84 = Utf8               (D)Ljava/lang/Double;\n-   #85 = Utf8               java/util/Locale\n-   #86 = Utf8               US\n-   #87 = Utf8               Ljava/util/Locale;\n-   #88 = Utf8               dev/langchain4j/data/embedding/Embedding\n-   #89 = Utf8               vectorAsList\n-   #90 = Utf8               ()Ljava/util/List;\n-   #91 = Utf8               java/lang/Integer\n-   #92 = Utf8               (I)Ljava/lang/Integer;\n-   #93 = Utf8               format\n-   #94 = Utf8               (Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;\n-   #95 = Utf8               (Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n-   #96 = Utf8               java/util/Collections\n-   #97 = Utf8               singletonList\n-   #98 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n-   #99 = Utf8               dev/langchain4j/store/embedding/EmbeddingStoreTest\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Class              #8            // dev/langchain4j/store/embedding/EmbeddingMatch\n+    #8 = Utf8               dev/langchain4j/store/embedding/EmbeddingMatch\n+    #9 = Double             0.5d\n+   #11 = Methodref          #12.#13       // java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+   #12 = Class              #14           // java/lang/Double\n+   #13 = NameAndType        #15:#16       // valueOf:(D)Ljava/lang/Double;\n+   #14 = Utf8               java/lang/Double\n+   #15 = Utf8               valueOf\n+   #16 = Utf8               (D)Ljava/lang/Double;\n+   #17 = String             #18           // id\n+   #18 = Utf8               id\n+   #19 = Fieldref           #20.#21       // java/util/Locale.US:Ljava/util/Locale;\n+   #20 = Class              #22           // java/util/Locale\n+   #21 = NameAndType        #23:#24       // US:Ljava/util/Locale;\n+   #22 = Utf8               java/util/Locale\n+   #23 = Utf8               US\n+   #24 = Utf8               Ljava/util/Locale;\n+   #25 = String             #26           // %s, %d, %.2f\n+   #26 = Utf8               %s, %d, %.2f\n+   #27 = Methodref          #28.#29       // dev/langchain4j/data/embedding/Embedding.vectorAsList:()Ljava/util/List;\n+   #28 = Class              #30           // dev/langchain4j/data/embedding/Embedding\n+   #29 = NameAndType        #31:#32       // vectorAsList:()Ljava/util/List;\n+   #30 = Utf8               dev/langchain4j/data/embedding/Embedding\n+   #31 = Utf8               vectorAsList\n+   #32 = Utf8               ()Ljava/util/List;\n+   #33 = Methodref          #34.#35       // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+   #34 = Class              #36           // java/lang/Integer\n+   #35 = NameAndType        #15:#37       // valueOf:(I)Ljava/lang/Integer;\n+   #36 = Utf8               java/lang/Integer\n+   #37 = Utf8               (I)Ljava/lang/Integer;\n+   #38 = Methodref          #39.#40       // java/lang/String.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;\n+   #39 = Class              #41           // java/lang/String\n+   #40 = NameAndType        #42:#43       // format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;\n+   #41 = Utf8               java/lang/String\n+   #42 = Utf8               format\n+   #43 = Utf8               (Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;\n+   #44 = Methodref          #7.#45        // dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+   #45 = NameAndType        #5:#46        // \"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+   #46 = Utf8               (Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+   #47 = Methodref          #48.#49       // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+   #48 = Class              #50           // java/util/Collections\n+   #49 = NameAndType        #51:#52       // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+   #50 = Utf8               java/util/Collections\n+   #51 = Utf8               singletonList\n+   #52 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n+   #53 = Methodref          #54.#55       // dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore.add:(Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/String;)Ljava/lang/String;\n+   #54 = Class              #56           // dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore\n+   #55 = NameAndType        #57:#58       // add:(Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/String;)Ljava/lang/String;\n+   #56 = Utf8               dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore\n+   #57 = Utf8               add\n+   #58 = Utf8               (Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/String;)Ljava/lang/String;\n+   #59 = Class              #60           // dev/langchain4j/store/embedding/EmbeddingStore\n+   #60 = Utf8               dev/langchain4j/store/embedding/EmbeddingStore\n+   #61 = Utf8               Code\n+   #62 = Utf8               LineNumberTable\n+   #63 = Utf8               LocalVariableTable\n+   #64 = Utf8               this\n+   #65 = Utf8               Ldev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore;\n+   #66 = Utf8               (Ldev/langchain4j/data/embedding/Embedding;)Ljava/lang/String;\n+   #67 = Utf8               embedding\n+   #68 = Utf8               Ldev/langchain4j/data/embedding/Embedding;\n+   #69 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;)V\n+   #70 = Utf8               Ljava/lang/String;\n+   #71 = Utf8               s\n+   #72 = Utf8               addAll\n+   #73 = Utf8               (Ljava/util/List;)Ljava/util/List;\n+   #74 = Utf8               embeddings\n+   #75 = Utf8               Ljava/util/List;\n+   #76 = Utf8               LocalVariableTypeTable\n+   #77 = Utf8               Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;\n+   #78 = Utf8               Signature\n+   #79 = Utf8               (Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;)Ljava/util/List<Ljava/lang/String;>;\n+   #80 = Utf8               (Ljava/util/List;Ljava/util/List;)Ljava/util/List;\n+   #81 = Utf8               embedded\n+   #82 = Utf8               Ljava/util/List<Ljava/lang/String;>;\n+   #83 = Utf8               (Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;Ljava/util/List<Ljava/lang/String;>;)Ljava/util/List<Ljava/lang/String;>;\n+   #84 = Utf8               findRelevant\n+   #85 = Utf8               (Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n+   #86 = Utf8               referenceEmbedding\n+   #87 = Utf8               maxResults\n+   #88 = Utf8               I\n+   #89 = Utf8               minScore\n+   #90 = Utf8               D\n+   #91 = Utf8               (Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List<Ldev/langchain4j/store/embedding/EmbeddingMatch<Ljava/lang/String;>;>;\n+   #92 = Utf8               (Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)Ljava/lang/String;\n+   #93 = Utf8               Ljava/lang/Object;Ldev/langchain4j/store/embedding/EmbeddingStore<Ljava/lang/String;>;\n+   #94 = Utf8               SourceFile\n+   #95 = Utf8               EmbeddingStoreTest.java\n+   #96 = Utf8               InnerClasses\n+   #97 = Class              #98           // dev/langchain4j/store/embedding/EmbeddingStoreTest\n+   #98 = Utf8               dev/langchain4j/store/embedding/EmbeddingStoreTest\n+   #99 = Utf8               MinimalEmbeddingStore\n {\n   public dev.langchain4j.store.embedding.EmbeddingStoreTest$MinimalEmbeddingStore();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -176,15 +176,15 @@\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       2     0  this   Ldev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore;\n             0       2     1 embeddings   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0       2     1 embeddings   Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;\n-    Signature: #44                          // (Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;)Ljava/util/List<Ljava/lang/String;>;\n+    Signature: #79                          // (Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;)Ljava/util/List<Ljava/lang/String;>;\n \n   public java.util.List<java.lang.String> addAll(java.util.List<dev.langchain4j.data.embedding.Embedding>, java.util.List<java.lang.String>);\n     descriptor: (Ljava/util/List;Ljava/util/List;)Ljava/util/List;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=3, args_size=3\n          0: aconst_null\n@@ -196,49 +196,49 @@\n             0       2     0  this   Ldev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore;\n             0       2     1 embeddings   Ljava/util/List;\n             0       2     2 embedded   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0       2     1 embeddings   Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;\n             0       2     2 embedded   Ljava/util/List<Ljava/lang/String;>;\n-    Signature: #48                          // (Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;Ljava/util/List<Ljava/lang/String;>;)Ljava/util/List<Ljava/lang/String;>;\n+    Signature: #83                          // (Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;Ljava/util/List<Ljava/lang/String;>;)Ljava/util/List<Ljava/lang/String;>;\n \n   public java.util.List<dev.langchain4j.store.embedding.EmbeddingMatch<java.lang.String>> findRelevant(dev.langchain4j.data.embedding.Embedding, int, double);\n     descriptor: (Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=12, locals=5, args_size=4\n-         0: new           #2                  // class dev/langchain4j/store/embedding/EmbeddingMatch\n+         0: new           #7                  // class dev/langchain4j/store/embedding/EmbeddingMatch\n          3: dup\n-         4: ldc2_w        #3                  // double 0.5d\n-         7: invokestatic  #5                  // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-        10: ldc           #6                  // String id\n+         4: ldc2_w        #9                  // double 0.5d\n+         7: invokestatic  #11                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+        10: ldc           #17                 // String id\n         12: aload_1\n-        13: getstatic     #7                  // Field java/util/Locale.US:Ljava/util/Locale;\n-        16: ldc           #8                  // String %s, %d, %.2f\n+        13: getstatic     #19                 // Field java/util/Locale.US:Ljava/util/Locale;\n+        16: ldc           #25                 // String %s, %d, %.2f\n         18: iconst_3\n-        19: anewarray     #9                  // class java/lang/Object\n+        19: anewarray     #2                  // class java/lang/Object\n         22: dup\n         23: iconst_0\n         24: aload_1\n-        25: invokevirtual #10                 // Method dev/langchain4j/data/embedding/Embedding.vectorAsList:()Ljava/util/List;\n+        25: invokevirtual #27                 // Method dev/langchain4j/data/embedding/Embedding.vectorAsList:()Ljava/util/List;\n         28: aastore\n         29: dup\n         30: iconst_1\n         31: iload_2\n-        32: invokestatic  #11                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        32: invokestatic  #33                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         35: aastore\n         36: dup\n         37: iconst_2\n         38: dload_3\n-        39: invokestatic  #5                  // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+        39: invokestatic  #11                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n         42: aastore\n-        43: invokestatic  #12                 // Method java/lang/String.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;\n-        46: invokespecial #13                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n-        49: invokestatic  #14                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+        43: invokestatic  #38                 // Method java/lang/String.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;\n+        46: invokespecial #44                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+        49: invokestatic  #47                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n         52: areturn\n       LineNumberTable:\n         line 40: 0\n         line 42: 7\n         line 48: 25\n         line 49: 32\n         line 50: 39\n@@ -246,30 +246,30 @@\n         line 40: 49\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      53     0  this   Ldev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore;\n             0      53     1 referenceEmbedding   Ldev/langchain4j/data/embedding/Embedding;\n             0      53     2 maxResults   I\n             0      53     3 minScore   D\n-    Signature: #56                          // (Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List<Ldev/langchain4j/store/embedding/EmbeddingMatch<Ljava/lang/String;>;>;\n+    Signature: #91                          // (Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List<Ldev/langchain4j/store/embedding/EmbeddingMatch<Ljava/lang/String;>;>;\n \n   public java.lang.String add(dev.langchain4j.data.embedding.Embedding, java.lang.Object);\n     descriptor: (Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)Ljava/lang/String;\n     flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC\n     Code:\n       stack=3, locals=3, args_size=3\n          0: aload_0\n          1: aload_1\n          2: aload_2\n-         3: checkcast     #15                 // class java/lang/String\n-         6: invokevirtual #16                 // Method add:(Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/String;)Ljava/lang/String;\n+         3: checkcast     #39                 // class java/lang/String\n+         6: invokevirtual #53                 // Method add:(Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/String;)Ljava/lang/String;\n          9: areturn\n       LineNumberTable:\n         line 12: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      10     0  this   Ldev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore;\n }\n-Signature: #58                          // Ljava/lang/Object;Ldev/langchain4j/store/embedding/EmbeddingStore<Ljava/lang/String;>;\n+Signature: #93                          // Ljava/lang/Object;Ldev/langchain4j/store/embedding/EmbeddingStore<Ljava/lang/String;>;\n SourceFile: \"EmbeddingStoreTest.java\"\n InnerClasses:\n-  public static #25= #17 of #79;          // MinimalEmbeddingStore=class dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore of class dev/langchain4j/store/embedding/EmbeddingStoreTest\n+  public static #99= #54 of #97;          // MinimalEmbeddingStore=class dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore of class dev/langchain4j/store/embedding/EmbeddingStoreTest\n"}]}, {"source1": "dev/langchain4j/store/embedding/EmbeddingStoreTest.class", "source2": "dev/langchain4j/store/embedding/EmbeddingStoreTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,152 +1,152 @@\n-  SHA-256 checksum be0a510d23acb7fe4c9101465cd31ebabe1061c80b615c8584d9b79eb6086e64\n+  SHA-256 checksum 58210d47a7ccdf374caa1e53c96dbd1f35964deb9c71bc66dd701ed58f6d1c34\n   Compiled from \"EmbeddingStoreTest.java\"\n class dev.langchain4j.store.embedding.EmbeddingStoreTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #30                         // dev/langchain4j/store/embedding/EmbeddingStoreTest\n-  super_class: #31                        // java/lang/Object\n+  this_class: #24                         // dev/langchain4j/store/embedding/EmbeddingStoreTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 4, attributes: 3\n Constant pool:\n-    #1 = Methodref          #31.#59       // java/lang/Object.\"<init>\":()V\n-    #2 = Class              #60           // dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore\n-    #3 = Methodref          #2.#59        // dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore.\"<init>\":()V\n-    #4 = Class              #61           // dev/langchain4j/data/embedding/Embedding\n-    #5 = Float              0.5f\n-    #6 = Float              1.5f\n-    #7 = Methodref          #4.#62        // dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n-    #8 = InterfaceMethodref #63.#64       // dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;I)Ljava/util/List;\n-    #9 = Methodref          #30.#65       // dev/langchain4j/store/embedding/EmbeddingStoreTest.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-   #10 = Class              #66           // dev/langchain4j/store/embedding/EmbeddingMatch\n-   #11 = Double             0.5d\n-   #13 = Methodref          #67.#68       // java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-   #14 = String             #69           // id\n-   #15 = String             #70           // [0.5, 1.5], 12, 0.00\n-   #16 = Methodref          #10.#71       // dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n-   #17 = Methodref          #72.#73       // org/assertj/core/api/ListAssert.contains:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-   #18 = Class              #74           // java/lang/RuntimeException\n-   #19 = Methodref          #30.#75       // dev/langchain4j/store/embedding/EmbeddingStoreTest.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-   #20 = InvokeDynamic      #0:#80        // #0:call:(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/data/embedding/Embedding;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #21 = Methodref          #81.#82       // org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #22 = String             #83           // Not implemented\n-   #23 = Methodref          #84.#85       // org/assertj/core/api/ThrowableAssertAlternative.withMessage:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #24 = Class              #86           // dev/langchain4j/store/embedding/EmbeddingStoreTest$MemoryIdEmbeddingStore\n-   #25 = Methodref          #24.#59       // dev/langchain4j/store/embedding/EmbeddingStoreTest$MemoryIdEmbeddingStore.\"<init>\":()V\n-   #26 = String             #87           // abc\n-   #27 = InterfaceMethodref #63.#88       // dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ljava/lang/Object;Ldev/langchain4j/data/embedding/Embedding;I)Ljava/util/List;\n-   #28 = String             #89           // abc, [0.5, 1.5], 12, 0.00\n-   #29 = String             #90           // MemoryId\n-   #30 = Class              #91           // dev/langchain4j/store/embedding/EmbeddingStoreTest\n-   #31 = Class              #92           // java/lang/Object\n-   #32 = Class              #93           // org/assertj/core/api/WithAssertions\n-   #33 = Utf8               MemoryIdEmbeddingStore\n-   #34 = Utf8               InnerClasses\n-   #35 = Utf8               MinimalEmbeddingStore\n-   #36 = Utf8               <init>\n-   #37 = Utf8               ()V\n-   #38 = Utf8               Code\n-   #39 = Utf8               LineNumberTable\n-   #40 = Utf8               LocalVariableTable\n-   #41 = Utf8               this\n-   #42 = Utf8               Ldev/langchain4j/store/embedding/EmbeddingStoreTest;\n-   #43 = Utf8               test\n-   #44 = Utf8               store\n-   #45 = Utf8               Ldev/langchain4j/store/embedding/EmbeddingStore;\n-   #46 = Utf8               referenceEmbedding\n-   #47 = Utf8               Ldev/langchain4j/data/embedding/Embedding;\n-   #48 = Utf8               LocalVariableTypeTable\n-   #49 = Utf8               Ldev/langchain4j/store/embedding/EmbeddingStore<Ljava/lang/String;>;\n-   #50 = Utf8               RuntimeVisibleAnnotations\n-   #51 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #52 = Utf8               test_memoryId\n-   #53 = Utf8               lambda$test$0\n-   #54 = Utf8               (Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/data/embedding/Embedding;)V\n-   #55 = Utf8               Exceptions\n-   #56 = Class              #94           // java/lang/Throwable\n-   #57 = Utf8               SourceFile\n-   #58 = Utf8               EmbeddingStoreTest.java\n-   #59 = NameAndType        #36:#37       // \"<init>\":()V\n-   #60 = Utf8               dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore\n-   #61 = Utf8               dev/langchain4j/data/embedding/Embedding\n-   #62 = NameAndType        #36:#95       // \"<init>\":([F)V\n-   #63 = Class              #96           // dev/langchain4j/store/embedding/EmbeddingStore\n-   #64 = NameAndType        #97:#98       // findRelevant:(Ldev/langchain4j/data/embedding/Embedding;I)Ljava/util/List;\n-   #65 = NameAndType        #99:#100      // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-   #66 = Utf8               dev/langchain4j/store/embedding/EmbeddingMatch\n-   #67 = Class              #101          // java/lang/Double\n-   #68 = NameAndType        #102:#103     // valueOf:(D)Ljava/lang/Double;\n-   #69 = Utf8               id\n-   #70 = Utf8               [0.5, 1.5], 12, 0.00\n-   #71 = NameAndType        #36:#104      // \"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n-   #72 = Class              #105          // org/assertj/core/api/ListAssert\n-   #73 = NameAndType        #106:#107     // contains:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-   #74 = Utf8               java/lang/RuntimeException\n-   #75 = NameAndType        #108:#109     // assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-   #76 = Utf8               BootstrapMethods\n-   #77 = MethodHandle       6:#110        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-   #78 = MethodType         #37           //  ()V\n-   #79 = MethodHandle       6:#111        // REF_invokeStatic dev/langchain4j/store/embedding/EmbeddingStoreTest.lambda$test$0:(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/data/embedding/Embedding;)V\n-   #80 = NameAndType        #112:#115     // call:(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/data/embedding/Embedding;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #81 = Class              #116          // org/assertj/core/api/ThrowableTypeAssert\n-   #82 = NameAndType        #117:#118     // isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #83 = Utf8               Not implemented\n-   #84 = Class              #119          // org/assertj/core/api/ThrowableAssertAlternative\n-   #85 = NameAndType        #120:#121     // withMessage:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #86 = Utf8               dev/langchain4j/store/embedding/EmbeddingStoreTest$MemoryIdEmbeddingStore\n-   #87 = Utf8               abc\n-   #88 = NameAndType        #97:#122      // findRelevant:(Ljava/lang/Object;Ldev/langchain4j/data/embedding/Embedding;I)Ljava/util/List;\n-   #89 = Utf8               abc, [0.5, 1.5], 12, 0.00\n-   #90 = Utf8               MemoryId\n-   #91 = Utf8               dev/langchain4j/store/embedding/EmbeddingStoreTest\n-   #92 = Utf8               java/lang/Object\n-   #93 = Utf8               org/assertj/core/api/WithAssertions\n-   #94 = Utf8               java/lang/Throwable\n-   #95 = Utf8               ([F)V\n-   #96 = Utf8               dev/langchain4j/store/embedding/EmbeddingStore\n-   #97 = Utf8               findRelevant\n-   #98 = Utf8               (Ldev/langchain4j/data/embedding/Embedding;I)Ljava/util/List;\n-   #99 = Utf8               assertThat\n-  #100 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #101 = Utf8               java/lang/Double\n-  #102 = Utf8               valueOf\n-  #103 = Utf8               (D)Ljava/lang/Double;\n-  #104 = Utf8               (Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n-  #105 = Utf8               org/assertj/core/api/ListAssert\n-  #106 = Utf8               contains\n-  #107 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #108 = Utf8               assertThatExceptionOfType\n-  #109 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-  #110 = Methodref          #123.#124     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #111 = Methodref          #30.#125      // dev/langchain4j/store/embedding/EmbeddingStoreTest.lambda$test$0:(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/data/embedding/Embedding;)V\n-  #112 = Utf8               call\n-  #113 = Class              #127          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #114 = Utf8               ThrowingCallable\n-  #115 = Utf8               (Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/data/embedding/Embedding;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-  #116 = Utf8               org/assertj/core/api/ThrowableTypeAssert\n-  #117 = Utf8               isThrownBy\n-  #118 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #119 = Utf8               org/assertj/core/api/ThrowableAssertAlternative\n-  #120 = Utf8               withMessage\n-  #121 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #122 = Utf8               (Ljava/lang/Object;Ldev/langchain4j/data/embedding/Embedding;I)Ljava/util/List;\n-  #123 = Class              #128          // java/lang/invoke/LambdaMetafactory\n-  #124 = NameAndType        #129:#132     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #125 = NameAndType        #53:#54       // lambda$test$0:(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/data/embedding/Embedding;)V\n-  #126 = Class              #133          // org/assertj/core/api/ThrowableAssert\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Class              #8            // dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore\n+    #8 = Utf8               dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore\n+    #9 = Methodref          #7.#3         // dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore.\"<init>\":()V\n+   #10 = Class              #11           // dev/langchain4j/data/embedding/Embedding\n+   #11 = Utf8               dev/langchain4j/data/embedding/Embedding\n+   #12 = Float              0.5f\n+   #13 = Float              1.5f\n+   #14 = Methodref          #10.#15       // dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n+   #15 = NameAndType        #5:#16        // \"<init>\":([F)V\n+   #16 = Utf8               ([F)V\n+   #17 = InterfaceMethodref #18.#19       // dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;I)Ljava/util/List;\n+   #18 = Class              #20           // dev/langchain4j/store/embedding/EmbeddingStore\n+   #19 = NameAndType        #21:#22       // findRelevant:(Ldev/langchain4j/data/embedding/Embedding;I)Ljava/util/List;\n+   #20 = Utf8               dev/langchain4j/store/embedding/EmbeddingStore\n+   #21 = Utf8               findRelevant\n+   #22 = Utf8               (Ldev/langchain4j/data/embedding/Embedding;I)Ljava/util/List;\n+   #23 = Methodref          #24.#25       // dev/langchain4j/store/embedding/EmbeddingStoreTest.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+   #24 = Class              #26           // dev/langchain4j/store/embedding/EmbeddingStoreTest\n+   #25 = NameAndType        #27:#28       // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+   #26 = Utf8               dev/langchain4j/store/embedding/EmbeddingStoreTest\n+   #27 = Utf8               assertThat\n+   #28 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+   #29 = Class              #30           // dev/langchain4j/store/embedding/EmbeddingMatch\n+   #30 = Utf8               dev/langchain4j/store/embedding/EmbeddingMatch\n+   #31 = Double             0.5d\n+   #33 = Methodref          #34.#35       // java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+   #34 = Class              #36           // java/lang/Double\n+   #35 = NameAndType        #37:#38       // valueOf:(D)Ljava/lang/Double;\n+   #36 = Utf8               java/lang/Double\n+   #37 = Utf8               valueOf\n+   #38 = Utf8               (D)Ljava/lang/Double;\n+   #39 = String             #40           // id\n+   #40 = Utf8               id\n+   #41 = String             #42           // [0.5, 1.5], 12, 0.00\n+   #42 = Utf8               [0.5, 1.5], 12, 0.00\n+   #43 = Methodref          #29.#44       // dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+   #44 = NameAndType        #5:#45        // \"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+   #45 = Utf8               (Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+   #46 = Methodref          #47.#48       // org/assertj/core/api/ListAssert.contains:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #47 = Class              #49           // org/assertj/core/api/ListAssert\n+   #48 = NameAndType        #50:#51       // contains:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #49 = Utf8               org/assertj/core/api/ListAssert\n+   #50 = Utf8               contains\n+   #51 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #52 = Class              #53           // java/lang/RuntimeException\n+   #53 = Utf8               java/lang/RuntimeException\n+   #54 = Methodref          #24.#55       // dev/langchain4j/store/embedding/EmbeddingStoreTest.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #55 = NameAndType        #56:#57       // assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #56 = Utf8               assertThatExceptionOfType\n+   #57 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #58 = InvokeDynamic      #0:#59        // #0:call:(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/data/embedding/Embedding;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #59 = NameAndType        #60:#61       // call:(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/data/embedding/Embedding;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #60 = Utf8               call\n+   #61 = Utf8               (Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/data/embedding/Embedding;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #62 = Methodref          #63.#64       // org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #63 = Class              #65           // org/assertj/core/api/ThrowableTypeAssert\n+   #64 = NameAndType        #66:#67       // isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #65 = Utf8               org/assertj/core/api/ThrowableTypeAssert\n+   #66 = Utf8               isThrownBy\n+   #67 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #68 = String             #69           // Not implemented\n+   #69 = Utf8               Not implemented\n+   #70 = Methodref          #71.#72       // org/assertj/core/api/ThrowableAssertAlternative.withMessage:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #71 = Class              #73           // org/assertj/core/api/ThrowableAssertAlternative\n+   #72 = NameAndType        #74:#75       // withMessage:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #73 = Utf8               org/assertj/core/api/ThrowableAssertAlternative\n+   #74 = Utf8               withMessage\n+   #75 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #76 = Class              #77           // dev/langchain4j/store/embedding/EmbeddingStoreTest$MemoryIdEmbeddingStore\n+   #77 = Utf8               dev/langchain4j/store/embedding/EmbeddingStoreTest$MemoryIdEmbeddingStore\n+   #78 = Methodref          #76.#3        // dev/langchain4j/store/embedding/EmbeddingStoreTest$MemoryIdEmbeddingStore.\"<init>\":()V\n+   #79 = String             #80           // abc\n+   #80 = Utf8               abc\n+   #81 = InterfaceMethodref #18.#82       // dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ljava/lang/Object;Ldev/langchain4j/data/embedding/Embedding;I)Ljava/util/List;\n+   #82 = NameAndType        #21:#83       // findRelevant:(Ljava/lang/Object;Ldev/langchain4j/data/embedding/Embedding;I)Ljava/util/List;\n+   #83 = Utf8               (Ljava/lang/Object;Ldev/langchain4j/data/embedding/Embedding;I)Ljava/util/List;\n+   #84 = String             #85           // abc, [0.5, 1.5], 12, 0.00\n+   #85 = Utf8               abc, [0.5, 1.5], 12, 0.00\n+   #86 = String             #87           // MemoryId\n+   #87 = Utf8               MemoryId\n+   #88 = Class              #89           // org/assertj/core/api/WithAssertions\n+   #89 = Utf8               org/assertj/core/api/WithAssertions\n+   #90 = Utf8               Code\n+   #91 = Utf8               LineNumberTable\n+   #92 = Utf8               LocalVariableTable\n+   #93 = Utf8               this\n+   #94 = Utf8               Ldev/langchain4j/store/embedding/EmbeddingStoreTest;\n+   #95 = Utf8               test\n+   #96 = Utf8               store\n+   #97 = Utf8               Ldev/langchain4j/store/embedding/EmbeddingStore;\n+   #98 = Utf8               referenceEmbedding\n+   #99 = Utf8               Ldev/langchain4j/data/embedding/Embedding;\n+  #100 = Utf8               LocalVariableTypeTable\n+  #101 = Utf8               Ldev/langchain4j/store/embedding/EmbeddingStore<Ljava/lang/String;>;\n+  #102 = Utf8               RuntimeVisibleAnnotations\n+  #103 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #104 = Utf8               test_memoryId\n+  #105 = Utf8               lambda$test$0\n+  #106 = Utf8               (Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/data/embedding/Embedding;)V\n+  #107 = Utf8               Exceptions\n+  #108 = Class              #109          // java/lang/Throwable\n+  #109 = Utf8               java/lang/Throwable\n+  #110 = Utf8               SourceFile\n+  #111 = Utf8               EmbeddingStoreTest.java\n+  #112 = Utf8               BootstrapMethods\n+  #113 = MethodHandle       6:#114        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #114 = Methodref          #115.#116     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #115 = Class              #117          // java/lang/invoke/LambdaMetafactory\n+  #116 = NameAndType        #118:#119     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #117 = Utf8               java/lang/invoke/LambdaMetafactory\n+  #118 = Utf8               metafactory\n+  #119 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #120 = MethodType         #6            //  ()V\n+  #121 = MethodHandle       6:#122        // REF_invokeStatic dev/langchain4j/store/embedding/EmbeddingStoreTest.lambda$test$0:(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/data/embedding/Embedding;)V\n+  #122 = Methodref          #24.#123      // dev/langchain4j/store/embedding/EmbeddingStoreTest.lambda$test$0:(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/data/embedding/Embedding;)V\n+  #123 = NameAndType        #105:#106     // lambda$test$0:(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/data/embedding/Embedding;)V\n+  #124 = Utf8               InnerClasses\n+  #125 = Utf8               MinimalEmbeddingStore\n+  #126 = Class              #127          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n   #127 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #128 = Utf8               java/lang/invoke/LambdaMetafactory\n-  #129 = Utf8               metafactory\n-  #130 = Class              #135          // java/lang/invoke/MethodHandles$Lookup\n-  #131 = Utf8               Lookup\n-  #132 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #133 = Utf8               org/assertj/core/api/ThrowableAssert\n-  #134 = Class              #136          // java/lang/invoke/MethodHandles\n-  #135 = Utf8               java/lang/invoke/MethodHandles$Lookup\n-  #136 = Utf8               java/lang/invoke/MethodHandles\n+  #128 = Class              #129          // org/assertj/core/api/ThrowableAssert\n+  #129 = Utf8               org/assertj/core/api/ThrowableAssert\n+  #130 = Utf8               ThrowingCallable\n+  #131 = Utf8               MemoryIdEmbeddingStore\n+  #132 = Class              #133          // java/lang/invoke/MethodHandles$Lookup\n+  #133 = Utf8               java/lang/invoke/MethodHandles$Lookup\n+  #134 = Class              #135          // java/lang/invoke/MethodHandles\n+  #135 = Utf8               java/lang/invoke/MethodHandles\n+  #136 = Utf8               Lookup\n {\n   dev.langchain4j.store.embedding.EmbeddingStoreTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -159,62 +159,62 @@\n             0       5     0  this   Ldev/langchain4j/store/embedding/EmbeddingStoreTest;\n \n   public void test();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=10, locals=3, args_size=1\n-         0: new           #2                  // class dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore\n+         0: new           #7                  // class dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore.\"<init>\":()V\n          7: astore_1\n-         8: new           #4                  // class dev/langchain4j/data/embedding/Embedding\n+         8: new           #10                 // class dev/langchain4j/data/embedding/Embedding\n         11: dup\n         12: iconst_2\n         13: newarray       float\n         15: dup\n         16: iconst_0\n-        17: ldc           #5                  // float 0.5f\n+        17: ldc           #12                 // float 0.5f\n         19: fastore\n         20: dup\n         21: iconst_1\n-        22: ldc           #6                  // float 1.5f\n+        22: ldc           #13                 // float 1.5f\n         24: fastore\n-        25: invokespecial #7                  // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n+        25: invokespecial #14                 // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n         28: astore_2\n         29: aload_0\n         30: aload_1\n         31: aload_2\n         32: bipush        12\n-        34: invokeinterface #8,  3            // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;I)Ljava/util/List;\n-        39: invokevirtual #9                  // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+        34: invokeinterface #17,  3           // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;I)Ljava/util/List;\n+        39: invokevirtual #23                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n         42: iconst_1\n-        43: anewarray     #10                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n+        43: anewarray     #29                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n         46: dup\n         47: iconst_0\n-        48: new           #10                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n+        48: new           #29                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n         51: dup\n-        52: ldc2_w        #11                 // double 0.5d\n-        55: invokestatic  #13                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-        58: ldc           #14                 // String id\n+        52: ldc2_w        #31                 // double 0.5d\n+        55: invokestatic  #33                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+        58: ldc           #39                 // String id\n         60: aload_2\n-        61: ldc           #15                 // String [0.5, 1.5], 12, 0.00\n-        63: invokespecial #16                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+        61: ldc           #41                 // String [0.5, 1.5], 12, 0.00\n+        63: invokespecial #43                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n         66: aastore\n-        67: invokevirtual #17                 // Method org/assertj/core/api/ListAssert.contains:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+        67: invokevirtual #46                 // Method org/assertj/core/api/ListAssert.contains:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n         70: pop\n         71: aload_0\n-        72: ldc           #18                 // class java/lang/RuntimeException\n-        74: invokevirtual #19                 // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+        72: ldc           #52                 // class java/lang/RuntimeException\n+        74: invokevirtual #54                 // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n         77: aload_1\n         78: aload_2\n-        79: invokedynamic #20,  0             // InvokeDynamic #0:call:(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/data/embedding/Embedding;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-        84: invokevirtual #21                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-        87: ldc           #22                 // String Not implemented\n-        89: invokevirtual #23                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessage:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        79: invokedynamic #58,  0             // InvokeDynamic #0:call:(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/data/embedding/Embedding;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+        84: invokevirtual #62                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        87: ldc           #68                 // String Not implemented\n+        89: invokevirtual #70                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessage:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n         92: pop\n         93: return\n       LineNumberTable:\n         line 75: 0\n         line 77: 8\n         line 79: 29\n         line 82: 55\n@@ -228,61 +228,61 @@\n             0      94     0  this   Ldev/langchain4j/store/embedding/EmbeddingStoreTest;\n             8      86     1 store   Ldev/langchain4j/store/embedding/EmbeddingStore;\n            29      65     2 referenceEmbedding   Ldev/langchain4j/data/embedding/Embedding;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             8      86     1 store   Ldev/langchain4j/store/embedding/EmbeddingStore<Ljava/lang/String;>;\n     RuntimeVisibleAnnotations:\n-      0: #51()\n+      0: #103()\n         org.junit.jupiter.api.Test\n \n   public void test_memoryId();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=10, locals=3, args_size=1\n-         0: new           #24                 // class dev/langchain4j/store/embedding/EmbeddingStoreTest$MemoryIdEmbeddingStore\n+         0: new           #76                 // class dev/langchain4j/store/embedding/EmbeddingStoreTest$MemoryIdEmbeddingStore\n          3: dup\n-         4: invokespecial #25                 // Method dev/langchain4j/store/embedding/EmbeddingStoreTest$MemoryIdEmbeddingStore.\"<init>\":()V\n+         4: invokespecial #78                 // Method dev/langchain4j/store/embedding/EmbeddingStoreTest$MemoryIdEmbeddingStore.\"<init>\":()V\n          7: astore_1\n-         8: new           #4                  // class dev/langchain4j/data/embedding/Embedding\n+         8: new           #10                 // class dev/langchain4j/data/embedding/Embedding\n         11: dup\n         12: iconst_2\n         13: newarray       float\n         15: dup\n         16: iconst_0\n-        17: ldc           #5                  // float 0.5f\n+        17: ldc           #12                 // float 0.5f\n         19: fastore\n         20: dup\n         21: iconst_1\n-        22: ldc           #6                  // float 1.5f\n+        22: ldc           #13                 // float 1.5f\n         24: fastore\n-        25: invokespecial #7                  // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n+        25: invokespecial #14                 // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n         28: astore_2\n         29: aload_0\n         30: aload_1\n-        31: ldc           #26                 // String abc\n+        31: ldc           #79                 // String abc\n         33: aload_2\n         34: bipush        12\n-        36: invokeinterface #27,  4           // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ljava/lang/Object;Ldev/langchain4j/data/embedding/Embedding;I)Ljava/util/List;\n-        41: invokevirtual #9                  // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+        36: invokeinterface #81,  4           // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ljava/lang/Object;Ldev/langchain4j/data/embedding/Embedding;I)Ljava/util/List;\n+        41: invokevirtual #23                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n         44: iconst_1\n-        45: anewarray     #10                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n+        45: anewarray     #29                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n         48: dup\n         49: iconst_0\n-        50: new           #10                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n+        50: new           #29                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n         53: dup\n-        54: ldc2_w        #11                 // double 0.5d\n-        57: invokestatic  #13                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-        60: ldc           #14                 // String id\n+        54: ldc2_w        #31                 // double 0.5d\n+        57: invokestatic  #33                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+        60: ldc           #39                 // String id\n         62: aload_2\n-        63: ldc           #28                 // String abc, [0.5, 1.5], 12, 0.00\n-        65: invokespecial #16                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+        63: ldc           #84                 // String abc, [0.5, 1.5], 12, 0.00\n+        65: invokespecial #43                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n         68: aastore\n-        69: invokevirtual #17                 // Method org/assertj/core/api/ListAssert.contains:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+        69: invokevirtual #46                 // Method org/assertj/core/api/ListAssert.contains:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n         72: pop\n         73: return\n       LineNumberTable:\n         line 94: 0\n         line 96: 8\n         line 98: 29\n         line 101: 57\n@@ -293,43 +293,43 @@\n             0      74     0  this   Ldev/langchain4j/store/embedding/EmbeddingStoreTest;\n             8      66     1 store   Ldev/langchain4j/store/embedding/EmbeddingStore;\n            29      45     2 referenceEmbedding   Ldev/langchain4j/data/embedding/Embedding;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             8      66     1 store   Ldev/langchain4j/store/embedding/EmbeddingStore<Ljava/lang/String;>;\n     RuntimeVisibleAnnotations:\n-      0: #51()\n+      0: #103()\n         org.junit.jupiter.api.Test\n \n   private static void lambda$test$0(dev.langchain4j.store.embedding.EmbeddingStore, dev.langchain4j.data.embedding.Embedding) throws java.lang.Throwable;\n     descriptor: (Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/data/embedding/Embedding;)V\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=4, locals=2, args_size=2\n          0: aload_0\n-         1: ldc           #29                 // String MemoryId\n+         1: ldc           #86                 // String MemoryId\n          3: aload_1\n          4: bipush        12\n-         6: invokeinterface #27,  4           // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ljava/lang/Object;Ldev/langchain4j/data/embedding/Embedding;I)Ljava/util/List;\n+         6: invokeinterface #81,  4           // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ljava/lang/Object;Ldev/langchain4j/data/embedding/Embedding;I)Ljava/util/List;\n         11: pop\n         12: return\n       LineNumberTable:\n         line 88: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      13     0 store   Ldev/langchain4j/store/embedding/EmbeddingStore;\n             0      13     1 referenceEmbedding   Ldev/langchain4j/data/embedding/Embedding;\n     Exceptions:\n       throws java.lang.Throwable\n }\n SourceFile: \"EmbeddingStoreTest.java\"\n-InnerClasses:\n-  public static #33= #24 of #30;          // MemoryIdEmbeddingStore=class dev/langchain4j/store/embedding/EmbeddingStoreTest$MemoryIdEmbeddingStore of class dev/langchain4j/store/embedding/EmbeddingStoreTest\n-  public static #35= #2 of #30;           // MinimalEmbeddingStore=class dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore of class dev/langchain4j/store/embedding/EmbeddingStoreTest\n-  public static #114= #113 of #126;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n-  public static final #131= #130 of #134; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n BootstrapMethods:\n-  0: #77 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  0: #113 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #78 ()V\n-      #79 REF_invokeStatic dev/langchain4j/store/embedding/EmbeddingStoreTest.lambda$test$0:(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/data/embedding/Embedding;)V\n-      #78 ()V\n+      #120 ()V\n+      #121 REF_invokeStatic dev/langchain4j/store/embedding/EmbeddingStoreTest.lambda$test$0:(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/data/embedding/Embedding;)V\n+      #120 ()V\n+InnerClasses:\n+  public static #125= #7 of #24;          // MinimalEmbeddingStore=class dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore of class dev/langchain4j/store/embedding/EmbeddingStoreTest\n+  public static #130= #126 of #128;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n+  public static #131= #76 of #24;         // MemoryIdEmbeddingStore=class dev/langchain4j/store/embedding/EmbeddingStoreTest$MemoryIdEmbeddingStore of class dev/langchain4j/store/embedding/EmbeddingStoreTest\n+  public static final #136= #132 of #134; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n"}]}, {"source1": "dev/langchain4j/store/embedding/EmbeddingStoreWithoutMetadataIT.class", "source2": "dev/langchain4j/store/embedding/EmbeddingStoreWithoutMetadataIT.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -40,30 +40,30 @@\n         this.awaitUntilPersisted();\n         final List<EmbeddingMatch<TextSegment>> relevant = this.embeddingStore().findRelevant(embedding, 10);\n         Assertions.assertThat((List)relevant).hasSize(1);\n         final EmbeddingMatch<TextSegment> match = (EmbeddingMatch<TextSegment>)relevant.get(0);\n         Assertions.assertThat(match.score()).isCloseTo(1.0, Percentage.withPercentage(1.0));\n         Assertions.assertThat(match.embeddingId()).isEqualTo(id);\n         Assertions.assertThat((Object)match.embedding()).isEqualTo((Object)embedding);\n-        Assertions.assertThat(match.embedded()).isNull();\n+        Assertions.assertThat((Object)match.embedded()).isNull();\n     }\n     \n     @Test\n     void should_add_embedding_with_id() {\n         final String id = Utils.randomUUID();\n         final Embedding embedding = (Embedding)this.embeddingModel().embed(\"hello\").content();\n         this.embeddingStore().add(id, embedding);\n         this.awaitUntilPersisted();\n         final List<EmbeddingMatch<TextSegment>> relevant = this.embeddingStore().findRelevant(embedding, 10);\n         Assertions.assertThat((List)relevant).hasSize(1);\n         final EmbeddingMatch<TextSegment> match = (EmbeddingMatch<TextSegment>)relevant.get(0);\n         Assertions.assertThat(match.score()).isCloseTo(1.0, Percentage.withPercentage(1.0));\n         Assertions.assertThat(match.embeddingId()).isEqualTo(id);\n         Assertions.assertThat((Object)match.embedding()).isEqualTo((Object)embedding);\n-        Assertions.assertThat(match.embedded()).isNull();\n+        Assertions.assertThat((Object)match.embedded()).isNull();\n     }\n     \n     @Test\n     void should_add_embedding_with_segment() {\n         final TextSegment segment = TextSegment.from(\"hello\");\n         final Embedding embedding = (Embedding)this.embeddingModel().embed(segment.text()).content();\n         final String id = this.embeddingStore().add(embedding, (Object)segment);\n@@ -71,15 +71,15 @@\n         this.awaitUntilPersisted();\n         final List<EmbeddingMatch<TextSegment>> relevant = this.embeddingStore().findRelevant(embedding, 10);\n         Assertions.assertThat((List)relevant).hasSize(1);\n         final EmbeddingMatch<TextSegment> match = (EmbeddingMatch<TextSegment>)relevant.get(0);\n         Assertions.assertThat(match.score()).isCloseTo(1.0, Percentage.withPercentage(1.0));\n         Assertions.assertThat(match.embeddingId()).isEqualTo(id);\n         Assertions.assertThat((Object)match.embedding()).isEqualTo((Object)embedding);\n-        Assertions.assertThat(match.embedded()).isEqualTo((Object)segment);\n+        Assertions.assertThat((Object)match.embedded()).isEqualTo((Object)segment);\n     }\n     \n     @Test\n     void should_add_multiple_embeddings() {\n         final Embedding firstEmbedding = (Embedding)this.embeddingModel().embed(\"hello\").content();\n         final Embedding secondEmbedding = (Embedding)this.embeddingModel().embed(\"hi\").content();\n         final List<String> ids = this.embeddingStore().addAll((List)Arrays.asList(firstEmbedding, secondEmbedding));\n@@ -90,20 +90,20 @@\n         this.awaitUntilPersisted();\n         final List<EmbeddingMatch<TextSegment>> relevant = this.embeddingStore().findRelevant(firstEmbedding, 10);\n         Assertions.assertThat((List)relevant).hasSize(2);\n         final EmbeddingMatch<TextSegment> firstMatch = (EmbeddingMatch<TextSegment>)relevant.get(0);\n         Assertions.assertThat(firstMatch.score()).isCloseTo(1.0, Percentage.withPercentage(1.0));\n         Assertions.assertThat(firstMatch.embeddingId()).isEqualTo((String)ids.get(0));\n         Assertions.assertThat((Object)firstMatch.embedding()).isEqualTo((Object)firstEmbedding);\n-        Assertions.assertThat(firstMatch.embedded()).isNull();\n+        Assertions.assertThat((Object)firstMatch.embedded()).isNull();\n         final EmbeddingMatch<TextSegment> secondMatch = (EmbeddingMatch<TextSegment>)relevant.get(1);\n         Assertions.assertThat(secondMatch.score()).isCloseTo(RelevanceScore.fromCosineSimilarity(CosineSimilarity.between(firstEmbedding, secondEmbedding)), Percentage.withPercentage(1.0));\n         Assertions.assertThat(secondMatch.embeddingId()).isEqualTo((String)ids.get(1));\n         Assertions.assertThat(CosineSimilarity.between(secondMatch.embedding(), secondEmbedding)).isCloseTo(1.0, Percentage.withPercentage(0.01));\n-        Assertions.assertThat(secondMatch.embedded()).isNull();\n+        Assertions.assertThat((Object)secondMatch.embedded()).isNull();\n     }\n     \n     @Test\n     void should_add_multiple_embeddings_with_segments() {\n         final TextSegment firstSegment = TextSegment.from(\"hello\");\n         final Embedding firstEmbedding = (Embedding)this.embeddingModel().embed(firstSegment.text()).content();\n         final TextSegment secondSegment = TextSegment.from(\"hi\");\n@@ -116,20 +116,20 @@\n         this.awaitUntilPersisted();\n         final List<EmbeddingMatch<TextSegment>> relevant = this.embeddingStore().findRelevant(firstEmbedding, 10);\n         Assertions.assertThat((List)relevant).hasSize(2);\n         final EmbeddingMatch<TextSegment> firstMatch = (EmbeddingMatch<TextSegment>)relevant.get(0);\n         Assertions.assertThat(firstMatch.score()).isCloseTo(1.0, Percentage.withPercentage(1.0));\n         Assertions.assertThat(firstMatch.embeddingId()).isEqualTo((String)ids.get(0));\n         Assertions.assertThat((Object)firstMatch.embedding()).isEqualTo((Object)firstEmbedding);\n-        Assertions.assertThat(firstMatch.embedded()).isEqualTo((Object)firstSegment);\n+        Assertions.assertThat((Object)firstMatch.embedded()).isEqualTo((Object)firstSegment);\n         final EmbeddingMatch<TextSegment> secondMatch = (EmbeddingMatch<TextSegment>)relevant.get(1);\n         Assertions.assertThat(secondMatch.score()).isCloseTo(RelevanceScore.fromCosineSimilarity(CosineSimilarity.between(firstEmbedding, secondEmbedding)), Percentage.withPercentage(1.0));\n         Assertions.assertThat(secondMatch.embeddingId()).isEqualTo((String)ids.get(1));\n         Assertions.assertThat(CosineSimilarity.between(secondMatch.embedding(), secondEmbedding)).isCloseTo(1.0, Percentage.withPercentage(0.01));\n-        Assertions.assertThat(secondMatch.embedded()).isEqualTo((Object)secondSegment);\n+        Assertions.assertThat((Object)secondMatch.embedded()).isEqualTo((Object)secondSegment);\n     }\n     \n     @Test\n     void should_find_with_min_score() {\n         final String firstId = Utils.randomUUID();\n         final Embedding firstEmbedding = (Embedding)this.embeddingModel().embed(\"hello\").content();\n         this.embeddingStore().add(firstId, firstEmbedding);\n"}]}, {"source1": "dev/langchain4j/store/embedding/RelevanceScoreTest.class", "source2": "dev/langchain4j/store/embedding/RelevanceScoreTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,54 +1,54 @@\n-  SHA-256 checksum f35af2b62b043f0a1229b9675f3861249975da08e8fc8926643cdd980ae6bb1d\n+  SHA-256 checksum ac2ea3846818d26922ac0c3f2ce060eb6ed36f6eb7a101b34c744997a8060ac8\n   Compiled from \"RelevanceScoreTest.java\"\n class dev.langchain4j.store.embedding.RelevanceScoreTest\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #9                          // dev/langchain4j/store/embedding/RelevanceScoreTest\n-  super_class: #10                        // java/lang/Object\n+  this_class: #28                         // dev/langchain4j/store/embedding/RelevanceScoreTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 0, methods: 2, attributes: 1\n Constant pool:\n-   #1 = Methodref          #10.#23        // java/lang/Object.\"<init>\":()V\n-   #2 = Double             -1.0d\n-   #4 = Methodref          #24.#25        // dev/langchain4j/store/embedding/RelevanceScore.fromCosineSimilarity:(D)D\n-   #5 = Methodref          #26.#27        // org/assertj/core/api/Assertions.assertThat:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n-   #6 = Methodref          #28.#29        // org/assertj/core/api/AbstractDoubleAssert.isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n-   #7 = Double             0.5d\n-   #9 = Class              #30            // dev/langchain4j/store/embedding/RelevanceScoreTest\n-  #10 = Class              #31            // java/lang/Object\n-  #11 = Utf8               <init>\n-  #12 = Utf8               ()V\n-  #13 = Utf8               Code\n-  #14 = Utf8               LineNumberTable\n-  #15 = Utf8               LocalVariableTable\n-  #16 = Utf8               this\n-  #17 = Utf8               Ldev/langchain4j/store/embedding/RelevanceScoreTest;\n-  #18 = Utf8               should_convert_cosine_similarity_into_relevance_score\n-  #19 = Utf8               RuntimeVisibleAnnotations\n-  #20 = Utf8               Lorg/junit/jupiter/api/Test;\n-  #21 = Utf8               SourceFile\n-  #22 = Utf8               RelevanceScoreTest.java\n-  #23 = NameAndType        #11:#12        // \"<init>\":()V\n-  #24 = Class              #32            // dev/langchain4j/store/embedding/RelevanceScore\n-  #25 = NameAndType        #33:#34        // fromCosineSimilarity:(D)D\n-  #26 = Class              #35            // org/assertj/core/api/Assertions\n-  #27 = NameAndType        #36:#37        // assertThat:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n-  #28 = Class              #38            // org/assertj/core/api/AbstractDoubleAssert\n-  #29 = NameAndType        #39:#37        // isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n-  #30 = Utf8               dev/langchain4j/store/embedding/RelevanceScoreTest\n-  #31 = Utf8               java/lang/Object\n-  #32 = Utf8               dev/langchain4j/store/embedding/RelevanceScore\n-  #33 = Utf8               fromCosineSimilarity\n-  #34 = Utf8               (D)D\n-  #35 = Utf8               org/assertj/core/api/Assertions\n-  #36 = Utf8               assertThat\n-  #37 = Utf8               (D)Lorg/assertj/core/api/AbstractDoubleAssert;\n-  #38 = Utf8               org/assertj/core/api/AbstractDoubleAssert\n-  #39 = Utf8               isEqualTo\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Double             -1.0d\n+   #9 = Methodref          #10.#11        // dev/langchain4j/store/embedding/RelevanceScore.fromCosineSimilarity:(D)D\n+  #10 = Class              #12            // dev/langchain4j/store/embedding/RelevanceScore\n+  #11 = NameAndType        #13:#14        // fromCosineSimilarity:(D)D\n+  #12 = Utf8               dev/langchain4j/store/embedding/RelevanceScore\n+  #13 = Utf8               fromCosineSimilarity\n+  #14 = Utf8               (D)D\n+  #15 = Methodref          #16.#17        // org/assertj/core/api/Assertions.assertThat:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+  #16 = Class              #18            // org/assertj/core/api/Assertions\n+  #17 = NameAndType        #19:#20        // assertThat:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+  #18 = Utf8               org/assertj/core/api/Assertions\n+  #19 = Utf8               assertThat\n+  #20 = Utf8               (D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+  #21 = Methodref          #22.#23        // org/assertj/core/api/AbstractDoubleAssert.isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+  #22 = Class              #24            // org/assertj/core/api/AbstractDoubleAssert\n+  #23 = NameAndType        #25:#20        // isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+  #24 = Utf8               org/assertj/core/api/AbstractDoubleAssert\n+  #25 = Utf8               isEqualTo\n+  #26 = Double             0.5d\n+  #28 = Class              #29            // dev/langchain4j/store/embedding/RelevanceScoreTest\n+  #29 = Utf8               dev/langchain4j/store/embedding/RelevanceScoreTest\n+  #30 = Utf8               Code\n+  #31 = Utf8               LineNumberTable\n+  #32 = Utf8               LocalVariableTable\n+  #33 = Utf8               this\n+  #34 = Utf8               Ldev/langchain4j/store/embedding/RelevanceScoreTest;\n+  #35 = Utf8               should_convert_cosine_similarity_into_relevance_score\n+  #36 = Utf8               RuntimeVisibleAnnotations\n+  #37 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #38 = Utf8               SourceFile\n+  #39 = Utf8               RelevanceScoreTest.java\n {\n   dev.langchain4j.store.embedding.RelevanceScoreTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -61,39 +61,39 @@\n             0       5     0  this   Ldev/langchain4j/store/embedding/RelevanceScoreTest;\n \n   void should_convert_cosine_similarity_into_relevance_score();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=3, locals=1, args_size=1\n-         0: ldc2_w        #2                  // double -1.0d\n-         3: invokestatic  #4                  // Method dev/langchain4j/store/embedding/RelevanceScore.fromCosineSimilarity:(D)D\n-         6: invokestatic  #5                  // Method org/assertj/core/api/Assertions.assertThat:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+         0: ldc2_w        #7                  // double -1.0d\n+         3: invokestatic  #9                  // Method dev/langchain4j/store/embedding/RelevanceScore.fromCosineSimilarity:(D)D\n+         6: invokestatic  #15                 // Method org/assertj/core/api/Assertions.assertThat:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n          9: dconst_0\n-        10: invokevirtual #6                  // Method org/assertj/core/api/AbstractDoubleAssert.isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+        10: invokevirtual #21                 // Method org/assertj/core/api/AbstractDoubleAssert.isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n         13: pop\n         14: dconst_0\n-        15: invokestatic  #4                  // Method dev/langchain4j/store/embedding/RelevanceScore.fromCosineSimilarity:(D)D\n-        18: invokestatic  #5                  // Method org/assertj/core/api/Assertions.assertThat:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n-        21: ldc2_w        #7                  // double 0.5d\n-        24: invokevirtual #6                  // Method org/assertj/core/api/AbstractDoubleAssert.isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+        15: invokestatic  #9                  // Method dev/langchain4j/store/embedding/RelevanceScore.fromCosineSimilarity:(D)D\n+        18: invokestatic  #15                 // Method org/assertj/core/api/Assertions.assertThat:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+        21: ldc2_w        #26                 // double 0.5d\n+        24: invokevirtual #21                 // Method org/assertj/core/api/AbstractDoubleAssert.isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n         27: pop\n         28: dconst_1\n-        29: invokestatic  #4                  // Method dev/langchain4j/store/embedding/RelevanceScore.fromCosineSimilarity:(D)D\n-        32: invokestatic  #5                  // Method org/assertj/core/api/Assertions.assertThat:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+        29: invokestatic  #9                  // Method dev/langchain4j/store/embedding/RelevanceScore.fromCosineSimilarity:(D)D\n+        32: invokestatic  #15                 // Method org/assertj/core/api/Assertions.assertThat:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n         35: dconst_1\n-        36: invokevirtual #6                  // Method org/assertj/core/api/AbstractDoubleAssert.isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+        36: invokevirtual #21                 // Method org/assertj/core/api/AbstractDoubleAssert.isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n         39: pop\n         40: return\n       LineNumberTable:\n         line 11: 0\n         line 12: 14\n         line 13: 28\n         line 14: 40\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      41     0  this   Ldev/langchain4j/store/embedding/RelevanceScoreTest;\n     RuntimeVisibleAnnotations:\n-      0: #20()\n+      0: #37()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"RelevanceScoreTest.java\"\n"}]}, {"source1": "dev/langchain4j/store/memory/chat/InMemoryChatMemoryStoreTest.class", "source2": "dev/langchain4j/store/memory/chat/InMemoryChatMemoryStoreTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,89 +1,89 @@\n-  SHA-256 checksum 6675ebb3f9abb5f5277b5af3ef96092a78ad53eff249410b7ea11f5bfaafb423\n+  SHA-256 checksum 6319e7f1469b278bb08d5d6808bdb19781e24110be1a66c997a16b266e164afb\n   Compiled from \"InMemoryChatMemoryStoreTest.java\"\n class dev.langchain4j.store.memory.chat.InMemoryChatMemoryStoreTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #19                         // dev/langchain4j/store/memory/chat/InMemoryChatMemoryStoreTest\n-  super_class: #20                        // java/lang/Object\n+  this_class: #17                         // dev/langchain4j/store/memory/chat/InMemoryChatMemoryStoreTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 1\n Constant pool:\n-   #1 = Methodref          #20.#36        // java/lang/Object.\"<init>\":()V\n-   #2 = Class              #37            // dev/langchain4j/store/memory/chat/InMemoryChatMemoryStore\n-   #3 = Methodref          #2.#36         // dev/langchain4j/store/memory/chat/InMemoryChatMemoryStore.\"<init>\":()V\n-   #4 = String             #38            // foo\n-   #5 = Methodref          #2.#39         // dev/langchain4j/store/memory/chat/InMemoryChatMemoryStore.getMessages:(Ljava/lang/Object;)Ljava/util/List;\n-   #6 = Methodref          #19.#40        // dev/langchain4j/store/memory/chat/InMemoryChatMemoryStoreTest.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-   #7 = Methodref          #41.#42        // org/assertj/core/api/ListAssert.isEmpty:()V\n-   #8 = Class              #43            // dev/langchain4j/data/message/ChatMessage\n-   #9 = Class              #44            // dev/langchain4j/data/message/UserMessage\n-  #10 = String             #45            // abc def\n-  #11 = Methodref          #9.#46         // dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n-  #12 = Class              #47            // dev/langchain4j/data/message/AiMessage\n-  #13 = String             #48            // ghi jkl\n-  #14 = Methodref          #12.#46        // dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n-  #15 = Methodref          #49.#50        // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-  #16 = Methodref          #2.#51         // dev/langchain4j/store/memory/chat/InMemoryChatMemoryStore.updateMessages:(Ljava/lang/Object;Ljava/util/List;)V\n-  #17 = Methodref          #41.#52        // org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #18 = Methodref          #2.#53         // dev/langchain4j/store/memory/chat/InMemoryChatMemoryStore.deleteMessages:(Ljava/lang/Object;)V\n-  #19 = Class              #54            // dev/langchain4j/store/memory/chat/InMemoryChatMemoryStoreTest\n-  #20 = Class              #55            // java/lang/Object\n-  #21 = Class              #56            // org/assertj/core/api/WithAssertions\n-  #22 = Utf8               <init>\n-  #23 = Utf8               ()V\n-  #24 = Utf8               Code\n-  #25 = Utf8               LineNumberTable\n-  #26 = Utf8               LocalVariableTable\n-  #27 = Utf8               this\n-  #28 = Utf8               Ldev/langchain4j/store/memory/chat/InMemoryChatMemoryStoreTest;\n-  #29 = Utf8               test\n-  #30 = Utf8               store\n-  #31 = Utf8               Ldev/langchain4j/store/memory/chat/InMemoryChatMemoryStore;\n-  #32 = Utf8               RuntimeVisibleAnnotations\n-  #33 = Utf8               Lorg/junit/jupiter/api/Test;\n-  #34 = Utf8               SourceFile\n-  #35 = Utf8               InMemoryChatMemoryStoreTest.java\n-  #36 = NameAndType        #22:#23        // \"<init>\":()V\n-  #37 = Utf8               dev/langchain4j/store/memory/chat/InMemoryChatMemoryStore\n-  #38 = Utf8               foo\n-  #39 = NameAndType        #57:#58        // getMessages:(Ljava/lang/Object;)Ljava/util/List;\n-  #40 = NameAndType        #59:#60        // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #41 = Class              #61            // org/assertj/core/api/ListAssert\n-  #42 = NameAndType        #62:#23        // isEmpty:()V\n-  #43 = Utf8               dev/langchain4j/data/message/ChatMessage\n-  #44 = Utf8               dev/langchain4j/data/message/UserMessage\n-  #45 = Utf8               abc def\n-  #46 = NameAndType        #22:#63        // \"<init>\":(Ljava/lang/String;)V\n-  #47 = Utf8               dev/langchain4j/data/message/AiMessage\n-  #48 = Utf8               ghi jkl\n-  #49 = Class              #64            // java/util/Arrays\n-  #50 = NameAndType        #65:#66        // asList:([Ljava/lang/Object;)Ljava/util/List;\n-  #51 = NameAndType        #67:#68        // updateMessages:(Ljava/lang/Object;Ljava/util/List;)V\n-  #52 = NameAndType        #69:#70        // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #53 = NameAndType        #71:#72        // deleteMessages:(Ljava/lang/Object;)V\n-  #54 = Utf8               dev/langchain4j/store/memory/chat/InMemoryChatMemoryStoreTest\n-  #55 = Utf8               java/lang/Object\n-  #56 = Utf8               org/assertj/core/api/WithAssertions\n-  #57 = Utf8               getMessages\n-  #58 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n-  #59 = Utf8               assertThat\n-  #60 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #61 = Utf8               org/assertj/core/api/ListAssert\n-  #62 = Utf8               isEmpty\n-  #63 = Utf8               (Ljava/lang/String;)V\n-  #64 = Utf8               java/util/Arrays\n-  #65 = Utf8               asList\n-  #66 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n-  #67 = Utf8               updateMessages\n-  #68 = Utf8               (Ljava/lang/Object;Ljava/util/List;)V\n-  #69 = Utf8               containsExactly\n-  #70 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #71 = Utf8               deleteMessages\n-  #72 = Utf8               (Ljava/lang/Object;)V\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Class              #8             // dev/langchain4j/store/memory/chat/InMemoryChatMemoryStore\n+   #8 = Utf8               dev/langchain4j/store/memory/chat/InMemoryChatMemoryStore\n+   #9 = Methodref          #7.#3          // dev/langchain4j/store/memory/chat/InMemoryChatMemoryStore.\"<init>\":()V\n+  #10 = String             #11            // foo\n+  #11 = Utf8               foo\n+  #12 = Methodref          #7.#13         // dev/langchain4j/store/memory/chat/InMemoryChatMemoryStore.getMessages:(Ljava/lang/Object;)Ljava/util/List;\n+  #13 = NameAndType        #14:#15        // getMessages:(Ljava/lang/Object;)Ljava/util/List;\n+  #14 = Utf8               getMessages\n+  #15 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n+  #16 = Methodref          #17.#18        // dev/langchain4j/store/memory/chat/InMemoryChatMemoryStoreTest.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #17 = Class              #19            // dev/langchain4j/store/memory/chat/InMemoryChatMemoryStoreTest\n+  #18 = NameAndType        #20:#21        // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #19 = Utf8               dev/langchain4j/store/memory/chat/InMemoryChatMemoryStoreTest\n+  #20 = Utf8               assertThat\n+  #21 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #22 = Methodref          #23.#24        // org/assertj/core/api/ListAssert.isEmpty:()V\n+  #23 = Class              #25            // org/assertj/core/api/ListAssert\n+  #24 = NameAndType        #26:#6         // isEmpty:()V\n+  #25 = Utf8               org/assertj/core/api/ListAssert\n+  #26 = Utf8               isEmpty\n+  #27 = Class              #28            // dev/langchain4j/data/message/ChatMessage\n+  #28 = Utf8               dev/langchain4j/data/message/ChatMessage\n+  #29 = Class              #30            // dev/langchain4j/data/message/UserMessage\n+  #30 = Utf8               dev/langchain4j/data/message/UserMessage\n+  #31 = String             #32            // abc def\n+  #32 = Utf8               abc def\n+  #33 = Methodref          #29.#34        // dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n+  #34 = NameAndType        #5:#35         // \"<init>\":(Ljava/lang/String;)V\n+  #35 = Utf8               (Ljava/lang/String;)V\n+  #36 = Class              #37            // dev/langchain4j/data/message/AiMessage\n+  #37 = Utf8               dev/langchain4j/data/message/AiMessage\n+  #38 = String             #39            // ghi jkl\n+  #39 = Utf8               ghi jkl\n+  #40 = Methodref          #36.#34        // dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n+  #41 = Methodref          #42.#43        // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+  #42 = Class              #44            // java/util/Arrays\n+  #43 = NameAndType        #45:#46        // asList:([Ljava/lang/Object;)Ljava/util/List;\n+  #44 = Utf8               java/util/Arrays\n+  #45 = Utf8               asList\n+  #46 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n+  #47 = Methodref          #7.#48         // dev/langchain4j/store/memory/chat/InMemoryChatMemoryStore.updateMessages:(Ljava/lang/Object;Ljava/util/List;)V\n+  #48 = NameAndType        #49:#50        // updateMessages:(Ljava/lang/Object;Ljava/util/List;)V\n+  #49 = Utf8               updateMessages\n+  #50 = Utf8               (Ljava/lang/Object;Ljava/util/List;)V\n+  #51 = Methodref          #23.#52        // org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #52 = NameAndType        #53:#54        // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #53 = Utf8               containsExactly\n+  #54 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #55 = Methodref          #7.#56         // dev/langchain4j/store/memory/chat/InMemoryChatMemoryStore.deleteMessages:(Ljava/lang/Object;)V\n+  #56 = NameAndType        #57:#58        // deleteMessages:(Ljava/lang/Object;)V\n+  #57 = Utf8               deleteMessages\n+  #58 = Utf8               (Ljava/lang/Object;)V\n+  #59 = Class              #60            // org/assertj/core/api/WithAssertions\n+  #60 = Utf8               org/assertj/core/api/WithAssertions\n+  #61 = Utf8               Code\n+  #62 = Utf8               LineNumberTable\n+  #63 = Utf8               LocalVariableTable\n+  #64 = Utf8               this\n+  #65 = Utf8               Ldev/langchain4j/store/memory/chat/InMemoryChatMemoryStoreTest;\n+  #66 = Utf8               test\n+  #67 = Utf8               store\n+  #68 = Utf8               Ldev/langchain4j/store/memory/chat/InMemoryChatMemoryStore;\n+  #69 = Utf8               RuntimeVisibleAnnotations\n+  #70 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #71 = Utf8               SourceFile\n+  #72 = Utf8               InMemoryChatMemoryStoreTest.java\n {\n   dev.langchain4j.store.memory.chat.InMemoryChatMemoryStoreTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -96,76 +96,76 @@\n             0       5     0  this   Ldev/langchain4j/store/memory/chat/InMemoryChatMemoryStoreTest;\n \n   public void test();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=8, locals=2, args_size=1\n-         0: new           #2                  // class dev/langchain4j/store/memory/chat/InMemoryChatMemoryStore\n+         0: new           #7                  // class dev/langchain4j/store/memory/chat/InMemoryChatMemoryStore\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/store/memory/chat/InMemoryChatMemoryStore.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/store/memory/chat/InMemoryChatMemoryStore.\"<init>\":()V\n          7: astore_1\n          8: aload_0\n          9: aload_1\n-        10: ldc           #4                  // String foo\n-        12: invokevirtual #5                  // Method dev/langchain4j/store/memory/chat/InMemoryChatMemoryStore.getMessages:(Ljava/lang/Object;)Ljava/util/List;\n-        15: invokevirtual #6                  // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-        18: invokevirtual #7                  // Method org/assertj/core/api/ListAssert.isEmpty:()V\n+        10: ldc           #10                 // String foo\n+        12: invokevirtual #12                 // Method dev/langchain4j/store/memory/chat/InMemoryChatMemoryStore.getMessages:(Ljava/lang/Object;)Ljava/util/List;\n+        15: invokevirtual #16                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+        18: invokevirtual #22                 // Method org/assertj/core/api/ListAssert.isEmpty:()V\n         21: aload_1\n-        22: ldc           #4                  // String foo\n+        22: ldc           #10                 // String foo\n         24: iconst_2\n-        25: anewarray     #8                  // class dev/langchain4j/data/message/ChatMessage\n+        25: anewarray     #27                 // class dev/langchain4j/data/message/ChatMessage\n         28: dup\n         29: iconst_0\n-        30: new           #9                  // class dev/langchain4j/data/message/UserMessage\n+        30: new           #29                 // class dev/langchain4j/data/message/UserMessage\n         33: dup\n-        34: ldc           #10                 // String abc def\n-        36: invokespecial #11                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n+        34: ldc           #31                 // String abc def\n+        36: invokespecial #33                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n         39: aastore\n         40: dup\n         41: iconst_1\n-        42: new           #12                 // class dev/langchain4j/data/message/AiMessage\n+        42: new           #36                 // class dev/langchain4j/data/message/AiMessage\n         45: dup\n-        46: ldc           #13                 // String ghi jkl\n-        48: invokespecial #14                 // Method dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n+        46: ldc           #38                 // String ghi jkl\n+        48: invokespecial #40                 // Method dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n         51: aastore\n-        52: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-        55: invokevirtual #16                 // Method dev/langchain4j/store/memory/chat/InMemoryChatMemoryStore.updateMessages:(Ljava/lang/Object;Ljava/util/List;)V\n+        52: invokestatic  #41                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        55: invokevirtual #47                 // Method dev/langchain4j/store/memory/chat/InMemoryChatMemoryStore.updateMessages:(Ljava/lang/Object;Ljava/util/List;)V\n         58: aload_0\n         59: aload_1\n-        60: ldc           #4                  // String foo\n-        62: invokevirtual #5                  // Method dev/langchain4j/store/memory/chat/InMemoryChatMemoryStore.getMessages:(Ljava/lang/Object;)Ljava/util/List;\n-        65: invokevirtual #6                  // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+        60: ldc           #10                 // String foo\n+        62: invokevirtual #12                 // Method dev/langchain4j/store/memory/chat/InMemoryChatMemoryStore.getMessages:(Ljava/lang/Object;)Ljava/util/List;\n+        65: invokevirtual #16                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n         68: iconst_2\n-        69: anewarray     #8                  // class dev/langchain4j/data/message/ChatMessage\n+        69: anewarray     #27                 // class dev/langchain4j/data/message/ChatMessage\n         72: dup\n         73: iconst_0\n-        74: new           #9                  // class dev/langchain4j/data/message/UserMessage\n+        74: new           #29                 // class dev/langchain4j/data/message/UserMessage\n         77: dup\n-        78: ldc           #10                 // String abc def\n-        80: invokespecial #11                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n+        78: ldc           #31                 // String abc def\n+        80: invokespecial #33                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n         83: aastore\n         84: dup\n         85: iconst_1\n-        86: new           #12                 // class dev/langchain4j/data/message/AiMessage\n+        86: new           #36                 // class dev/langchain4j/data/message/AiMessage\n         89: dup\n-        90: ldc           #13                 // String ghi jkl\n-        92: invokespecial #14                 // Method dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n+        90: ldc           #38                 // String ghi jkl\n+        92: invokespecial #40                 // Method dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n         95: aastore\n-        96: invokevirtual #17                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+        96: invokevirtual #51                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n         99: pop\n        100: aload_1\n-       101: ldc           #4                  // String foo\n-       103: invokevirtual #18                 // Method dev/langchain4j/store/memory/chat/InMemoryChatMemoryStore.deleteMessages:(Ljava/lang/Object;)V\n+       101: ldc           #10                 // String foo\n+       103: invokevirtual #55                 // Method dev/langchain4j/store/memory/chat/InMemoryChatMemoryStore.deleteMessages:(Ljava/lang/Object;)V\n        106: aload_0\n        107: aload_1\n-       108: ldc           #4                  // String foo\n-       110: invokevirtual #5                  // Method dev/langchain4j/store/memory/chat/InMemoryChatMemoryStore.getMessages:(Ljava/lang/Object;)Ljava/util/List;\n-       113: invokevirtual #6                  // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-       116: invokevirtual #7                  // Method org/assertj/core/api/ListAssert.isEmpty:()V\n+       108: ldc           #10                 // String foo\n+       110: invokevirtual #12                 // Method dev/langchain4j/store/memory/chat/InMemoryChatMemoryStore.getMessages:(Ljava/lang/Object;)Ljava/util/List;\n+       113: invokevirtual #16                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+       116: invokevirtual #22                 // Method org/assertj/core/api/ListAssert.isEmpty:()V\n        119: return\n       LineNumberTable:\n         line 13: 0\n         line 14: 8\n         line 16: 21\n         line 18: 52\n         line 16: 55\n@@ -174,11 +174,11 @@\n         line 29: 106\n         line 30: 119\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     120     0  this   Ldev/langchain4j/store/memory/chat/InMemoryChatMemoryStoreTest;\n             8     112     1 store   Ldev/langchain4j/store/memory/chat/InMemoryChatMemoryStore;\n     RuntimeVisibleAnnotations:\n-      0: #33()\n+      0: #70()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"InMemoryChatMemoryStoreTest.java\"\n"}]}]}
