{
  "title" : "Duplication",
  "timestamp" : "2026-04-18 12:53:44",
  "duplicates" : [ {
    "blockSize" : 20,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/panels/singlestat.ts",
        "extension" : "ts",
        "linesOfCode" : 85,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 72,
      "startLine" : 79,
      "endLine" : 111,
      "cleanedStartLine" : 51,
      "cleanedEndLine" : 70
    }, {
      "file" : {
        "relativePath" : "src/panels/table.ts",
        "extension" : "ts",
        "linesOfCode" : 88,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 73,
      "startLine" : 81,
      "endLine" : 113,
      "cleanedStartLine" : 51,
      "cleanedEndLine" : 70
    } ]
  }, {
    "blockSize" : 16,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/panels/graph.ts",
        "extension" : "ts",
        "linesOfCode" : 142,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 123,
      "startLine" : 88,
      "endLine" : 112,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 74
    }, {
      "file" : {
        "relativePath" : "src/panels/singlestat.ts",
        "extension" : "ts",
        "linesOfCode" : 85,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 72,
      "startLine" : 78,
      "endLine" : 102,
      "cleanedStartLine" : 50,
      "cleanedEndLine" : 65
    } ]
  }, {
    "blockSize" : 15,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/panels/graph.ts",
        "extension" : "ts",
        "linesOfCode" : 142,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 123,
      "startLine" : 89,
      "endLine" : 112,
      "cleanedStartLine" : 60,
      "cleanedEndLine" : 74
    }, {
      "file" : {
        "relativePath" : "src/panels/table.ts",
        "extension" : "ts",
        "linesOfCode" : 88,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 73,
      "startLine" : 81,
      "endLine" : 104,
      "cleanedStartLine" : 51,
      "cleanedEndLine" : 65
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/panels/table.ts",
        "extension" : "ts",
        "linesOfCode" : 88,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 73,
      "startLine" : 93,
      "endLine" : 108,
      "cleanedStartLine" : 60,
      "cleanedEndLine" : 67
    }, {
      "file" : {
        "relativePath" : "src/panels/text.ts",
        "extension" : "ts",
        "linesOfCode" : 42,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 32,
      "startLine" : 53,
      "endLine" : 67,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/panels/singlestat.ts",
        "extension" : "ts",
        "linesOfCode" : 85,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 72,
      "startLine" : 91,
      "endLine" : 106,
      "cleanedStartLine" : 60,
      "cleanedEndLine" : 67
    }, {
      "file" : {
        "relativePath" : "src/panels/text.ts",
        "extension" : "ts",
        "linesOfCode" : 42,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 32,
      "startLine" : 53,
      "endLine" : 67,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/grafana.ts",
        "extension" : "ts",
        "linesOfCode" : 303,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 283,
      "startLine" : 205,
      "endLine" : 211,
      "cleanedStartLine" : 183,
      "cleanedEndLine" : 188
    }, {
      "file" : {
        "relativePath" : "src/grafana.ts",
        "extension" : "ts",
        "linesOfCode" : 303,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 283,
      "startLine" : 222,
      "endLine" : 228,
      "cleanedStartLine" : 197,
      "cleanedEndLine" : 202
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/grafana.ts",
        "extension" : "ts",
        "linesOfCode" : 303,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 283,
      "startLine" : 39,
      "endLine" : 45,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "src/grafana.ts",
        "extension" : "ts",
        "linesOfCode" : 303,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 283,
      "startLine" : 222,
      "endLine" : 228,
      "cleanedStartLine" : 197,
      "cleanedEndLine" : 202
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/panels/graph.ts",
        "extension" : "ts",
        "linesOfCode" : 142,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 123,
      "startLine" : 101,
      "endLine" : 112,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 74
    }, {
      "file" : {
        "relativePath" : "src/panels/text.ts",
        "extension" : "ts",
        "linesOfCode" : 42,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 32,
      "startLine" : 53,
      "endLine" : 63,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 29
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/grafana.ts",
        "extension" : "ts",
        "linesOfCode" : 303,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 283,
      "startLine" : 164,
      "endLine" : 170,
      "cleanedStartLine" : 145,
      "cleanedEndLine" : 150
    }, {
      "file" : {
        "relativePath" : "src/grafana.ts",
        "extension" : "ts",
        "linesOfCode" : 303,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 283,
      "startLine" : 205,
      "endLine" : 211,
      "cleanedStartLine" : 183,
      "cleanedEndLine" : 188
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/panels/dashboard_list.ts",
        "extension" : "ts",
        "linesOfCode" : 43,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 33,
      "startLine" : 52,
      "endLine" : 59,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "src/panels/text.ts",
        "extension" : "ts",
        "linesOfCode" : 42,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 32,
      "startLine" : 51,
      "endLine" : 58,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 27
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/grafana.ts",
        "extension" : "ts",
        "linesOfCode" : 303,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 283,
      "startLine" : 39,
      "endLine" : 45,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "src/grafana.ts",
        "extension" : "ts",
        "linesOfCode" : 303,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 283,
      "startLine" : 205,
      "endLine" : 211,
      "cleanedStartLine" : 183,
      "cleanedEndLine" : 188
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/grafana.ts",
        "extension" : "ts",
        "linesOfCode" : 303,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 283,
      "startLine" : 39,
      "endLine" : 45,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "src/grafana.ts",
        "extension" : "ts",
        "linesOfCode" : 303,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 283,
      "startLine" : 164,
      "endLine" : 170,
      "cleanedStartLine" : 145,
      "cleanedEndLine" : 150
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/grafana.ts",
        "extension" : "ts",
        "linesOfCode" : 303,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 283,
      "startLine" : 164,
      "endLine" : 170,
      "cleanedStartLine" : 145,
      "cleanedEndLine" : 150
    }, {
      "file" : {
        "relativePath" : "src/grafana.ts",
        "extension" : "ts",
        "linesOfCode" : 303,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 283,
      "startLine" : 222,
      "endLine" : 228,
      "cleanedStartLine" : 197,
      "cleanedEndLine" : 202
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/panels/table.ts",
        "extension" : "ts",
        "linesOfCode" : 88,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 73,
      "startLine" : 80,
      "endLine" : 87,
      "cleanedStartLine" : 50,
      "cleanedEndLine" : 55
    }, {
      "file" : {
        "relativePath" : "src/panels/text.ts",
        "extension" : "ts",
        "linesOfCode" : 42,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 32,
      "startLine" : 46,
      "endLine" : 53,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 24
    } ]
  } ],
  "overallDuplication" : null
}