{
  "title" : "Duplication",
  "timestamp" : "2026-01-18 17:20:33",
  "duplicates" : [ {
    "blockSize" : 38,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "data/pgp/test-master-public-key.asc",
        "extension" : "asc",
        "linesOfCode" : 41,
        "components" : [ "primary::data" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 1,
      "endLine" : 39,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "data/pgp/test-no-revoke-public-keys.asc",
        "extension" : "asc",
        "linesOfCode" : 94,
        "components" : [ "primary::data" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 94,
      "startLine" : 1,
      "endLine" : 39,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 29,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "data/pgp/real-master-public-key.asc",
        "extension" : "asc",
        "linesOfCode" : 31,
        "components" : [ "primary::data" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 1,
      "endLine" : 30,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 29
    }, {
      "file" : {
        "relativePath" : "data/pgp/real-public-keys.asc",
        "extension" : "asc",
        "linesOfCode" : 100,
        "components" : [ "primary::data" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 100,
      "startLine" : 8,
      "endLine" : 37,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "data/pgp/test-master-public-key.asc",
        "extension" : "asc",
        "linesOfCode" : 41,
        "components" : [ "primary::data" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 1,
      "endLine" : 13,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "data/pgp/test-two-revoke-public-keys.asc",
        "extension" : "asc",
        "linesOfCode" : 118,
        "components" : [ "primary::data" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 118,
      "startLine" : 1,
      "endLine" : 13,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "data/pgp/test-no-revoke-public-keys.asc",
        "extension" : "asc",
        "linesOfCode" : 94,
        "components" : [ "primary::data" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 94,
      "startLine" : 1,
      "endLine" : 13,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "data/pgp/test-two-revoke-public-keys.asc",
        "extension" : "asc",
        "linesOfCode" : 118,
        "components" : [ "primary::data" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 118,
      "startLine" : 1,
      "endLine" : 13,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "data/pgp/real-master-public-key.asc",
        "extension" : "asc",
        "linesOfCode" : 31,
        "components" : [ "primary::data" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 1,
      "endLine" : 10,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 9
    }, {
      "file" : {
        "relativePath" : "jvm/src/main/kotlin/com/jetbrains/infra/pgpVerifier/JetBrainsPgpConstants.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::jvm" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 11,
      "endLine" : 20,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "data/pgp/real-public-keys.asc",
        "extension" : "asc",
        "linesOfCode" : 100,
        "components" : [ "primary::data" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 100,
      "startLine" : 8,
      "endLine" : 17,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "jvm/src/main/kotlin/com/jetbrains/infra/pgpVerifier/JetBrainsPgpConstants.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::jvm" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 11,
      "endLine" : 20,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "data/pgp/test-no-revoke-public-keys.asc",
        "extension" : "asc",
        "linesOfCode" : 94,
        "components" : [ "primary::data" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 94,
      "startLine" : 41,
      "endLine" : 47,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "data/pgp/test-two-revoke-public-keys.asc",
        "extension" : "asc",
        "linesOfCode" : 118,
        "components" : [ "primary::data" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 118,
      "startLine" : 41,
      "endLine" : 47,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 46
    } ]
  } ],
  "overallDuplication" : null
}