{
  "title" : "Duplication",
  "timestamp" : "2026-01-18 17:36:08",
  "duplicates" : [ {
    "blockSize" : 98,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/linux/Logger.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 149,
      "startLine" : 34,
      "endLine" : 193,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 117
    }, {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/win32/Logger.kt",
        "extension" : "kt",
        "linesOfCode" : 210,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 152,
      "startLine" : 34,
      "endLine" : 193,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 117
    } ]
  }, {
    "blockSize" : 98,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/macos/Logger.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 149,
      "startLine" : 34,
      "endLine" : 193,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 117
    }, {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/win32/Logger.kt",
        "extension" : "kt",
        "linesOfCode" : 210,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 152,
      "startLine" : 34,
      "endLine" : 193,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 117
    } ]
  }, {
    "blockSize" : 98,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/linux/Logger.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 149,
      "startLine" : 34,
      "endLine" : 193,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 117
    }, {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/macos/Logger.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 149,
      "startLine" : 34,
      "endLine" : 193,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 117
    } ]
  }, {
    "blockSize" : 35,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/linux/PointerShape.kt",
        "extension" : "kt",
        "linesOfCode" : 38,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 4,
      "endLine" : 168,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "native/desktop-linux/src/linux/pointer_shapes_api.rs",
        "extension" : "rs",
        "linesOfCode" : 39,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 4,
      "endLine" : 130,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 24,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/macos/KotlinDesktopToolkit.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 8,
      "endLine" : 36,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/win32/KotlinDesktopToolkit.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 7,
      "endLine" : 35,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 21,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/linux/KotlinDesktopToolkit.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 7,
      "endLine" : 29,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/macos/KotlinDesktopToolkit.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 8,
      "endLine" : 30,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 21,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/linux/KotlinDesktopToolkit.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 7,
      "endLine" : 29,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/win32/KotlinDesktopToolkit.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 7,
      "endLine" : 29,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 19,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/linux/Geometry.kt",
        "extension" : "kt",
        "linesOfCode" : 45,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 5,
      "endLine" : 28,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/win32/Geometry.kt",
        "extension" : "kt",
        "linesOfCode" : 37,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 3,
      "endLine" : 26,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 16,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/linux/Mouse.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 38,
      "endLine" : 65,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/macos/Mouse.kt",
        "extension" : "kt",
        "linesOfCode" : 39,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 16,
      "endLine" : 43,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 16,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/win32/Cursor.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 20,
      "endLine" : 37,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "native/desktop-win32/src/win32/cursor.rs",
        "extension" : "rs",
        "linesOfCode" : 83,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 71,
      "startLine" : 18,
      "endLine" : 35,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 29
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "sample/src/main/kotlin/org/jetbrains/desktop/sample/linux/SkikoSampleLinux.kt",
        "extension" : "kt",
        "linesOfCode" : 1437,
        "components" : [ "primary::sample" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 1103,
      "startLine" : 768,
      "endLine" : 780,
      "cleanedStartLine" : 506,
      "cleanedEndLine" : 518
    }, {
      "file" : {
        "relativePath" : "sample/src/main/kotlin/org/jetbrains/desktop/sample/macos/SkikoSampleMac.kt",
        "extension" : "kt",
        "linesOfCode" : 1090,
        "components" : [ "primary::sample" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 884,
      "startLine" : 171,
      "endLine" : 184,
      "cleanedStartLine" : 90,
      "cleanedEndLine" : 102
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/macos/Logger.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 149,
      "startLine" : 223,
      "endLine" : 241,
      "cleanedStartLine" : 137,
      "cleanedEndLine" : 149
    }, {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/win32/Logger.kt",
        "extension" : "kt",
        "linesOfCode" : 210,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 152,
      "startLine" : 223,
      "endLine" : 241,
      "cleanedStartLine" : 137,
      "cleanedEndLine" : 149
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/linux/Logger.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 149,
      "startLine" : 223,
      "endLine" : 241,
      "cleanedStartLine" : 137,
      "cleanedEndLine" : 149
    }, {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/win32/Logger.kt",
        "extension" : "kt",
        "linesOfCode" : 210,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 152,
      "startLine" : 223,
      "endLine" : 241,
      "cleanedStartLine" : 137,
      "cleanedEndLine" : 149
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/linux/Logger.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 149,
      "startLine" : 204,
      "endLine" : 221,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 135
    }, {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/macos/Logger.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 149,
      "startLine" : 204,
      "endLine" : 221,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 135
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/macos/Logger.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 149,
      "startLine" : 204,
      "endLine" : 221,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 135
    }, {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/win32/Logger.kt",
        "extension" : "kt",
        "linesOfCode" : 210,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 152,
      "startLine" : 204,
      "endLine" : 221,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 135
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/linux/Logger.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 149,
      "startLine" : 223,
      "endLine" : 241,
      "cleanedStartLine" : 137,
      "cleanedEndLine" : 149
    }, {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/macos/Logger.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 149,
      "startLine" : 223,
      "endLine" : 241,
      "cleanedStartLine" : 137,
      "cleanedEndLine" : 149
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/linux/Logger.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 149,
      "startLine" : 204,
      "endLine" : 221,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 135
    }, {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/win32/Logger.kt",
        "extension" : "kt",
        "linesOfCode" : 210,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 152,
      "startLine" : 204,
      "endLine" : 221,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 135
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "sample/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 200,
        "components" : [ "primary::sample" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 78,
      "endLine" : 90,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 58
    }, {
      "file" : {
        "relativePath" : "sample/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 200,
        "components" : [ "primary::sample" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 99,
      "endLine" : 111,
      "cleanedStartLine" : 64,
      "cleanedEndLine" : 75
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/macos/Cursor.kt",
        "extension" : "kt",
        "linesOfCode" : 119,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 101,
      "startLine" : 7,
      "endLine" : 18,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "native/desktop-macos/src/macos/cursor.rs",
        "extension" : "rs",
        "linesOfCode" : 209,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 173,
      "startLine" : 207,
      "endLine" : 219,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 163
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/linux/Logger.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 149,
      "startLine" : 9,
      "endLine" : 23,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/macos/Logger.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 149,
      "startLine" : 9,
      "endLine" : 23,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/linux/Logger.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 149,
      "startLine" : 9,
      "endLine" : 23,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/win32/Logger.kt",
        "extension" : "kt",
        "linesOfCode" : 210,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 152,
      "startLine" : 9,
      "endLine" : 23,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/macos/Logger.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 149,
      "startLine" : 9,
      "endLine" : 23,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/win32/Logger.kt",
        "extension" : "kt",
        "linesOfCode" : 210,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 152,
      "startLine" : 9,
      "endLine" : 23,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "native/desktop-macos/cbindgen.toml",
        "extension" : "toml",
        "linesOfCode" : 26,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 26,
      "startLine" : 1,
      "endLine" : 14,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "native/desktop-win32/cbindgen.toml",
        "extension" : "toml",
        "linesOfCode" : 26,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 26,
      "startLine" : 1,
      "endLine" : 14,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "native/desktop-linux/cbindgen.toml",
        "extension" : "toml",
        "linesOfCode" : 27,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 1,
      "endLine" : 14,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "native/desktop-win32/cbindgen.toml",
        "extension" : "toml",
        "linesOfCode" : 26,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 26,
      "startLine" : 1,
      "endLine" : 14,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "native/desktop-linux/cbindgen.toml",
        "extension" : "toml",
        "linesOfCode" : 27,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 1,
      "endLine" : 14,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "native/desktop-macos/cbindgen.toml",
        "extension" : "toml",
        "linesOfCode" : 26,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 26,
      "startLine" : 1,
      "endLine" : 14,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "sample/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 200,
        "components" : [ "primary::sample" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 78,
      "endLine" : 88,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 57
    }, {
      "file" : {
        "relativePath" : "sample/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 200,
        "components" : [ "primary::sample" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 153,
      "endLine" : 163,
      "cleanedStartLine" : 110,
      "cleanedEndLine" : 120
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "sample/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 200,
        "components" : [ "primary::sample" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 99,
      "endLine" : 109,
      "cleanedStartLine" : 64,
      "cleanedEndLine" : 74
    }, {
      "file" : {
        "relativePath" : "sample/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 200,
        "components" : [ "primary::sample" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 120,
      "endLine" : 130,
      "cleanedStartLine" : 81,
      "cleanedEndLine" : 91
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "sample/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 200,
        "components" : [ "primary::sample" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 120,
      "endLine" : 130,
      "cleanedStartLine" : 81,
      "cleanedEndLine" : 91
    }, {
      "file" : {
        "relativePath" : "sample/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 200,
        "components" : [ "primary::sample" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 153,
      "endLine" : 163,
      "cleanedStartLine" : 110,
      "cleanedEndLine" : 120
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "sample/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 200,
        "components" : [ "primary::sample" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 99,
      "endLine" : 109,
      "cleanedStartLine" : 64,
      "cleanedEndLine" : 74
    }, {
      "file" : {
        "relativePath" : "sample/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 200,
        "components" : [ "primary::sample" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 153,
      "endLine" : 163,
      "cleanedStartLine" : 110,
      "cleanedEndLine" : 120
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "native/desktop-linux-sample/src/sample_linux.rs",
        "extension" : "rs",
        "linesOfCode" : 801,
        "components" : [ "primary::native" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 667,
      "startLine" : 246,
      "endLine" : 258,
      "cleanedStartLine" : 182,
      "cleanedEndLine" : 192
    }, {
      "file" : {
        "relativePath" : "native/desktop-linux-sample/src/sample_linux.rs",
        "extension" : "rs",
        "linesOfCode" : 801,
        "components" : [ "primary::native" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 667,
      "startLine" : 303,
      "endLine" : 315,
      "cleanedStartLine" : 231,
      "cleanedEndLine" : 241
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "sample/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 200,
        "components" : [ "primary::sample" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 78,
      "endLine" : 88,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 57
    }, {
      "file" : {
        "relativePath" : "sample/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 200,
        "components" : [ "primary::sample" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 120,
      "endLine" : 130,
      "cleanedStartLine" : 81,
      "cleanedEndLine" : 91
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "native/desktop-linux/src/logger_api.rs",
        "extension" : "rs",
        "linesOfCode" : 13,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 1,
      "endLine" : 15,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "native/desktop-macos/src/logger_api.rs",
        "extension" : "rs",
        "linesOfCode" : 13,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 1,
      "endLine" : 15,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/linux/KotlinDesktopToolkit.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 34,
      "endLine" : 52,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 33
    }, {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/win32/KotlinDesktopToolkit.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 34,
      "endLine" : 52,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 33
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "native/desktop-macos/src/macos/drag_and_drop.rs",
        "extension" : "rs",
        "linesOfCode" : 187,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 165,
      "endLine" : 174,
      "cleanedStartLine" : 126,
      "cleanedEndLine" : 135
    }, {
      "file" : {
        "relativePath" : "native/desktop-macos/src/macos/drag_and_drop.rs",
        "extension" : "rs",
        "linesOfCode" : 187,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 181,
      "endLine" : 190,
      "cleanedStartLine" : 139,
      "cleanedEndLine" : 148
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "native/desktop-linux/src/linux/screen.rs",
        "extension" : "rs",
        "linesOfCode" : 69,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 68,
      "endLine" : 78,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 62
    }, {
      "file" : {
        "relativePath" : "native/desktop-macos/src/macos/screen.rs",
        "extension" : "rs",
        "linesOfCode" : 123,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 108,
      "startLine" : 66,
      "endLine" : 76,
      "cleanedStartLine" : 50,
      "cleanedEndLine" : 58
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "sample/src/main/kotlin/org/jetbrains/desktop/sample/linux/SkikoSampleLinux.kt",
        "extension" : "kt",
        "linesOfCode" : 1437,
        "components" : [ "primary::sample" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 1103,
      "startLine" : 833,
      "endLine" : 842,
      "cleanedStartLine" : 560,
      "cleanedEndLine" : 568
    }, {
      "file" : {
        "relativePath" : "sample/src/main/kotlin/org/jetbrains/desktop/sample/macos/SkikoSampleMac.kt",
        "extension" : "kt",
        "linesOfCode" : 1090,
        "components" : [ "primary::sample" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 884,
      "startLine" : 223,
      "endLine" : 232,
      "cleanedStartLine" : 130,
      "cleanedEndLine" : 138
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "sample/src/main/kotlin/org/jetbrains/desktop/sample/linux/SkikoSampleLinux.kt",
        "extension" : "kt",
        "linesOfCode" : 1437,
        "components" : [ "primary::sample" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 1103,
      "startLine" : 802,
      "endLine" : 810,
      "cleanedStartLine" : 535,
      "cleanedEndLine" : 543
    }, {
      "file" : {
        "relativePath" : "sample/src/main/kotlin/org/jetbrains/desktop/sample/macos/SkikoSampleMac.kt",
        "extension" : "kt",
        "linesOfCode" : 1090,
        "components" : [ "primary::sample" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 884,
      "startLine" : 192,
      "endLine" : 200,
      "cleanedStartLine" : 107,
      "cleanedEndLine" : 115
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "native/desktop-linux/src/logger_api.rs",
        "extension" : "rs",
        "linesOfCode" : 13,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 3,
      "endLine" : 15,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "native/desktop-win32/src/logger_api.rs",
        "extension" : "rs",
        "linesOfCode" : 22,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 7,
      "endLine" : 19,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "sample/src/main/kotlin/org/jetbrains/desktop/sample/linux/SkikoSampleLinux.kt",
        "extension" : "kt",
        "linesOfCode" : 1437,
        "components" : [ "primary::sample" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 1103,
      "startLine" : 821,
      "endLine" : 830,
      "cleanedStartLine" : 550,
      "cleanedEndLine" : 558
    }, {
      "file" : {
        "relativePath" : "sample/src/main/kotlin/org/jetbrains/desktop/sample/macos/SkikoSampleMac.kt",
        "extension" : "kt",
        "linesOfCode" : 1090,
        "components" : [ "primary::sample" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 884,
      "startLine" : 211,
      "endLine" : 220,
      "cleanedStartLine" : 121,
      "cleanedEndLine" : 129
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "native/desktop-macos/src/logger_api.rs",
        "extension" : "rs",
        "linesOfCode" : 13,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 3,
      "endLine" : 15,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "native/desktop-win32/src/logger_api.rs",
        "extension" : "rs",
        "linesOfCode" : 22,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 7,
      "endLine" : 19,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/macos/Cursor.kt",
        "extension" : "kt",
        "linesOfCode" : 119,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 101,
      "startLine" : 21,
      "endLine" : 28,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "native/desktop-macos/src/macos/cursor.rs",
        "extension" : "rs",
        "linesOfCode" : 209,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 173,
      "startLine" : 224,
      "endLine" : 231,
      "cleanedStartLine" : 166,
      "cleanedEndLine" : 173
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/linux/XdgDesktopSetting.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 7,
      "endLine" : 28,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "native/desktop-linux/src/linux/window_resize_edge_api.rs",
        "extension" : "rs",
        "linesOfCode" : 13,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 12,
      "startLine" : 7,
      "endLine" : 21,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "native/desktop-macos/cbindgen.toml",
        "extension" : "toml",
        "linesOfCode" : 26,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 26,
      "startLine" : 17,
      "endLine" : 24,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "native/desktop-win32/cbindgen.toml",
        "extension" : "toml",
        "linesOfCode" : 26,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 26,
      "startLine" : 17,
      "endLine" : 24,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "native/desktop-linux/cbindgen.toml",
        "extension" : "toml",
        "linesOfCode" : 27,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 17,
      "endLine" : 24,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "native/desktop-macos/cbindgen.toml",
        "extension" : "toml",
        "linesOfCode" : 26,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 26,
      "startLine" : 17,
      "endLine" : 24,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "sample/src/main/kotlin/org/jetbrains/desktop/sample/linux/SkikoCustomTitlebarLinux.kt",
        "extension" : "kt",
        "linesOfCode" : 332,
        "components" : [ "primary::sample" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 257,
      "startLine" : 174,
      "endLine" : 184,
      "cleanedStartLine" : 116,
      "cleanedEndLine" : 123
    }, {
      "file" : {
        "relativePath" : "sample/src/main/kotlin/org/jetbrains/desktop/sample/linux/SkikoSampleLinux.kt",
        "extension" : "kt",
        "linesOfCode" : 1437,
        "components" : [ "primary::sample" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 1103,
      "startLine" : 1074,
      "endLine" : 1084,
      "cleanedStartLine" : 737,
      "cleanedEndLine" : 744
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "native/desktop-macos/src/macos/screen.rs",
        "extension" : "rs",
        "linesOfCode" : 123,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 108,
      "startLine" : 68,
      "endLine" : 79,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 59
    }, {
      "file" : {
        "relativePath" : "native/desktop-win32/src/win32/screen_api.rs",
        "extension" : "rs",
        "linesOfCode" : 49,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 39,
      "endLine" : 50,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "sample/src/main/kotlin/org/jetbrains/desktop/sample/macos/SkikoSampleMac.kt",
        "extension" : "kt",
        "linesOfCode" : 1090,
        "components" : [ "primary::sample" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 884,
      "startLine" : 1041,
      "endLine" : 1052,
      "cleanedStartLine" : 789,
      "cleanedEndLine" : 796
    }, {
      "file" : {
        "relativePath" : "sample/src/main/kotlin/org/jetbrains/desktop/sample/macos/SkikoSampleMac.kt",
        "extension" : "kt",
        "linesOfCode" : 1090,
        "components" : [ "primary::sample" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 884,
      "startLine" : 1064,
      "endLine" : 1075,
      "cleanedStartLine" : 808,
      "cleanedEndLine" : 815
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "native/desktop-linux/cbindgen.toml",
        "extension" : "toml",
        "linesOfCode" : 27,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 17,
      "endLine" : 24,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "native/desktop-win32/cbindgen.toml",
        "extension" : "toml",
        "linesOfCode" : 26,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 26,
      "startLine" : 17,
      "endLine" : 24,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "native/desktop-linux/src/linux/application.rs",
        "extension" : "rs",
        "linesOfCode" : 537,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 315,
      "endLine" : 321,
      "cleanedStartLine" : 247,
      "cleanedEndLine" : 253
    }, {
      "file" : {
        "relativePath" : "native/desktop-linux/src/linux/application.rs",
        "extension" : "rs",
        "linesOfCode" : 537,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 354,
      "endLine" : 360,
      "cleanedStartLine" : 282,
      "cleanedEndLine" : 288
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "native/desktop-macos/src/macos/appearance.rs",
        "extension" : "rs",
        "linesOfCode" : 37,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 8,
      "endLine" : 19,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "native/desktop-win32/src/win32/appearance.rs",
        "extension" : "rs",
        "linesOfCode" : 44,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 12,
      "endLine" : 23,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/macos/ApplicationMenu.kt",
        "extension" : "kt",
        "linesOfCode" : 209,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 158,
      "startLine" : 48,
      "endLine" : 54,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 32
    }, {
      "file" : {
        "relativePath" : "native/desktop-macos/src/macos/application_menu_api.rs",
        "extension" : "rs",
        "linesOfCode" : 118,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 105,
      "startLine" : 33,
      "endLine" : 39,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "native/desktop-linux/src/linux/screen.rs",
        "extension" : "rs",
        "linesOfCode" : 69,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 70,
      "endLine" : 78,
      "cleanedStartLine" : 56,
      "cleanedEndLine" : 62
    }, {
      "file" : {
        "relativePath" : "native/desktop-win32/src/win32/screen_api.rs",
        "extension" : "rs",
        "linesOfCode" : 49,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 39,
      "endLine" : 47,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/macos/Screen.kt",
        "extension" : "kt",
        "linesOfCode" : 104,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 76,
      "startLine" : 93,
      "endLine" : 101,
      "cleanedStartLine" : 58,
      "cleanedEndLine" : 64
    }, {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/win32/Screen.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 31,
      "endLine" : 39,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "native/desktop-macos/src/macos/events.rs",
        "extension" : "rs",
        "linesOfCode" : 171,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 152,
      "startLine" : 104,
      "endLine" : 112,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 88
    }, {
      "file" : {
        "relativePath" : "native/desktop-macos/src/macos/events.rs",
        "extension" : "rs",
        "linesOfCode" : 171,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 152,
      "startLine" : 114,
      "endLine" : 122,
      "cleanedStartLine" : 90,
      "cleanedEndLine" : 96
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/macos/Event.kt",
        "extension" : "kt",
        "linesOfCode" : 342,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 285,
      "startLine" : 136,
      "endLine" : 142,
      "cleanedStartLine" : 74,
      "cleanedEndLine" : 80
    }, {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/macos/Event.kt",
        "extension" : "kt",
        "linesOfCode" : 342,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 285,
      "startLine" : 145,
      "endLine" : 151,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 88
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "native/desktop-linux/src/linux/data_transfer.rs",
        "extension" : "rs",
        "linesOfCode" : 355,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 302,
      "startLine" : 222,
      "endLine" : 228,
      "cleanedStartLine" : 171,
      "cleanedEndLine" : 177
    }, {
      "file" : {
        "relativePath" : "native/desktop-linux/src/linux/data_transfer.rs",
        "extension" : "rs",
        "linesOfCode" : 355,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 302,
      "startLine" : 234,
      "endLine" : 241,
      "cleanedStartLine" : 182,
      "cleanedEndLine" : 188
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "native/desktop-common/src/ffi_utils.rs",
        "extension" : "rs",
        "linesOfCode" : 369,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 282,
      "startLine" : 152,
      "endLine" : 157,
      "cleanedStartLine" : 105,
      "cleanedEndLine" : 110
    }, {
      "file" : {
        "relativePath" : "native/desktop-common/src/ffi_utils.rs",
        "extension" : "rs",
        "linesOfCode" : 369,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 282,
      "startLine" : 208,
      "endLine" : 213,
      "cleanedStartLine" : 140,
      "cleanedEndLine" : 145
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "native/desktop-linux-sample/Cargo.toml",
        "extension" : "toml",
        "linesOfCode" : 13,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 13,
      "startLine" : 9,
      "endLine" : 15,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "native/desktop-macos/Cargo.toml",
        "extension" : "toml",
        "linesOfCode" : 73,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 73,
      "startLine" : 14,
      "endLine" : 20,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "native/desktop-linux/src/linux/xdg_desktop_settings.rs",
        "extension" : "rs",
        "linesOfCode" : 255,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 35,
      "endLine" : 41,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 29
    }, {
      "file" : {
        "relativePath" : "native/desktop-linux/src/linux/xdg_desktop_settings_api.rs",
        "extension" : "rs",
        "linesOfCode" : 63,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 68,
      "endLine" : 73,
      "cleanedStartLine" : 51,
      "cleanedEndLine" : 56
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "native/desktop-win32/src/win32/events.rs",
        "extension" : "rs",
        "linesOfCode" : 202,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 135,
      "endLine" : 142,
      "cleanedStartLine" : 100,
      "cleanedEndLine" : 105
    }, {
      "file" : {
        "relativePath" : "native/desktop-win32/src/win32/events.rs",
        "extension" : "rs",
        "linesOfCode" : 202,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 145,
      "endLine" : 152,
      "cleanedStartLine" : 108,
      "cleanedEndLine" : 113
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/linux/Screen.kt",
        "extension" : "kt",
        "linesOfCode" : 35,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 11,
      "endLine" : 16,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/macos/Screen.kt",
        "extension" : "kt",
        "linesOfCode" : 104,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 76,
      "startLine" : 71,
      "endLine" : 76,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/macos/Logger.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 149,
      "startLine" : 10,
      "endLine" : 15,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 8
    }, {
      "file" : {
        "relativePath" : "native/desktop-common/src/logger_api.rs",
        "extension" : "rs",
        "linesOfCode" : 55,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 16,
      "endLine" : 21,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/macos/Event.kt",
        "extension" : "kt",
        "linesOfCode" : 342,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 285,
      "startLine" : 75,
      "endLine" : 80,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/macos/Event.kt",
        "extension" : "kt",
        "linesOfCode" : 342,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 285,
      "startLine" : 88,
      "endLine" : 93,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "native/desktop-linux/src/linux/events.rs",
        "extension" : "rs",
        "linesOfCode" : 592,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 462,
      "startLine" : 345,
      "endLine" : 350,
      "cleanedStartLine" : 215,
      "cleanedEndLine" : 220
    }, {
      "file" : {
        "relativePath" : "native/desktop-macos/src/macos/events.rs",
        "extension" : "rs",
        "linesOfCode" : 171,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 152,
      "startLine" : 111,
      "endLine" : 116,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 92
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "native/desktop-common/Cargo.toml",
        "extension" : "toml",
        "linesOfCode" : 10,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 6,
      "endLine" : 12,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "native/desktop-linux/Cargo.toml",
        "extension" : "toml",
        "linesOfCode" : 24,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 24,
      "startLine" : 10,
      "endLine" : 16,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "native/desktop-linux/src/linux/text_input.rs",
        "extension" : "rs",
        "linesOfCode" : 130,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 116,
      "startLine" : 41,
      "endLine" : 46,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "native/desktop-linux/src/linux/text_input.rs",
        "extension" : "rs",
        "linesOfCode" : 130,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 116,
      "startLine" : 52,
      "endLine" : 57,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "native/desktop-linux/src/linux/geometry.rs",
        "extension" : "rs",
        "linesOfCode" : 59,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 23,
      "endLine" : 30,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "native/desktop-macos/src/geometry.rs",
        "extension" : "rs",
        "linesOfCode" : 45,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 4,
      "endLine" : 11,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 8
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/linux/Converters.kt",
        "extension" : "kt",
        "linesOfCode" : 751,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 593,
      "startLine" : 676,
      "endLine" : 681,
      "cleanedStartLine" : 467,
      "cleanedEndLine" : 472
    }, {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/macos/Event.kt",
        "extension" : "kt",
        "linesOfCode" : 342,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 285,
      "startLine" : 252,
      "endLine" : 257,
      "cleanedStartLine" : 172,
      "cleanedEndLine" : 177
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "native/desktop-linux/src/linux/string_api.rs",
        "extension" : "rs",
        "linesOfCode" : 8,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 7,
      "startLine" : 3,
      "endLine" : 8,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 7
    }, {
      "file" : {
        "relativePath" : "native/desktop-macos/src/macos/string.rs",
        "extension" : "rs",
        "linesOfCode" : 24,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 12,
      "endLine" : 17,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "native/desktop-win32/src/win32/events.rs",
        "extension" : "rs",
        "linesOfCode" : 202,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 104,
      "endLine" : 111,
      "cleanedStartLine" : 78,
      "cleanedEndLine" : 83
    }, {
      "file" : {
        "relativePath" : "native/desktop-win32/src/win32/events.rs",
        "extension" : "rs",
        "linesOfCode" : 202,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 145,
      "endLine" : 152,
      "cleanedStartLine" : 108,
      "cleanedEndLine" : 113
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "native/desktop-win32/src/win32/events.rs",
        "extension" : "rs",
        "linesOfCode" : 202,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 104,
      "endLine" : 111,
      "cleanedStartLine" : 78,
      "cleanedEndLine" : 83
    }, {
      "file" : {
        "relativePath" : "native/desktop-win32/src/win32/events.rs",
        "extension" : "rs",
        "linesOfCode" : 202,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 135,
      "endLine" : 142,
      "cleanedStartLine" : 100,
      "cleanedEndLine" : 105
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "native/desktop-linux-sample/src/sample_linux.rs",
        "extension" : "rs",
        "linesOfCode" : 801,
        "components" : [ "primary::native" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 667,
      "startLine" : 268,
      "endLine" : 274,
      "cleanedStartLine" : 202,
      "cleanedEndLine" : 207
    }, {
      "file" : {
        "relativePath" : "native/desktop-linux-sample/src/sample_linux.rs",
        "extension" : "rs",
        "linesOfCode" : 801,
        "components" : [ "primary::native" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 667,
      "startLine" : 318,
      "endLine" : 324,
      "cleanedStartLine" : 243,
      "cleanedEndLine" : 248
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "native/desktop-linux/src/linux/events.rs",
        "extension" : "rs",
        "linesOfCode" : 592,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 462,
      "startLine" : 330,
      "endLine" : 335,
      "cleanedStartLine" : 205,
      "cleanedEndLine" : 210
    }, {
      "file" : {
        "relativePath" : "native/desktop-macos/src/macos/events.rs",
        "extension" : "rs",
        "linesOfCode" : 171,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 152,
      "startLine" : 101,
      "endLine" : 106,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 84
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/linux/Logger.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 149,
      "startLine" : 10,
      "endLine" : 15,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 8
    }, {
      "file" : {
        "relativePath" : "native/desktop-common/src/logger_api.rs",
        "extension" : "rs",
        "linesOfCode" : 55,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 16,
      "endLine" : 21,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "native/desktop-macos/src/macos/events.rs",
        "extension" : "rs",
        "linesOfCode" : 171,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 152,
      "startLine" : 36,
      "endLine" : 41,
      "cleanedStartLine" : 28,
      "cleanedEndLine" : 33
    }, {
      "file" : {
        "relativePath" : "native/desktop-macos/src/macos/events.rs",
        "extension" : "rs",
        "linesOfCode" : 171,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 152,
      "startLine" : 50,
      "endLine" : 55,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "native/desktop-linux/src/linux/events.rs",
        "extension" : "rs",
        "linesOfCode" : 592,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 462,
      "startLine" : 316,
      "endLine" : 321,
      "cleanedStartLine" : 196,
      "cleanedEndLine" : 201
    }, {
      "file" : {
        "relativePath" : "native/desktop-macos/src/macos/events.rs",
        "extension" : "rs",
        "linesOfCode" : 171,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 152,
      "startLine" : 68,
      "endLine" : 73,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 59
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "native/desktop-linux/src/linux/file_dialog.rs",
        "extension" : "rs",
        "linesOfCode" : 68,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 28,
      "endLine" : 35,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "native/desktop-linux/src/linux/file_dialog.rs",
        "extension" : "rs",
        "linesOfCode" : 68,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 42,
      "endLine" : 49,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/win32/Logger.kt",
        "extension" : "kt",
        "linesOfCode" : 210,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 152,
      "startLine" : 10,
      "endLine" : 15,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 8
    }, {
      "file" : {
        "relativePath" : "native/desktop-common/src/logger_api.rs",
        "extension" : "rs",
        "linesOfCode" : 55,
        "components" : [ "primary::native" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 16,
      "endLine" : 21,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/linux/Geometry.kt",
        "extension" : "kt",
        "linesOfCode" : 45,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 32,
      "endLine" : 37,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "kotlin-desktop-toolkit/src/main/kotlin/org/jetbrains/desktop/win32/Geometry.kt",
        "extension" : "kt",
        "linesOfCode" : 37,
        "components" : [ "primary::kotlin-desktop-toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 29,
      "endLine" : 34,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "sample/src/main/kotlin/org/jetbrains/desktop/sample/linux/SkikoSampleLinux.kt",
        "extension" : "kt",
        "linesOfCode" : 1437,
        "components" : [ "primary::sample" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 1103,
      "startLine" : 854,
      "endLine" : 860,
      "cleanedStartLine" : 577,
      "cleanedEndLine" : 582
    }, {
      "file" : {
        "relativePath" : "sample/src/main/kotlin/org/jetbrains/desktop/sample/macos/SkikoSampleMac.kt",
        "extension" : "kt",
        "linesOfCode" : 1090,
        "components" : [ "primary::sample" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 884,
      "startLine" : 244,
      "endLine" : 250,
      "cleanedStartLine" : 147,
      "cleanedEndLine" : 152
    } ]
  } ],
  "overallDuplication" : null
}