{
  "title" : "Duplication",
  "timestamp" : "2026-01-18 17:15:16",
  "duplicates" : [ {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/antlr/Keywords.g4",
        "extension" : "g4",
        "linesOfCode" : 75,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 63,
      "endLine" : 72,
      "cleanedStartLine" : 55,
      "cleanedEndLine" : 62
    }, {
      "file" : {
        "relativePath" : "src/main/antlr/TestKeywords.g4",
        "extension" : "g4",
        "linesOfCode" : 35,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 3,
      "endLine" : 12,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 9
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/jetbrains/buildServer/server/querylang/indexing/SynchronizedCompressedTrie.kt",
        "extension" : "kt",
        "linesOfCode" : 142,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 110,
      "startLine" : 17,
      "endLine" : 25,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/jetbrains/buildServer/server/querylang/indexing/SynchronizedTrie.kt",
        "extension" : "kt",
        "linesOfCode" : 75,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 7,
      "endLine" : 15,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/jetbrains/buildServer/server/querylang/ast/wrappers/WBuildConf.kt",
        "extension" : "kt",
        "linesOfCode" : 102,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 88,
      "startLine" : 110,
      "endLine" : 116,
      "cleanedStartLine" : 75,
      "cleanedEndLine" : 80
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/jetbrains/buildServer/server/querylang/ast/wrappers/WTemplate.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 76,
      "startLine" : 97,
      "endLine" : 103,
      "cleanedStartLine" : 66,
      "cleanedEndLine" : 71
    } ]
  } ],
  "overallDuplication" : null
}