{
  "title" : "Duplication",
  "timestamp" : "2026-01-18 17:13:08",
  "duplicates" : [ {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "tool/TeamCity.Docker/ReadmeFilesGenerator.cs",
        "extension" : "cs",
        "linesOfCode" : 227,
        "components" : [ "primary::tool" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 161,
      "startLine" : 41,
      "endLine" : 50,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "tool/TeamCity.Docker/ScriptsGenerator.cs",
        "extension" : "cs",
        "linesOfCode" : 79,
        "components" : [ "primary::tool" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 39,
      "endLine" : 48,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 30
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "tool/TeamCity.Docker/ReadmeFilesGenerator.cs",
        "extension" : "cs",
        "linesOfCode" : 227,
        "components" : [ "primary::tool" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 161,
      "startLine" : 21,
      "endLine" : 30,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "tool/TeamCity.Docker/ScriptsGenerator.cs",
        "extension" : "cs",
        "linesOfCode" : 79,
        "components" : [ "primary::tool" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 22,
      "endLine" : 31,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "tool/TeamCity.Docker/Generic/Graph.cs",
        "extension" : "cs",
        "linesOfCode" : 223,
        "components" : [ "primary::tool" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 139,
      "startLine" : 118,
      "endLine" : 132,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 71
    }, {
      "file" : {
        "relativePath" : "tool/TeamCity.Docker/Generic/Graph.cs",
        "extension" : "cs",
        "linesOfCode" : 223,
        "components" : [ "primary::tool" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 139,
      "startLine" : 185,
      "endLine" : 199,
      "cleanedStartLine" : 97,
      "cleanedEndLine" : 103
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "tool/TeamCity.Docker/Generic/Graph.cs",
        "extension" : "cs",
        "linesOfCode" : 223,
        "components" : [ "primary::tool" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 139,
      "startLine" : 185,
      "endLine" : 199,
      "cleanedStartLine" : 97,
      "cleanedEndLine" : 103
    }, {
      "file" : {
        "relativePath" : "tool/TeamCity.Docker/Generic/Graph.cs",
        "extension" : "cs",
        "linesOfCode" : 223,
        "components" : [ "primary::tool" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 139,
      "startLine" : 237,
      "endLine" : 251,
      "cleanedStartLine" : 124,
      "cleanedEndLine" : 130
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "tool/TeamCity.Docker/Generic/Graph.cs",
        "extension" : "cs",
        "linesOfCode" : 223,
        "components" : [ "primary::tool" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 139,
      "startLine" : 118,
      "endLine" : 132,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 71
    }, {
      "file" : {
        "relativePath" : "tool/TeamCity.Docker/Generic/Graph.cs",
        "extension" : "cs",
        "linesOfCode" : 223,
        "components" : [ "primary::tool" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 139,
      "startLine" : 237,
      "endLine" : 251,
      "cleanedStartLine" : 124,
      "cleanedEndLine" : 130
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "tool/TeamCity.Docker/ReadmeFilesGenerator.cs",
        "extension" : "cs",
        "linesOfCode" : 227,
        "components" : [ "primary::tool" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 161,
      "startLine" : 34,
      "endLine" : 39,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "tool/TeamCity.Docker/ScriptsGenerator.cs",
        "extension" : "cs",
        "linesOfCode" : 79,
        "components" : [ "primary::tool" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 33,
      "endLine" : 38,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "tool/TeamCity.Docker/ConsoleLogger.cs",
        "extension" : "cs",
        "linesOfCode" : 81,
        "components" : [ "primary::tool" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 59,
      "endLine" : 71,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 34
    }, {
      "file" : {
        "relativePath" : "tool/TeamCity.Docker/Logger.cs",
        "extension" : "cs",
        "linesOfCode" : 54,
        "components" : [ "primary::tool" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 47,
      "endLine" : 59,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 27
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "tool/TeamCity.Docker/Logger.cs",
        "extension" : "cs",
        "linesOfCode" : 54,
        "components" : [ "primary::tool" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 47,
      "endLine" : 59,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "tool/TeamCity.Docker/TeamCityLogger.cs",
        "extension" : "cs",
        "linesOfCode" : 65,
        "components" : [ "primary::tool" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 50,
      "endLine" : 62,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "tool/TeamCity.Docker/ConfigurationExplorer.cs",
        "extension" : "cs",
        "linesOfCode" : 173,
        "components" : [ "primary::tool" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 90,
      "startLine" : 164,
      "endLine" : 172,
      "cleanedStartLine" : 67,
      "cleanedEndLine" : 72
    }, {
      "file" : {
        "relativePath" : "tool/TeamCity.Docker/ConfigurationExplorer.cs",
        "extension" : "cs",
        "linesOfCode" : 173,
        "components" : [ "primary::tool" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 90,
      "startLine" : 195,
      "endLine" : 203,
      "cleanedStartLine" : 83,
      "cleanedEndLine" : 88
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "tool/TeamCity.Docker/ConsoleLogger.cs",
        "extension" : "cs",
        "linesOfCode" : 81,
        "components" : [ "primary::tool" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 59,
      "endLine" : 71,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 34
    }, {
      "file" : {
        "relativePath" : "tool/TeamCity.Docker/TeamCityLogger.cs",
        "extension" : "cs",
        "linesOfCode" : 65,
        "components" : [ "primary::tool" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 50,
      "endLine" : 62,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    } ]
  } ],
  "overallDuplication" : null
}