{
  "title" : "Duplication",
  "timestamp" : "2026-01-18 16:52:55",
  "duplicates" : [ {
    "blockSize" : 16,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "infra/modules/iam/main.tf",
        "extension" : "tf",
        "linesOfCode" : 220,
        "components" : [ "primary::infra" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 220,
      "startLine" : 143,
      "endLine" : 158,
      "cleanedStartLine" : 128,
      "cleanedEndLine" : 143
    }, {
      "file" : {
        "relativePath" : "infra/modules/iam/main.tf",
        "extension" : "tf",
        "linesOfCode" : 220,
        "components" : [ "primary::infra" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 220,
      "startLine" : 199,
      "endLine" : 214,
      "cleanedStartLine" : 180,
      "cleanedEndLine" : 195
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "infra/modules/iam/main.tf",
        "extension" : "tf",
        "linesOfCode" : 220,
        "components" : [ "primary::infra" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 220,
      "startLine" : 131,
      "endLine" : 138,
      "cleanedStartLine" : 118,
      "cleanedEndLine" : 125
    }, {
      "file" : {
        "relativePath" : "infra/modules/iam/main.tf",
        "extension" : "tf",
        "linesOfCode" : 220,
        "components" : [ "primary::infra" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 220,
      "startLine" : 187,
      "endLine" : 194,
      "cleanedStartLine" : 170,
      "cleanedEndLine" : 177
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "infra/modules/iam/main.tf",
        "extension" : "tf",
        "linesOfCode" : 220,
        "components" : [ "primary::infra" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 220,
      "startLine" : 131,
      "endLine" : 138,
      "cleanedStartLine" : 118,
      "cleanedEndLine" : 125
    }, {
      "file" : {
        "relativePath" : "infra/modules/iam/main.tf",
        "extension" : "tf",
        "linesOfCode" : 220,
        "components" : [ "primary::infra" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 220,
      "startLine" : 234,
      "endLine" : 241,
      "cleanedStartLine" : 213,
      "cleanedEndLine" : 220
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "aws-ecs-server/src/main/kotlin/jetbrains/buildServer/clouds/ecs/apiConnector/EcsApiConnector.kt",
        "extension" : "kt",
        "linesOfCode" : 26,
        "components" : [ "primary::aws-ecs-server" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 23,
      "startLine" : 15,
      "endLine" : 22,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "aws-ecs-server/src/main/kotlin/jetbrains/buildServer/clouds/ecs/apiConnector/EcsApiConnectorImpl.kt",
        "extension" : "kt",
        "linesOfCode" : 185,
        "components" : [ "primary::aws-ecs-server" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 143,
      "startLine" : 70,
      "endLine" : 77,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 41
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "infra/modules/iam/main.tf",
        "extension" : "tf",
        "linesOfCode" : 220,
        "components" : [ "primary::infra" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 220,
      "startLine" : 187,
      "endLine" : 194,
      "cleanedStartLine" : 170,
      "cleanedEndLine" : 177
    }, {
      "file" : {
        "relativePath" : "infra/modules/iam/main.tf",
        "extension" : "tf",
        "linesOfCode" : 220,
        "components" : [ "primary::infra" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 220,
      "startLine" : 234,
      "endLine" : 241,
      "cleanedStartLine" : 213,
      "cleanedEndLine" : 220
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "infra/modules/iam/main.tf",
        "extension" : "tf",
        "linesOfCode" : 220,
        "components" : [ "primary::infra" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 220,
      "startLine" : 107,
      "endLine" : 113,
      "cleanedStartLine" : 97,
      "cleanedEndLine" : 103
    }, {
      "file" : {
        "relativePath" : "infra/modules/iam/main.tf",
        "extension" : "tf",
        "linesOfCode" : 220,
        "components" : [ "primary::infra" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 220,
      "startLine" : 151,
      "endLine" : 157,
      "cleanedStartLine" : 136,
      "cleanedEndLine" : 142
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "infra/modules/iam/main.tf",
        "extension" : "tf",
        "linesOfCode" : 220,
        "components" : [ "primary::infra" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 220,
      "startLine" : 99,
      "endLine" : 105,
      "cleanedStartLine" : 89,
      "cleanedEndLine" : 95
    }, {
      "file" : {
        "relativePath" : "infra/modules/iam/main.tf",
        "extension" : "tf",
        "linesOfCode" : 220,
        "components" : [ "primary::infra" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 220,
      "startLine" : 143,
      "endLine" : 149,
      "cleanedStartLine" : 128,
      "cleanedEndLine" : 134
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "infra/modules/iam/main.tf",
        "extension" : "tf",
        "linesOfCode" : 220,
        "components" : [ "primary::infra" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 220,
      "startLine" : 99,
      "endLine" : 105,
      "cleanedStartLine" : 89,
      "cleanedEndLine" : 95
    }, {
      "file" : {
        "relativePath" : "infra/modules/iam/main.tf",
        "extension" : "tf",
        "linesOfCode" : 220,
        "components" : [ "primary::infra" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 220,
      "startLine" : 199,
      "endLine" : 205,
      "cleanedStartLine" : 180,
      "cleanedEndLine" : 186
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "infra/modules/iam/main.tf",
        "extension" : "tf",
        "linesOfCode" : 220,
        "components" : [ "primary::infra" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 220,
      "startLine" : 107,
      "endLine" : 113,
      "cleanedStartLine" : 97,
      "cleanedEndLine" : 103
    }, {
      "file" : {
        "relativePath" : "infra/modules/iam/main.tf",
        "extension" : "tf",
        "linesOfCode" : 220,
        "components" : [ "primary::infra" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 220,
      "startLine" : 207,
      "endLine" : 213,
      "cleanedStartLine" : 188,
      "cleanedEndLine" : 194
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "infra/modules/iam/main.tf",
        "extension" : "tf",
        "linesOfCode" : 220,
        "components" : [ "primary::infra" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 220,
      "startLine" : 37,
      "endLine" : 42,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "infra/modules/iam/main.tf",
        "extension" : "tf",
        "linesOfCode" : 220,
        "components" : [ "primary::infra" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 220,
      "startLine" : 164,
      "endLine" : 169,
      "cleanedStartLine" : 147,
      "cleanedEndLine" : 152
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "infra/modules/iam/main.tf",
        "extension" : "tf",
        "linesOfCode" : 220,
        "components" : [ "primary::infra" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 220,
      "startLine" : 37,
      "endLine" : 42,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "infra/modules/iam/main.tf",
        "extension" : "tf",
        "linesOfCode" : 220,
        "components" : [ "primary::infra" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 220,
      "startLine" : 122,
      "endLine" : 127,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 114
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "infra/modules/iam/main.tf",
        "extension" : "tf",
        "linesOfCode" : 220,
        "components" : [ "primary::infra" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 220,
      "startLine" : 164,
      "endLine" : 169,
      "cleanedStartLine" : 147,
      "cleanedEndLine" : 152
    }, {
      "file" : {
        "relativePath" : "infra/modules/iam/main.tf",
        "extension" : "tf",
        "linesOfCode" : 220,
        "components" : [ "primary::infra" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 220,
      "startLine" : 220,
      "endLine" : 225,
      "cleanedStartLine" : 199,
      "cleanedEndLine" : 204
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "infra/modules/iam/main.tf",
        "extension" : "tf",
        "linesOfCode" : 220,
        "components" : [ "primary::infra" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 220,
      "startLine" : 122,
      "endLine" : 127,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 114
    }, {
      "file" : {
        "relativePath" : "infra/modules/iam/main.tf",
        "extension" : "tf",
        "linesOfCode" : 220,
        "components" : [ "primary::infra" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 220,
      "startLine" : 220,
      "endLine" : 225,
      "cleanedStartLine" : 199,
      "cleanedEndLine" : 204
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "aws-ecs-server/src/main/resources/buildServerResources/clusters.jsp",
        "extension" : "jsp",
        "linesOfCode" : 26,
        "components" : [ "primary::aws-ecs-server" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 17,
      "startLine" : 11,
      "endLine" : 18,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "aws-ecs-server/src/main/resources/buildServerResources/taskDefs.jsp",
        "extension" : "jsp",
        "linesOfCode" : 29,
        "components" : [ "primary::aws-ecs-server" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 11,
      "endLine" : 18,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "infra/modules/iam/main.tf",
        "extension" : "tf",
        "linesOfCode" : 220,
        "components" : [ "primary::infra" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 220,
      "startLine" : 37,
      "endLine" : 42,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "infra/modules/iam/main.tf",
        "extension" : "tf",
        "linesOfCode" : 220,
        "components" : [ "primary::infra" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 220,
      "startLine" : 220,
      "endLine" : 225,
      "cleanedStartLine" : 199,
      "cleanedEndLine" : 204
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "infra/modules/iam/main.tf",
        "extension" : "tf",
        "linesOfCode" : 220,
        "components" : [ "primary::infra" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 220,
      "startLine" : 122,
      "endLine" : 127,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 114
    }, {
      "file" : {
        "relativePath" : "infra/modules/iam/main.tf",
        "extension" : "tf",
        "linesOfCode" : 220,
        "components" : [ "primary::infra" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 220,
      "startLine" : 164,
      "endLine" : 169,
      "cleanedStartLine" : 147,
      "cleanedEndLine" : 152
    } ]
  } ],
  "overallDuplication" : null
}